推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

分布式数据库中一致性与可用性的关系

更新时间:2019-12-25 15:51:11 大小:815K 上传用户:守着阳光1985查看TA发布的资源 标签:分布式数据库 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

随着各类应用在数据量和业务量上的扩展,单机数据库系统越发难以应对现实需求.分布式数据库能够根据业务的需求动态地扩容,因此逐步开始受到应用的青睐.近年来,分布式数据库产品层出不穷,并在互联网应用中被大量投入使用.然而,分布式数据库的系统复杂度前所未有.为了让系统可用,设计者需要在多种属性中作合理选择和折中.从而造成现有的数据库产品形态各异、优缺点对比分明.至今为止,尚未有人对分布式数据库的设计空间和折中方案进行过深入分析和整理.在对多个分布式数据库产品进行深入理解之后认识到:分布式数据库系统的设计方案可以通过3个属性进行基本刻画——操作一致性、事务一致性和系统可用性.虽然这3个属性并不新颖,但它们在数据库语境下的含义在文献中尚未得到充分澄清.对这3个属性进行澄清,并通过它们对典型数据库产品的格局进行概括、对现有的分布式数据库技术进行综述.此外,还对这3个属性之间的相互关系进行深入分析,以期帮助未来的开发者在分布式数据库的设计过程中做出合理选择.


部分文件列表

文件名 大小
分布式数据库中一致性与可用性的关系.pdf 815K

部分页面预览

