淘宝海量数据库之二:一致性选择

众所周知,一致性是数据最关键的属性之一。2000年,Eric Brewer教授在ACM分布式计算年会上指出了著名的CAP理论:

Brewer, E. A. 2000. Towards robust distributed systems. In Proceedings of the 19th Annual ACM Symposium on Principles of Distributed Computing (July 16-19, Portland, Oregon)

即分布式系统不可能满足一致性(C: Consistency),可用性(A: Availability)和分区容错性(P: Tolerance of network Partition)这三个需求。

 

大约两年后,Seth Gilbert 和 Nancy lynch两人证明了CAP理论的正确性:

Gilbert , S., Lynch, N. 2002. Brewer's conjecture and the feasibility of consistent, available, partition-tolerant Web services. ACM SIGACT News 33(2)

 

几种常见的一致性类型有:

  • 强一致性:系统中的某个数据被成功更新(事务成功返回)后,后续任何对该数据的读取操作都得到更新后的值。这是传统关系数据库提供的一致性模型,也是关系数据库深受人们喜爱的原因之一。
  • 弱一致性:系统中的某个数据被更新后,后续对该数据的读取操作得到的不一定是更新后的值,这种情况下通常有个“不一致性时间窗口”(inconsistency window)存在:即数据更新完成后在经过这个“不一致性时间窗口”,后续读取操作就能够得到更新后的值。
  • 最终一致性:属于弱一致性的一种,即某个数据被更新后,如果该数据后续没有被再次更新,那么最终所有的读取操作都会返回更新后的值。

