技术开发 频道

支付宝架构师童家旺:NoSQL一致性实践

  【IT168 专稿】2013年4月18-20日,第四届中国数据库技术大会(DTCC 2013)在北京福朋喜来登酒店拉开序幕。在为期三天的会议中,大会将围绕大数据应用、数据架构、数据管理(数据治理)、传统数据库软件等技术领域展开深入探讨,并将邀请一批国内顶尖的技术专家来进行分享。本届大会将在保留数据库软件应用实践这一传统主题的基础上,向大数据、数据结构、数据治理与分析、商业智能等领域进行拓展,以满足于广大从业人士和行业用户的迫切需要。

  自2010年以来,国内领先的IT专业网站IT168联合旗下ITPUB、ChinaUnix技术社区已经连续举办了三届数据库技术大会,每届大会超过千人规模,云集了国内技术水平最高的数据架构师、DBA、数据库开发工程师、研发总监、IT经理等,是目前国内最受欢迎的数据库技术盛会。


点击进入第四届中国数据库技术大会(DTCC 2013)报道专题

  在今天下午的主题演讲中,来自支付宝的资深数据库架构师童家旺老师,为我们分享了关于《NoSQL一致性实践》的相关话题,其中主要提到了CAP理论的历史沿革、ACID与BASE的对比、NoSQL数据库对CAP理论的误读等话题。


支付宝的资深数据库架构师童家旺

  如何在设计高可扩展的Web应用,如何去识别应用对一致性的需求,如何在不同的数据存储方式(Oracle、MySQL、分布式数据库)进行选择与权衡!在童家旺老师演讲过程中,也提到了几个实例,进一步解释如何选择与权衡。

  CAP原理

  分布式系统中,有三种重要的属性,主要是:一致性,其含义是任何一个读操作总是能读取到之前完成的写操作结果,也就是在分布式环境中,多点的数据是一致的;可用性,其含义是每一个操作总是能够在确定的时间内返回,也就是系统随时都是可用的;最后是分区容忍性,在出现网络分区(比如断网)的情况下,分离的系统也能正常运行。


CAP原理的历史

  CAP含义

  CAP的含义是指,以上三个要素最多只能同时实现两点,不可能三者兼顾。因此在进行分布式架构设计时,必须做出取舍。而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值。因此设计分布式数据系统,就是在一致性和可用性之间取一个平衡。对于大多数Web应用而言,其实并不需要强一致性,因此牺牲一致性而换取高可用性,是目前多数分布式数据库产品的方向。

  数据状态机的分类

  何谓状态机,简单的理解是,计算机中会发生变化的数据都是状态机,这个数据的值不同可能会带来不同的后果。其分类主要有,按照三个维度:时间、信息含金量、变更频率。


▲CAP与ACID

  总结

  CAP的实际效果

  • 探索适合不同应用的一致性与可用性平衡。

  在没有分区发生时

  • 可以同时满足C与A,以及完整的ACID事务支持;

  • 可以选择牺牲一定的C,获得更好的性能与扩展性。

  分区发生时,选择A(集中关注分区的恢复)

  • 需要有分区开始前、进行中、恢复后的处理策略;

  • 应用合适的补偿处理机制。

0
相关文章