- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高级操作系统课件-第七章一致性和复制讲述
第七章 一致性和复制
概述
以数据为中心的一致性模型
以客户为中心的一致性模型
复制管理
一致性协议
概述:复制的目的
可靠性
性能
服务器数量扩展
地理区域扩展
代价:一致性
网络通信开销
强一致性要求的原子操作很难快速完成
解决办法:
放宽一致性方面的限制,放宽程度取决于复制数据的访问和更新模式以及数据的用途
以数据为中心的一致性模型
逻辑数据存储的一般组织,物理上是分布的,并被复制到各个进程
讨论共享数据读操作和写操作时的一致性问题
一致性模型实质上是进程和数据存储间的约定:如果进程同意遵守某些规则,数据存储将正常进行。正常情况下,进程的读操作应该返回最后一次写操作的结果
没有全局时钟,精确定义哪次写操作是最后一次写操作是困难的
作为全局时钟的替代,产生了一系列一致性模型,每种模型都有效地限制了一个数据项上执行一次读操作所应返回的值
严格一致性(Strict Consistency)
a) 严格的一致性存储
b) 非严格的一致性存储
任何对数据项X的读操作将返回最近一次对X进行写操作的值
对所有进程来说,所有写操作都是瞬间可见的,系统维护着一个绝对的全局时间顺序
线性化和顺序一致性 Linearizability and Sequential Consistency (1)
a) 顺序一致的数据存储
b) 非顺序一致的数据存储
顺序一致性对存储器的限制比严格一致性要弱一些,要满足以下的条件:
(1)?每个进程的内部操作顺序是确定不变的;
(2)?假如所有的进程都对某一个存储单元执行操作,那么,它们的操作顺序是确定的,即任一进程都可以感知到这些进程同样的操作顺序。
线性化和顺序一致性 (2)
顺序一致性可与事务串行化相比
串行化:如果一个并发执行的事务处理集合的结果可以按照某种顺序逐个执行事务获得,该事务处理集合是可串行化的
区别:粒度的不同
顺序一致性:读写操作
串行化:事务(一系列读写操作的集合)
线性化:
弱于严格一致性而强于顺序一致性
根据一系列时钟同步确定序列顺序(利用时间戳)
顺序一致性和线性化提供了程序开发人员在并发程序设计中期望的语义:所有写操作都以相同的顺序被每个进程看到
因果一致性Casual Consistency (1)
所有进程必须以相同的顺序看到具有潜在因果关系的写操作
不同机器上的进程可以以不同的顺序看到并发的写操作
因果一致性 (2)
因果一致性存储允许的,但顺序和严格一致性存储不允许的顺序
因果一致性 (3)
违背因果一致性的时间存储顺序
符合因果一致性的时间存储顺序
FIFO 一致性FIFO Consistency (1)
FIFO一致性模型是在因果一致性模型上的进一步弱化,它满足下面的条件:
由某一个进程完成的写操作可以被其他所有的进程按照顺序感知到,而从不同进程中来的写操作对不同的进程可以有不同的顺序。
FIFO 一致性 (2)
符合FIFO 一致性的时间存储顺序
FIFO 一致性 (3)
与顺序一致性的区别:
顺序一致性:尽管语句的执行顺序是非确定的,但所有的进程对顺序达成一致
FIFO 一致性:各个进程不需要达成一致,不同进程可以以不同的顺序看到
引入同步的一致性
引入显示的同步变量
当一个进程对数据进行操作时,不保证其他进程何时看到这一操作,只是在执行一次同步时,数据的改变才被传播
弱一致性
释放一致性
入口一致性
弱一致性Weak Consistency (1)
同步变量S仅有一个关联操作synchronization(S),该操作同步数据存储的所有本地拷贝
弱一致性模型必须满足的条件有下面几点:?
对同步变量的访问满足一致性的要求
说明所有进程都以相同的顺序看到同步变量进行的所有操作
对同步变量的访问,只有在以前的写操作在各处都完成之后才能进行。
强迫在所有备份上完成所有的写操作
对数据的操作(读或写),只有在以前的对同步变量的操作完成之后才能进行。
保证所得到的数值是最新值
弱一致性 (2)
对弱一致性有效的时间顺序
对弱一致性无效的时间顺序
释放一致性Release Consistency (1)
对释放一致性有效的时间顺序
弱一致性存在的问题:当同步变量被访问时,数据存储不知道此次访问是因为进程结束对共享数据的写操作,还是因为进程将开始读数据而进行的
释放一致性使用两种类型的同步变量来代替原来的一种同步变量
获取Acquire操作用于表明进程进入临界区
释放Release操作用于表明进程退出临界区
释放一致性 (2)
通常,如果一个分布式共享存储系统满足释放一致性,则它必须遵守以下的规则:
某进程只有在成功完成Acquire操作之后,才能对共享数据进行读写操作。
某进程只有在完成对共享数据的读写操作之后,Releas
原创力文档


文档评论(0)