(完整内容请下载后查看)
软件学报 ISSN 1000-9825, CODEN RUXUEW  
Journal of Software,2018,29(1):131-149 [doi: 10.13328/j.cnki.jos.005433]  
©中国科学院软件研究所版权所有.  
E-mail:  
Tel: +86-10-62562563  
分布式数据库中一致性与可用性的关系*  
,
郭进伟  
,
,
,
周傲英  
(华东师范大学 数据科学与工程学院,上海 200062)  
通讯作者: 周烜, E-mail:  
: 随着各类应用在数据量和业务量上的扩展,单机数据库系统越发难以应对现实需求.分布式数据库能够  
根据业务的需求动态地扩容,因此逐步开始受到应用的青睐.近年来,分布式数据库产品层出不穷,并在互联网应用  
中被大量投入使用.然而,分布式数据库的系统复杂度前所未有.为了让系统可用,设计者需要在多种属性中作合理  
选择和折中.从而造成现有的数据库产品形态各异、优缺点对比分明.至今为止,尚未有人对分布式数据库的设计空  
间和折中方案进行过深入分析和整理.在对多个分布式数据库产品进行深入理解之后认识到:分布式数据库系统的  
设计方案可以通过 3 个属性进行基本刻画——操作一致性、事务一致性和系统可用性.虽然这 3 个属性并不新颖,  
但它们在数据库语境下的含义在文献中尚未得到充分澄清.对这 3 个属性进行澄清,并通过它们对典型数据库产品  
的格局进行概括、对现有的分布式数据库技术进行综述.此外,还对这 3 个属性之间的相互关系进行深入分析,以期  
帮助未来的开发者在分布式数据库的设计过程中做出合理选择.  
关键词: 分布式系统;数据库;一致性;可用性;事务处理  
中图法分类号: TP311  
中文引用格式: ,进伟,,,傲英.布式数据库中一致性与可用性的关系.件学报,2018,29(1):131-149.  
英文引用格式: Zhu T, Guo JW, Zhou H, Zhou X, Zhou AY. Consistency and availability in distributed database systems. Ruan  
Jian Xue Bao/Journal of Software, 2018,29(1):131-
Consistency and Availability in Distributed Database Systems  
ZHU Tao, GUO Jin-Wei, ZHOU Huan, ZHOU Xuan, ZHOU Ao-Ying  
(School of Data Science and Engineering, East China Normal University, Shanghai 200062, China)  
Abstract: The rapid growth of data and workload makes centralized database systems less and less favorable to today’s applications. A  
distributed database system can scale out dynamically to satisfy the business development. As a result, it has gained much more attention  
from applications. Since the needs for distributed DB became apparent, an increasing number of products have emerged and been adopted  
by the Web. However, due to the complexity of distributed DB systems, their designers have to trade off among several desired properties,  
resulting in dramatic difference in their designs and advantages. To the best of public knowledge, no one has performed a comprehensive  
analysis on the design space and the tradeoff choices of modern distributed DB systems. After reviewing and understanding a significant  
number of real world DB products, this study believe that a distributed DB system can be generally described using three dimensions  
operational consistency, transactional consistency and availability. While these dimensions are not new, their concepts are somehow  
blurred in the literature. This paper clarifies the three concepts in the context of database, based on which can draw a sensible landscape of  
the existing products and technologies. The paper also provides an analysis of the relationship among the three dimensions, intending to  
help developers make right choice when designing new distributed DB systems.  
* 基金项目: 国家高技术研究发展计划(863)(2015AA015307); 国家自然科学基金(61772202)  
Foundation item: National High Technology Research and Development Program of China (863) (2015AA015307); National  
Natural Science Foundation of China (61772202)  
收稿时间: 2017-09-16; 修改时间: 2017-10-16; 采用时间: 2017-11-07; jos 在线出版时间: 2017-12-01  
CNKI 网络优先出版: 2017-12-04 08:57:39, http://kns.cnki.net/kcms/detail/11.2560.TP.20171204.0857.020.html  
132  
Journal of Software 软件学报 Vol.29, No.1, January 2018  
Key words: distributed system; database; consistency; availability; transaction  
随着数据量的爆发式增长以及应用负载的快速增加,传统的关系型数据库所采用的单一服务器模式越来  
越难以应对当今应用对数据存储和事务处理的需求.一旦数据管理功能被扩展至计算机集群和跨区域的分布  
式系统,数据库系统的复杂程度被明显抬升.单纯的硬件扩展未必能够等量级地获得更高的并发度和性能.系统  
设计者还必须考虑架构的改变(从单机到分布式系统)对系统稳定性、数据一致性、可用性等性质的影响,因为  
这些性质与系统的扩展性和性能密切相关,甚至相互制约.  
近年来,号称能够提供良好扩展性的分布式数据管理技术和产品星罗棋布,并且被广泛运用于各种互联网  
应用中.照当今比较流行的分类方式,们可以分为以 HBaseBigTable[1]Cassandra[2]MongoDB[3]  
CouchDB[4]Dynamo[5]Neo4J 等为代表的 NoSQL 数据库,以及以 VoltDB[6]Spanner[7]MemSQLClustrix、  
NuoDBeXtremeDB 等为代表的 NewSQL 数据库.前者被认为是通过弱化了对数据一致性的保护能力(如抛弃  
ACID 原则[8],退而求其次地遵循 BASE 原则[9])而获得更强的系统扩展能力和系统可用性.后者被认为是针对  
不同领域的应用而定制的特殊数据库系统;它们通过更贴近应用的设计而获得更好的性能和扩展能力.然而,这  
样的划分方式无疑过于简化.具体的系统设计所遇到的问题并非是 NoSQL NewSQL 的理念所能解决的,还需  
要设计者能够对数据库系统的各个重要属性以及它们之间的制约关系有着清晰的理解.  
系统研究的历史经验告诉我们,复杂系统的构建往往难以做到面面俱到,而需要在多个重要指标之间进行  
取舍和折中.例如功能和易用性能和通用性都是难以同时兼顾的.Brewer 曾在 ACM 分布式计算大会上提出  
了著名的 CAP 理论[10],即分布式系统不可能同时满足一致性(consistency)、可用性(availability)和分区容错性  
(partition tolerance),而最多只能同时满足其中两个.例如,在存在网络分区的情况下,支持高可用性的系统就不  
能同时保证数据的强一致性.这一理论被广泛用于对分布式系统的设计考量.由于分区容错性被认为在分布式  
环境下无法避免,各分布式系统需根据应用的需求选择性地保证强一致性或者高可用性.例如,传统的主备数据  
库牺牲一定的可用性来保证数据的强一致性,Riak 选择了数据最终一致性(eventual consistency)[11]来支持高  
可用性.  
虽然 CAP 理论对系统设计者而言具备较强的实践意义,但在数据库系统的设计中它仍然显得比较局限.一  
方面,CAP 理论对一致性和可用性的定义与传统数据库对这两个属性的定义并不完全一致.这给分布式数据库  
研究者和设计者带来了一定的困惑.例如,Spanner 号称自己是能够严格保证数据一致性的高可用分布式数据  
.这看似与 CAP 理论相矛盾,但事实上是由于两者对一致性和可用性的定义有所区别所致.另一方面,CAP 理  
论并未对自身涉及的 3 个属性进行量化.这导致系统设计者难以对属性之间的制约关系进行考量.比如,当发生  
网络分区时,分布式数据库到底需要牺牲多少可用性来换取事务 ACID 属性的保证.  
本文立足于数据库系统,致力于在数据库的语境下对数据一致性和系统可用性的关系进行分析,并且对由  
这两个属性所构成的系统设计空间(design space)进行全面考量,以期帮助分布式数据库开发者在未来的系统  
设计过程中做出合理选择.  
时至今日,数据库领域已有大量工作致力于研究数据库事务一致性与性能的关系,以及分布式系统一致性  
与可用性的关系.很多系统的设计方案都通过弱化对数据一致性的要求,而在性能和可用性上获得收益.事务隔  
离级别是对数据一致性强弱的常见划分方法.ANSI SQL-92[12]根据事务执行过程中出现的不同异常现象定义  
了不同的事务隔离级别,如快照隔离(snapshot isolation)、游标稳定性(cursor stability).Adya[12]Cerone[13]  
用不同的一致性模型事务一致性级别进行了定义和分析.传统的数据库系统往往通过调节隔离级别在数据一  
致性和性能之间进行取舍.近年来,不少学者针对分布式数据库提出了各种新的事务一致性级别,如原子性读  
(read atomic)[14]致性读(consistent read)[15]Parallel Snapshot Isolation(并行快照隔离)[16]等等,以及不同类型  
的分布式事务一致性协议,SpannerVoltDBCalvin[17].除此之外,工业界也涌现出了一大批的分布式数据  
库系统产品,它们都在一致性和可用性上作了深入考虑,选择了各自合理的系统构建方案.然而,尚未有工作对  
这一系列的研究成果和系统进行全面的梳理和分析.本文将把典型的分布式数据库系统和技术放在我们的一  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载