数据一致性理论.ppt

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据一致性理论.ppt

数据一致性理论 2.1 CAP理论 CAP理论由Eric Brewer在ACM PODC会议上的主题报告中提出,这个理论是NoSQL数据库管理系统构建的基础,如下图所示: 其中字母“C”,”A”,”P”分别代表以下三个特征: ?强一致性(Consistency)。系统在执行过某项操作后仍然处于一致的状态。在分布式系统中,更新操作执行成功后所有的用户都应该读取到最新值。 ?可用性(Availability)。每一个操作总是能够在一定时间内返回结果。需要注意“一定时间”和“返回结果”。 “一定时间”是指,系统结果必须在给定时间内返回。 “返回结果”是指系统返回操作成功或失败的结果。 ?分区容错性(Partition Tolerance)。分区容错性可以理解为系统在存在网络分区的情况下仍然可以接受请求(满足一致性和可用性)。 CAP是在分布式环境中设计和部署系统时所要考虑的三个重要的系统需求。根据CAP理论,数据共享系统只能满足这三个特性中两个,而不能同时满足三个条件。因此系统设计者必须在这三个特征之间做出权衡。 根据CAP理论,系统满足三个条件中不同的两个条件会具有不同的特点。如下表所示: 序号 选择 特点 例子 1 C、A 两阶段提交、缓存验证协议 传统数据库、集群数据库 2 C、P 悲观加锁 分布式数据库、分布式加锁 3 A、P 冲突处理、乐观 DNS、Coda 2.1 数据一致性模型 一些分布式系统通过复制数据来提高系统的可靠性和容错性,并且将数据的不同的副本存放在不同的机器,由于维护数据副本的一致性代价高,因此许多系统采用若一致性来提高性能,一些不同的一致性模型也相继被提出。 ? 强一致性:要求无论更新操作是在哪一个副本执行,之后所有的读操作都要能获得最新的数据。 弱一致性:用户读到某一操作对系统特定数据的更新需要一段时间,我们称这段时间为“不一致性窗口”。 ? 最终一致性:是弱一致性的一种特例,保证用户最终能够读取到某操作对系统特定数据的更新。 2.3 ACID与BASE BASE方法通过牺牲一致性和孤立性来提高可用性和系统性能,其中BASE分别代表: ?基本可用(Basically Available):系统能够基本运行、一直提供服务。 ?软状态(Soft-state):系统不要求一直保持强一致状态。 ?最终一致性(Eventual consistency):系统需要在某一时刻后达到一致性要求。 事务是用户定义的一个数据库操作序列,要么全不做,要么全做,是一个不可分割的工作单位,ACID是事务所具有的特性。 ? 原子性(Atomicity):事务中的操作要么全做,要么不做。 一致性(Consistency):系统必须始终处在强一致状态下。 隔离性(Isolation):一个事务的执行不能被其他事务所干扰。 持续性(Durability):一个已提交的事务对数据库中数据的改变是永久性的。 保证ACID特性是传统关系型数据库中事务管理的重要任务,也是恢复和并发控制的基本单位。 ACID和BASE的比较 ACID BASE 强一致性 若一致性 隔离性 可用性优先 采用悲观、保守方法 采用乐观方法 难以改变 适应变化、更简单、更快 2.4 数据一致性实现技术 2.4.1 Quorum系统NRW策略 这个协议有三个关键值N、R、W。 N表示数据所具有的副本数。 R表示完成读操作所需要读取的最小副本数,即一次读操作所需参与的最小节点数目。 W表示完成写操作所需要写入的最小副本数,即一次写操作所需要参与的最小节点数目。 该策略中,只需要保证R+WN,就可以保证强一致性。 R和W的设置直接影响系统的性能、扩展性与一致性。 下面为不同设置的几种特殊情况。 1.当W=1,R=N时,系统对写操作有较高的要求,但读操作会比较慢,若N个节点中有节点发生故障,那么读操作将不能完成。 2.当R=1,W=N时,系统对读操作有较高性能、高可用,但写操作性能较低,用于需要大量读操作的系统,若N个节点中有节点发生故障,那么写操作将不能完成。 3.当R=Q,W=Q(Q=N/2+1)时,系统在读写性能之间取得平衡,兼顾了性能和可用性。 2.4.2 两阶段提交协议 在两阶段提交协议中,系统包含两类机器(或节点):一类为协调者,通常一个系统中只有一个;另一类为事务参与者,一般包含多个,在数据存储系统中可以理解为数据副本的个数。 阶段1:请求阶段 在请求阶段,协调者将通知事务参与者准备提交或取消事务,然后进入表决过程。在表决过程中,参与者将告知协调者自己的决策:同意或取消。 阶段2:提交阶段 协调者将第一阶段投票结果进行表决,当且仅当所有的参与者同意提交,事务协调者才通知所有的参与者提交事

文档评论(0)

gtez + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档