关于最终一致性,Werner Vogels提出了NWR模型(Eventually Consistent - Revisited, By Werner Vogels on December 23, 2008 12:15 AM,   http://www.allthingsdistributed.com/2008/12/eventually_consistent.html):

  • N:数据复制的份数(the number of nodes that store replicas of the data)
  • W:数据更新完成前需要到达的节点数(the number of replicas that need to acknowledge the receipt of the update before the update completes)
  • R:为了读取正确数据需要读取的节点数(the number of replicas that are contacted when a data object is accessed through a read operation)

Werner Vogels还写到,如果W+R > N,那么读写节点有重叠,读总是能够得到最新的数据,这就是强一致性。在传统的一主一备同步复制的关系数据库中,N=2,W=2,R=1;在非同步复制模型中,W变成1,此时W+R=N,一致性也就无法保证。

 

不过,NWR模型只代表了一类情形,例如,在传统的一主一备的非同步复制的关系数据库中,尽管N=2,W=1,R=1,如果只有主库提供服务,则一致性仍然是保证的,不过主机异常时,服务的恢复不是实时的,因此CAP理论依然适用。

 

在调研中,我们发现一些项目正在或倾向于弱一致性或最终一致性,咋看这似乎表明这些工程师偏爱弱一致性或最终一致性。然而,在经过仔细沟通和深入分析后,我们发现,这些项目采用弱一致性或最终一致性,其实是在高数据量(十几亿条记录、数TB数据)和高访问量(数千TPS、数万QPS)需求压力之下的无奈选择。如果两个系统都能满足上述高数据量和高访问量需求且成本差异不是很大,那么在强一致性和若一致性(或最终一致性)两者中他们会毫不犹豫地选择前者。

 

显而易见,作为整个系统中最为基础的部件,如果数据库的数据是弱一致,那么上层应用就不得不承受这种弱一致导致的种种后果,从上层应用的角度看,这并不是十分友善的行为。由于上述原因,我们决心在我们的海量数据库中实现与传统关系数据库相同的强一致性,因为我们相信这种强一致性不仅会简化数据库的管理,减轻数据库管理的工作量,尤其重要的是,上层应用不再需要关注数据的不一致性,应用程序也会因此而简化,并且易于开发和维护。

时间: 2024-07-28 14:14:21

淘宝海量数据库之二:一致性选择的相关文章

淘宝海量数据库之一:来自业务的挑战

作为一个电子商务企业,从一开始,数据库及其事务能力在淘宝就扮演着十分关键的角色,淘宝也积累了丰富的数据库的架构和规划等方面的经验,产生了众多优秀的DBA.   淘宝是一家迅速发展的公司.全球网站排名公司Alexa提供的数据显示,2010年4月27日,Amazon.Ebay的用户占全球互联网用户的百分比分别为3.47%和2.68%,而淘宝的用户占全球互联网用户的百分比则达到了4.1%,淘宝网日独立访问量从此超过了Amazon和Ebay.   淘宝的数据规模及其访问量对关系数据库提出了很大挑战:数十

实战不同的淘宝客产品和关键字的选择技巧

产品的选择,这一点我是越来越喜欢了,而且越来越发现选择产品以及关键字是一门学问,不是一句话两句话讲清楚的.现在说白了,要做淘宝客还是要从小众时常研究.网上说过的一些选择方式我就不赘述了. 1.竞价多的产品该选择吗? 网上有很多固定的选择产品和关键字的说法,当初我也是按照学到的固有模式去挖掘的,随着站的成立,发展,到转化,慢慢发现其实niche的选择没有一个固定模式,网上的手法只是一个大概,真正要挖还是有变数的.比如网上说的要选择首页竞价推广少的,我不这么认为,就像我之前说过的,竞价多的产品不一定

淘宝客单品推广如何选择产品

简单介绍一下自己的经历,本人今年4月中旬开始接触淘宝客,数数手指头发现自己做了2个月不到还差6天.2个月时间,主推"女性爱美"类产品,归纳起来主要有减肥.丰胸.美白.祛斑4大类.期间有成功的案例,也有失败的教训.善于总结,从失败中汲取教训是每一个站长应该具备的一个素质. 说到这里,肯定有很多人问,如何选择好的产品呢?这里我从个人做淘宝单品的一些经验来谈谈如何选择单品.个人认为,好的单品应该具备以下几个特征: 1. 暴利产品.什么是暴利产品,我是这样定义的:佣金在30%以上,单品价格在1

淘宝客推广新窍门 商品选择更重要

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 从淘宝推出淘宝客开始,有多少人赚到了自己人生的第一桶金!看着排行榜的收入,大家都是冲着赚钱的目的而加入,从而淘宝客的网站一个接一个的诞生,使得如今淘宝客越来越难做了,但是能能挣到钱的还是大有人在,但是这些人的推广方法未必适合所有的朋友,笔者认为:新手淘宝客,另辟蹊径才能赚钱,选好商品则更重要! 第一.选择一个好的模板,现在网上的淘宝客网站千篇

如何通过视频营销运作淘宝客赚钱(二)

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 此前是利用其他人已经制作好的视频去找流量,好处是减少了我们自己去发视频的繁琐步骤,弊端也很明显,这样的"劫持"行为,很大程度上会影响淘宝客之间的和睦,同时,吃别人剩下的饭,终究还是不香,所以,昨天与大家分享的是关于自己上传视频做淘宝客推广的模式,详情请见如何通过视频营销运作淘宝客赚钱(一). 视频营销的模式,有一些问题需要

淘宝屏蔽外链二维码图片 被指意在狙击微信

摘要: 淘宝网公告 8月12日上午消息,淘宝网今日发布公告称,将在1个月内全面屏蔽外链二维码图片.淘宝网给出的理由是,部分 卖家通过外链二维码图片形式绕开淘宝的正常交易流程,以达 淘宝网公告 8月12日上午消息,淘宝网今日发布公告称,将在1个月内全面屏蔽外链二维码图片.淘宝网给出的理由是,部分卖家通过外链二维码图片形式绕开淘宝的正常交易流程,以达到发布广告信息甚至诈骗的目的. 淘宝网的公告显示,8月9日起,淘宝网中新发含有外链二维码的图片将无法使用.对于已发含有外链二维码的图片,淘宝网给出了1个

淘宝开源数据库OceanBase编译、安装和配置手册

概述     OceanBase是 一个高性能的分布式表格系统,提供类似BigTable的性能和扩展性,但表格中保存的是强类型的数据,比如integer,string,datetime等. 它使用C++编写,运行于64位Linux环境下.生产环境下需要使用多台机器搭建OceanBase集群以提供高可用和高性能,但是你也完全可以使用一 台机器运行OceanBase.     本章节讲解如何迅速搭建一个可用的最小OceanBase环境,在这之前请确保你能提供以下的条件: 64位的Linux服务器一台

谈淘宝客网站程序的选择

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 很多朋友在做淘宝客网站的时候对于选择网站程序是很困惑的,那么怎样选择合适好用的淘宝客网站程序呢?这里给您几个建议: 1.尽量使用静态页面的网站程序,因为静态页面的网站对于搜索引擎收录相对友好,而且可以减少网站数据库的调用,减少网站访问的负荷,这里推荐一下DEDECMX与PHPCMS官方出品的淘宝客合作版程序,一方面模板比较丰富功能强大,另一方

SEO诊断:浅谈淘宝SEO选择比努力重要

在十年前,搜索引擎优化在合肥还没什么市场,发展的并迅速,很多公司企业并没重视到网络优化的作用,而如今,各行各业各个公司都请了专门做SEO的人来维护自己的网站,推广自己的产品,这就是SEO的市场,社会发展必然导致的,而,如今,淘宝SEO就和10年前的搜索引擎优化是一样的,还处于萌芽时期,有着广泛的市场,只是需要你去发觉,现在网络店铺越来越多,不正说明了市场是超级巨大的吗?下面A5站长网SEO诊断团队(http://seo.admin5.com)就来和大家浅谈一下淘宝SEO选择比努力重要的话题: 既