最新《分布式系统》第八章 复制及复制一致性(共54张PPT课件).pptx
《最新《分布式系统》第八章 复制及复制一致性(共54张PPT课件).pptx》由会员分享,可在线阅读,更多相关《最新《分布式系统》第八章 复制及复制一致性(共54张PPT课件).pptx(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第八章 复制(fzh)及复制(fzh)一致性 复制:不仅可以对数据(shj)起到保护作用,也可以增强数据(shj)的可用性和数据(shj)服务的容错能力。 我们必须考虑复制的透明性、可调节性、一致性,以及快速的反应时间和较大的系统吞吐量。最为重要的是复制的一致性,因为透明性和可调节性仅仅影响到使用复制技术的方便程度,而一致性却影响到复制技术的成败。 一致性模型以及一致性协议 更新(update)以及更新传播算法。1第一页,共五十四页。动机动机(dngj)和目的和目的n改进性能 n如果数据被大量的客户共享,就不应该只由一台服务器管理这些数据,因为这样做就产生了一个系统瓶颈,限制了系统的反应时间和
2、吞吐能力。最好的方法就是(jish)把数据的副本分布在一组服务器上,每一台服务器都为地理位置就近的一组客户提供服务。 n增强容错能力 n如果对每一个客户请求,我们都用一组服务器来并行地提供服务,则即便有个别服务器发生故障,我们还是有可能保证客户请求被正确地执行。 n强化可用性 n如果数据和数据服务被复制到两台或多台服务器上,这些服务器都运行相同的软件,提供等价的服务,而且故障独立(即一台服务器的故障不会影响到其它服务器) ,则从原理上说,客户就可以从一台出现故障的服务器切换到另一台正常运行的服务器上,继续请求数据服务。 P: 一台服务器故障概率(gil); 1 P = 服务可用性, 例如: P
3、 = 5%, 则95% 的时间系统可以提供服务。Pn: n 台服务器故障概率; 1 Pn = 服务可用性, 例如, P = 5%, n = 3,则 99.875% 的时间系统可以提供服务。2第二页,共五十四页。复制技术的基本复制技术的基本(jbn)结构(结构(1)n复制透明性:客户不必了解系统中存在多个物理复制n 复制一致性:所有复制的副本在任何时刻都完全一样,于是,在任何一个副本进行读操作都会得到(d do)相同的结果。 客户客户前端前端RMRMRM客户客户前端前端客户客户前端前端服务服务服务器服务器服务器服务器服务器服务器复制管理器:Replica Manager3第三页,共五十四页。复制
4、技术的基本复制技术的基本(jbn)结构(结构(2)n我们用一个称为前端(front end) 的系统成份来沟通客户和数据服务。引入前端的主要目的是加强系统的透明性和模块化,客户只与前端通信,提交请求或者接收数据,而无需与复制管理器直接对话。 n前端与复制管理器之间的对话方式在不同的结构(jigu)模型中亦有所区别,例如,当一个前端在授理客户请求时,它可以只与一个服务管理器通信,也可以同时与多个服务管理器通信。此外,当一个客户请求在多个服务管理器上执行时,前端也可以用来核对这些复制管理器返回的结果,在少数出错的情况下,返回给客户多数一致的那个结果,从而体现系统的容错能力。4第四页,共五十四页。复
5、制技术的基本复制技术的基本(jbn)结构(结构(3)CLCLFEFERMRMRMCLFECLCLFEFEPRRMSLRMSLRMCLFEWW WR RR(a) 私语结构私语结构(b) 主副本结构主副本结构5第五页,共五十四页。复制技术的基本复制技术的基本(jbn)(jbn)结构结构(4)n私语结构(gossip architecture) :复制管理器之间需要周期性地交换“私房话” ,通知彼此必须更新的数据。在这种结构中,通常的情况下每一个前端只与一个复制管理器对话,于是,当一个复制管理器执行更新操作后,就必须把更新后的结果通过内部协议传送给其它的复制管理器,以求数据一致(yzh)。n主副本(
6、primary copy) 结构:前端必须分别对待只读和更新操作。如果客户请求是只读操作,则可以由任意一个复制管理器执行;而当客户请求属于更新类操作,则必须由一个称为“主” 复制管理器的进程(服务器)授理。在一个系统中,只存在一个主复制管理器,而其它的都称为“从” 复制管理器,当然,在主管理器发生故障时,我们可以利用选举算法重新推选出一个主复制管理器。数据的更新操作都在主复制管理器上进行,并由它通知所有从复制管理器达到数据一致性。 6第六页,共五十四页。一致性模型一致性模型(mxng)n所谓一致性模型,本质上是介于进程和数据仓库之间的一种协议:如果进程同意遵循某个模型给定的规则,则数据仓库就能
7、正常运转,从而提供符合(fh)该模型定义的数据服务。 进程进程 副本副本副本进程数据仓库7第七页,共五十四页。一致性模型一致性模型(mxng)分类分类严格顺序 因果流水线弱释放入口以数据为中心的一致性模型 强弱以客户为中心的一致性模型 单调读单调写读随写写随读8第八页,共五十四页。严格严格(yng)一致性模型一致性模型 -假定假定x为数据仓库中的一项共享数据,任何为数据仓库中的一项共享数据,任何对对x的读操作都必须返回最近的读操作都必须返回最近(zujn)一次写入一次写入x的值。的值。-其中隐喻着一个全局绝对物理时钟,因此“最近” 这个术语含义精确,不存在多义性。 -然而,分布式系统无法实现这
8、种绝对时钟。9第九页,共五十四页。严格严格(yng)一致性模型图例一致性模型图例 nWi(x)a 以及 Ri(x)b :Wi(x)a表示进程(jnchng)Pi把值a写入数据x;而Ri(x)b表示进程(jnchng)Pi从数据x读出值b;当无二义性时,我们会省略W/R操作的下标。此外,我们假定每一项数据的初始值为。 R(x)a(a) 严格一致(b) 非严格一致W(x)aR(x)aW(x)aR(x) R(x)aP2 P1:P2 时间时间P2 P2 P1 10第十页,共五十四页。顺序顺序(shnx)(shnx)一致性模型一致性模型 n假定假定x x为数据仓库中的一项共享数据,当一组进程对为数据仓库
9、中的一项共享数据,当一组进程对x x进行读进行读/ /写操作时,如果每个进程都遵循程序所确定写操作时,如果每个进程都遵循程序所确定的操作次序,而且所有进程遵循一种同样的交替操作的操作次序,而且所有进程遵循一种同样的交替操作顺序,就必然得到相同的结果。顺序,就必然得到相同的结果。 -当多个进程在不同的计算机上运行时,对共享数据的任何读/写交替顺序都是可以接受的,但有一条必须明确:所有的进程都必须看到(遵循) 相同的操作顺序。这个定义并没有提及时间,也就是说,“最近” 写入的要求被删除了。 -这个定义隐喻着一个弱点,即同样一个程序(同一组进程) 的两次执行(zhxng)过程或许会产生不同的结果,其
10、间的道理很简单,该定义只要求所有进程在一次执行(zhxng)中对共享数据的观点一致,而没有定义什么才是正确观点,因为共享数据的正确观点必然与全局绝对时间密切相关。 11第十一页,共五十四页。顺序顺序(shnx)(shnx)一致性模型图例一致性模型图例 (a) 顺序一致R(x)aP1:P2:P3:P4: W(x)aW(x)bR(x)bR(x)aR(x)bR(x)bP1:P2:P3:P4: W(x)aW(x)bR(x)bR(x)aR(x)a(b) 非顺序一致时间时间(a)尽管在物理时间上,W(x)b操作稍晚于W(x)a,但进程P3和P4的读操作对共享数据x都有一致的观点,先得到b,然后才得到a。(
11、b) P3和P4的读操作对共享数据x的观点就不一致,P3先看见(kn jin)b,后看见(kn jin)a,而P4恰恰相反,先a后b,不满足顺序一致性的定义。12第十二页,共五十四页。因果因果(yngu)(yngu)一致性模型一致性模型 n所有进程必须对具有所有进程必须对具有(jyu)(jyu)潜在因果关系的写操潜在因果关系的写操作持有一致的观点,而无因果关系的并发写操作持有一致的观点,而无因果关系的并发写操作可以在不同计算机上有不同作可以在不同计算机上有不同( (排序排序) )的观点。的观点。- 所谓因果关系指的是在同一进程内前后两个操作A 和B 之间存在着依赖关系,即B依赖于A,没有A,就
12、得不到B。13第十三页,共五十四页。因果因果(yngu)(yngu)一致性模型图例一致性模型图例 R(x)cP1:P2:P3:P4: W(x)aR(x)aR(x)aR(x)bR(x)aR(x)bR(x)cW(x)bW(x)c时间(a) 因果一致R(x)aP1:P2:P3:P4: W(x)aR(x)aR(x)bR(x)bR(x)aW(x)b时间(b) 非因果一致14第十四页,共五十四页。PRAM一致性模型一致性模型(mxng)(mxng)n所有所有(suyu)(suyu)进程必须对同一个进程发出的写操作持有一致的观点,进程必须对同一个进程发出的写操作持有一致的观点,而对不同进程的写操作可以有不同
13、而对不同进程的写操作可以有不同( (排序排序) )的观点。的观点。称为FIFO,或流水线式随机访问内存(PRAM)一致性,因为单一进程的写操作完全可以像流水线作业那样实现,不存在等待别的进程完成某个操作之后才能开始下一个操作的情况。 因为看上去每一个进程都把自己顺序执行写操作的结果放在一个先进先出的队列中,每个进程只保证自己的写操作排序,而与其它进程写操作的相对次序无关。从实现的角度来看,这种一致性要比前面几种一致性容易得多,我们仅需要为每一个写操作附加一对标记(进程,顺序号) ,然后按照顺序号执行写操作就可以了。15第十五页,共五十四页。PRAM一致性模型一致性模型(mxng)(mxng)图
14、例图例R(x)aR(x)cP1:P2:P3:P4: W(x)aR(x)aR(x)bR(x)cR(x)bR(x)aW(x)bW(x)c时间从x 读出的值必须满足先b后c,而a的次序可以(ky)任意16第十六页,共五十四页。基于基于(jy)(jy)读读/ /写次序的一致性模型之特征写次序的一致性模型之特征 一致性模型典型特征严格一致性按照全局绝对时间执行操作顺序一致性对操作进行全局排序因果一致性对具有因果关系的操作进行排序PRAM一致性对单进程操作进行排序17第十七页,共五十四页。基于(jy)同步操作的一致性模型 n这里我们讨论的模型不再关心每一个操作的具体次序,而是关心进程之间的同步。 n在实践
15、中人们发现许多应用具备下面(xi mian)两种特征:n(1)一个分布式系统中的许多(大多数) 进程没有必要了解每一个写操作;n(2)一个分布式系统中的许多(大多数) 进程没有必要了解中间性的写操作。实际上,这些所谓的中间性写操作往往是在一个临界区执行过程内部的写操作,根本没有必要暴露给临界区外的进程。n我们可以把一组写操作归结成一个临界区操作,仅当一个进程完成临界区操作之后,才把写入的最终结果通知所有进程,而没有必要担心中间写操作的次序或对外界的影响。 18第十八页,共五十四页。弱一致性模型弱一致性模型(mxng)(mxng)n(1) (1) 对同步变量的访问必须遵循顺序一致性模型;对同步变
16、量的访问必须遵循顺序一致性模型;n(2) (2) 在整个分布式系统中,仅当所有进程以前的写操作在整个分布式系统中,仅当所有进程以前的写操作都全部完成后,才允许对同步变量施加操作;都全部完成后,才允许对同步变量施加操作;n(3) (3) 仅当所有以前的同步变量操作全部完成后,才允许访问数仅当所有以前的同步变量操作全部完成后,才允许访问数据仓库中的数据。据仓库中的数据。 -第一条性质要求所有进程必须对同步变量的观点一致,也就是说,如果S和Q为同步变量,则对这两个变量的同步操作是否应为先S后Q还是先Q后S并不重要,重要的是所有进程都必须持有一致的观点,要么都是先S后Q,要么都是先Q后S。 -第二条性
17、质表示同步操作必须保证所有的局部写操作,无论是正在进行(jnxng)、半途完成、或者已经完成的写操作,都施加在数据仓库的所有副本上 。-第三条性质是针对同步操作的,当访问数据仓库时,无论是读还是写,所有以前的同步操作都必须已经结束。 19第十九页,共五十四页。弱一致性模型弱一致性模型(mxng)(mxng)图例图例同步(a) 弱一致P1:P2:R(x)a同步R(x)aW(x)b同步时间P1:P2:P3:W(x)aR(x)aR(x)b同步R(x)aR(x)b时间W(x)b同步R(x)bR(x)b(b) 非弱一致(a)进程P1在执行(zhxng)了两次写操作之后发出同步操作,而进程P2和P3在尚未
18、同步之前,它们对数据的观点不可能达成一致,因此可能以任何次序读出数据值,一旦同步之后,就只能读出b。(b)进程P2在执行读操作之前已经实施了同步操作,因此它必须遵守P1同步后的顺序一致性,也就是说,它读x的值应该是b,而决不是a。 20第二十页,共五十四页。n(1) (1) 当一个进程对某个共享变量执行读当一个进程对某个共享变量执行读/ /写操作之前,该进程写操作之前,该进程以前发出的所有以前发出的所有ACQACQ操作都必须已经成功完成;操作都必须已经成功完成;n(2) (2) 当一个进程执行当一个进程执行RELREL操作之前,该进程以前发出的所有读操作之前,该进程以前发出的所有读/ /写写操
19、作都必须已经成功完成;操作都必须已经成功完成;n(3) (3) 对同步变量的访问必须遵循对同步变量的访问必须遵循PRAMPRAM一致性。一致性。n我们也可以用屏障(barrier) 来实现(shxin)释放一致性模型。屏障是一种以程序阶段为基准的同步机制:在所有进程尚未完成阶段N之前,不允许任何进程开始N+1阶段。于是,当一个进程到达某个阶段的屏障时,它必须等在那里直到其它进程都到齐为止,然后再一起进入下一阶段。如果到达屏障的进程是该阶段的最后一个进程,则对所有共享数据进行同步(一致化) 。从一个屏障出发的操作对应于申请操作,而到达一个屏障的操作对应于释放操作。 释放释放(shfng)(shf
20、ng)一致性模型一致性模型21第二十一页,共五十四页。释放释放(shfng)(shfng)一致性模型一致性模型图例图例释放LW(x)bP1:P2:P3:申请L申请LR(x)aR(x)b时间W(x)aR(x)b释放L进程P1首先请求访问临界区,执行了两次写操作之后发出释放访问操作。进程P2亦请求访问临界区,然后执行读操作并释放访问。这种临界区机制保证进程P2读出x的值是b,除非P2的请求访问操作在P1的临界区请求之前被执行。而例子中进程P3没有要求进入临界区,所以系统不保证它能够得到(d do)x的最新值,也就是说,它可能得到(d do)b也可能得到(d do)a。 22第二十二页,共五十四页。
21、n(1) (1) 当一个进程对某个同步变量执行当一个进程对某个同步变量执行ACQACQ之前,这个同步变量所保护的之前,这个同步变量所保护的数据的所有更新操作都必须已经成功完成;数据的所有更新操作都必须已经成功完成;n(2) (2) 在一个进程以互斥方式访问某个同步变量之前,不得有其它进程在一个进程以互斥方式访问某个同步变量之前,不得有其它进程( (哪怕是以互哪怕是以互斥斥) )持有这个同步变量;持有这个同步变量;n(3) (3) 当对一个同步变量的互斥访问已经完成后,任何其它进程对该同当对一个同步变量的互斥访问已经完成后,任何其它进程对该同步变量的非互斥访问都必须等到该同步变量的拥有者完成之后
22、才能进步变量的非互斥访问都必须等到该同步变量的拥有者完成之后才能进行行。n第一条规则保证进入临界区之前的一致性,也就是说,当执行申请时,所有远程的数据更新都要可见,并且与局部副本取得一致。第二条规则保证互斥性,即在更改共享数据之前,一定要处于互斥的临界区内,外界进程不能干扰(gnro)。第三条规则是为非互斥访问共享变量的进程而设的,即在访问之前,必须首先与同步变量拥有者通信,以得到共享数据的最新更改。入口入口(r ku)(r ku)一致性模型一致性模型 23第二十三页,共五十四页。入口入口(r ku)(r ku)一致性模型一致性模型图例释放Lx释放LyW(y)bP1:P2:P3:申请Lx申请L
23、x申请LyR(x)a时间W(x)aR(y)bR(y)申请LyR(x)Lx和Ly分别为保护数据x和y的同步变量。进程P1首先请求同步变量Lx,写入x的新值,然后请求同步变量Ly,写入y的新值,完成之后,依次释放(shfng)Lx和Ly这两个同步变量。进程P2执行读操作,但它只请求同步变量Lx,却没有请求Ly,于是,x的值具备一致性,而y的值却有任意性,可能是(如例子所示) ,也可能是b。对进程P3来说,由于它请求同步变量Ly, 当Ly被P1释放之后,它的申请操作才得以成功,因此读出y的值必然是b。24第二十四页,共五十四页。基于(jy)同步操作的一致性模型之特征 一致性模型典型特征弱一致性仅当同
24、步操作后才保证数据一致化释放一致性退出临界区时实施数据一致化入口一致性进入临界区时对所保护的数据进行一致化25第二十五页,共五十四页。以客户以客户(k h)为主的一致性模型为主的一致性模型 n这类数据仓库的共同特征是以读为主,以写为辅:即便有更新操作,这些操作也很少同时进行,即便同时进行 ,也很容易解决时序冲突。这类数据仓库只满足一种非常弱的一致性模型,称为最终一致性。 n例子:-DNS:每个域只能由一个授权管理员进行更新工作 -WWW系统就是采用最终一致性的。一般而言,只要客户一直访问数据仓库中的同一个复制,最终一致性就可以得到保证(bozhng)。 n最终一致性模型面临的典型问题,往往发生
25、在一个客户使用不同的复制(副本) 的情况下。为了缓解这种不一致性,我们引入以客户为中心的一致性模型。之所以说以客户为中心,是因为我们只保证一个单独的客户在访问数据时,数据仓库满足一致性,而对不同的并发客户不提供任何保证。26第二十六页,共五十四页。以客户为中心以客户为中心(zhngxn)的一致性模型语义的一致性模型语义n假定进程 P 在两个副本上执行读x操作。n我们可以有四种语义:-单调读单调读-一旦读x,后续的读操作必须返回同样(tngyng)的值,或更新的值。n单调写单调写n在执行写操作时,前一次的写操作必须已经传播到所有副本。n读随写读随写:n在执行读x操作时,必须返回前一次的写x操作之
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式系统 最新分布式系统第八章 复制及复制一致性共54张PPT课件 最新 分布式 系统 第八 复制 一致性 54 PPT 课件
限制150内