- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分布式1致性协议
一致性协议 主要内容 持续一致性 基于主备份的协议 复制的写协议 高速缓存相关性协议 实现以客户为中心的一致性 0. 预备知识 1. 持续的一致性 1.1 限定复制的数值偏差 传播给其他的服务器(感染协议) ? 1.2 限定复制的新旧程度偏差 1.3 限定顺序偏差 2. 基于主备份的协议 2.1 远程写协议 2.2 本地的写协议 3. 复制的写协议 3.1 主动复制 3.2 基于多数表决的协议 Gifford方案 4. 高速缓存相关性协议 4.1 相关性检测策略 4.2 相关性实施策略 5. 实现以客户为中心的一致性 5.1 简单实现 单调一致性的实现 A B C D E F G H I J K L NR=3,NW=10 A B C D E F G H I J K L NR=7,NW=6 A B C D E F G H I J K L NR=1,NW=12 N=12,NW6 可能导致写写操作冲突 “读一个,写全部”(ROWA) 代价:写操作需要获取所有的副本 高速缓存是一类特殊的复制,通常由客户而不是服务器来控制。高速缓存相关性协议保证高速缓存与服务器启动的副本一致,在原理上,高速缓存相关性与迄今为止我们讨论过的各种一致性协议没有多大的差别。 高速缓存相关性方面的两个问题: 1).相关性检测策略 2).相关性实施策略 【静态方法】假定编译器在运行之前执行必要的分析,并确定哪些数据可能因为它们被缓存而导致不一致性。编译器仅插入一些避免不一致性的指令。 【动态方法】不一致性在运行时检测。例如检查服务器,查看被缓存的数据自从被缓存后是否被改变。 在分布式数据库中,根据事务处理器件进行检测的确切时间,将动态的基于检测的协议(Franklin 1997)分为三类。 事务处理期间访问高速缓存的数据项时,检验是否与服务器中的一致。完成一致性检测之前,不能使用缓存的数据项。(先检测后用) 进行一致性检测时,继续执行事物处理。若检测出不一致性,事务处理异常中止。(边检测便用,结果出来了再考虑) 只在事务处理委托检测时才检测数据项是否为最新。(乐观的) 第2种方法是最有效的,因为节约了方法1的等待时间,并且大部分情况下,数据是最新的。 该策略决定了高速缓存如何与服务器存储的各副本保持一致。 最简单的办法就是不允许缓存共享数据,把共享数据仅保存在服务器上,客户只允许缓存私有数据。 当共享数据被缓存时,实现高速缓存的一致性可采用两种办法: 1).每当一个数据项被修改后,服务器向所有的高速缓存发送无效化信息。 2).仅传播更新。 进程修改了被缓存的数据可能发生的情况: 1).高速缓存——只读。更新只能发生在服务器上,然后由服务器把更新操作传播到缓存中。用户检测到高速缓存过时了,就向服务器请求更新。 2).允许用户直接修改被缓存的数据项,并将更新转发到服务器。 直写式高速缓存:类似于基于主备份的本地写协议,客户的高速缓存成了一个临时的主备份。 回写式高速缓存:? 上述问题是由用户对不同的副本进行操作的事实引起的,引入以客户为中心的一致性可以缓解这个问题。 本质上,以客户为中心的一致性为单一的客户提供一致性保证,保证该客户对数据存储访问的一致性 它并不为不同客户的并发访问提供任何一致性的保证。 四种类型: ——单调读、单调写、写后读、读后写 * * 2010.05.19 7.4.3.1 状态和操作 P219 复制管理中实际传播的三个可能信息: 1).只传播更新的通知(无效化协议,几乎不占用带宽) 适用于更新和写操作相对较多,即R/W相对很小的情况。 2).把数据从一个副本传送到另外的一个副本 R/W较高的情况 3).把更新操作传播到其他的副本(主动复制) 每个进程主动地联系最新的数据 7.4.3.2 拉协议与推协议 P220 更新的方式: 1.基于推式的方法(基于服务器的协议) 不需要其他的副本请求更新,这些更新就被传播到那些副本那里 应用于多个副本需要维持相对较高程度的一致性。主要是读操作,R/W较高。 2.基于拉式的方法(基于客户的协议) 通常被应用于客户高速缓存。客户轮询服务器以查看是否需要更新。R/W较低 3.基于租用的更新传播(推的数据超期无效之后,采用拉式) 对复制数据问题没有最好的解决办法。复制数据会导致一致性问题,这用一般方法不能有效地解决。除非放宽对一致性的限制才有希望获得有效的解决办法。 (Yu 和 Vahdat 2002)给出了一种通用的办法,为定义不一致性区分了三个相互独立的坐标轴:副本之间的数值偏差、副本之间新旧程度的偏差以及更新操作顺序的偏差。他们称这些偏差形成了持续
文档评论(0)