厦大大数据技术原理与应用第五章NoSQL数据库.ppt

厦大大数据技术原理与应用第五章NoSQL数据库.ppt

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

5.5.1CAP当处理CAP的问题时,可以有几个明显的选择:CA:也就是强调一致性(C)和可用性(A),放弃分区容忍性(P),最简单的做法是把所有与事务相关的内容都放到同一台机器上。很显然,这种做法会严重影响系统的可扩展性。传统的关系数据库(MySQL、SQLServer和PostgreSQL),都采用了这种设计原则,因此,扩展性都比较差CP:也就是强调一致性(C)和分区容忍性(P),放弃可用性(A),当出现网络分区的情况时,受影响的服务需要等待数据一致,因此在等待期间就无法对外提供服务AP:也就是强调可用性(A)和分区容忍性(P),放弃一致性(C),允许系统返回不一致的数据5.5.1CAP图5-5不同产品在CAP理论下的不同设计原则5.5.2BASEACIDBASE原子性(Atomicity)基本可用(Basically?Available)一致性(Consistency)软状态/柔性事务(Softstate)隔离性(Isolation)最终一致性(Eventualconsistency)持久性(Durable)?说起BASE(BasicallyAvailble,Soft-state,Eventualconsistency),不得不谈到ACID。5.5.2BASE一个数据库事务具有ACID四性:A(Atomicity):原子性,是指事务必须是原子工作单元,对于其数据修改,要么全都执行,要么全都不执行C(Consistency):一致性,是指事务在完成时,必须使所有的数据都保持一致状态I(Isolation):隔离性,是指由并发事务所做的修改必须与任何其它并发事务所做的修改隔离D(Durability):持久性,是指事务完成之后,它对于系统的影响是永久性的,该修改即使出现致命的系统故障也将一直保持5.5.2BASEBASE的基本含义是基本可用(BasicallyAvailble)、软状态(Soft-state)和最终一致性(Eventualconsistency):基本可用基本可用,是指一个分布式系统的一部分发生问题变得不可用时,其他部分仍然可以正常使用,也就是允许分区失败的情形出现软状态“软状态(soft-state)”是与“硬状态(hard-state)”相对应的一种提法。数据库保存的数据是“硬状态”时,可以保证数据一致性,即保证数据一直是正确的。“软状态”是指状态可以有一段时间不同步,具有一定的滞后性5.5.2BASEBASE的基本含义是基本可用(BasicallyAvailble)、软状态(Soft-state)和最终一致性(Eventualconsistency):最终一致性一致性的类型包括强一致性和弱一致性,二者的主要区别在于高并发的数据访问操作下,后续操作是否能够获取最新的数据。对于强一致性而言,当执行完一次更新操作后,后续的其他读操作就可以保证读到更新后的最新数据;反之,如果不能保证后续访问读到的都是更新后的最新数据,那么就是弱一致性。而最终一致性只不过是弱一致性的一种特例,允许后续的访问操作可以暂时读不到更新后的数据,但是经过一段时间之后,必须最终读到更新后的数据。最常见的实现最终一致性的系统是DNS(域名系统)。一个域名更新操作根据配置的形式被分发出去,并结合有过期机制的缓存;最终所有的客户端可以看到最新的值。5.5.3最终一致性最终一致性根据更新数据后各进程访问到数据的时间和方式的不同,又可以区分为:因果一致性:如果进程A通知进程B它已更新了一个数据项,那么进程B的后续访问将获得A写入的最新值。而与进程A无因果关系的进程C的访问,仍然遵守一般的最终一致性规则“读己之所写”一致性:可以视为因果一致性的一个特例。当进程A自己执行一个更新操作之后,它自己总是可以访问到更新过的值,绝不会看到旧值单调读一致性:如果进程已经看到过数据对象的某个值,那么任何后续访问都不会返回在那个值之前的值5.5.3最终一致性最终一致性根据更新数据后各进程访问到数据的时间和方式的不同,又可以区分为:会话一致性:它把访问存储系统的进程放到会话(session)的上下文中,只要会话还存在,系统就保证“读己之所写”一致性。如果由于某些失败情形令会话终止,就要建立新的会话,而且系统保证不会延续到新的会话单调写一致性:系统保证来自同一个进程的写操作顺序执行。系统必须保证这种程度的一致性,否则就非常难以编程了5.5.3最终一致性如何实现各种类型的一致性?对于分布式数据系统:N

您可能关注的文档

文档评论(0)

聚好信息咨询 + 关注
官方认证
服务提供商

本公司能够提供如下服务:办公文档整理、试卷、文档转换。

认证主体鹤壁市淇滨区聚好信息咨询服务部
IP属地河南
统一社会信用代码/组织机构代码
92410611MA40H8BL0Q

1亿VIP精品文档

相关文档