[分布式系统数据一致性解决方案.ppt
《[分布式系统数据一致性解决方案.ppt》由会员分享,可在线阅读,更多相关《[分布式系统数据一致性解决方案.ppt(32页珍藏版)》请在三一文库上搜索。
1、第五章 分布式系统完整性解决方案,1.分布式系统中数据一致性存在的困难 1.高度并行带来的问题 本机内多任务并行带来的困难 多机并行带来的困难 网络延迟不可预测 2.多副本带来的问题 系统中存在多个副本,数据的修改通常会在不同的副 本上进行,第五章 分布式系统中的数据一致性问题,3. 空间数据所存在的特殊困难 跨机图幅的接边问题 拓扑关系的全局动态改变与生成问题 4. 分布式系统中数据一致性保证的不同模型 严格一致性:读出的数据始终为最近写入的数据,计算机A,计算机A,计算机A,读x,写x,时刻T1,时刻T2,T2 T1,如果两者非常接近,有可能因为网络原因读请求比写请求晚到!,太严格!实现难
2、度极大!几乎不可能!,第五章 分布式系统中的数据一致性问题, 顺序一致性:只要所有的程序都以一定的顺序运行(即所有程序的访问操作在别的程序看来都是一样的),每个程序的操作都以程序规定的次序实现,结果都应该被接受。 例1 程序P1:W(x,1) 程序P2 : R(x)0 R(x)1 或者两次都为1,都应该接受。 顺序一致性看似很“弱”,实际很强,对多副本一致性有很强的要求,实际实现也是难以做到的。只能在单一服务器上使用。,第五章 分布式系统中的数据一致性问题,例2 程序A 程序B 程序C a=1; b=1; c=1; print(b,c) print(a,c) print(a,b) 理论上有90
3、个执行的次序。以a=1开头说明,共有5!=120个顺序,但b=1不能在print(a,c)之后,因此一半是无效的;同理程序C也如此,只剩下30个有效,共90个有效顺序。 但是,打印结果只有6个数字、64种可能。其中,000000和001001显然不可能。 应该承认所有合理的结果。例如,001011,表示执行的次序为:,A=1 print(b,c) b=1 print(a,c) c=1 print(a,b),A=1 print(b,c) b=1 print(a,c) c=1,第五章 分布式系统中的数据一致性问题, 因果一致性:可能因果相关的写操作应对所有程序可见并保持顺序一致。并发的写操作在不同
4、计算机上看来可以顺序不同。 例1 程序P1:W(x,1) W(x,3) P2: R(x)1 W(x,2) P3: R(x)1 R(x)2 R(x)3 P4: R(x)1 R(x)3 R(x)2 符合因果一致性要求,但违反了顺序一致性。因为P3和P4见到访问顺序不同。,第五章 分布式系统中的数据一致性问题,例2 P1: W(x,1) P2: R(x)1 W(x,2) P3: R(x)1 R(x)2 P4: R(x)2 R(x)1 违反了因果一致性。因为P2读出了x=1,所以P1和P2的两个写操作顺序必定为W(x,1)在W(x,2)前。 P3的结果才是正确的。 因果一致性在实现时必须建立与维护依赖
5、图,这里涉及到语义上的以来,是相当困难的。,第五章 分布式系统中的数据一致性问题, PRAM一致性:一个程序的写操作被其他进程以指定的顺序见到,不同程序的写操作在不同程序看来次序可以不同。 例1 P1: W(x,1) P2: R(x)1 W(x,2) P3: R(x)1 R(x)2 P4: R(x)2 R(x)1 符合PRAM一致性的要求。 PRAM与顺序一致性的差别在于,后者虽然为确定语句的顺序,但要求所有程序遵从共同的顺序;而前者则允许不同程序见到的顺序可以不同。,第五章 分布式系统中的数据一致性问题,例2 在前面的例子中,结果001001是可以接受的。这时,各程序看到的顺序:,程序A a
6、=1 Print(b,c) ,程序B a=1 Print(a,c) C=1 ,程序C a=1 Print(a,b) b=1 ,这里只列出本程序感兴趣(与自己的打印有关)的语句执行次序,第五章 分布式系统中的数据一致性问题,PRAM一致性要求虽然较弱,但它要求程序的写操作必须被其他程序看到(尽管他们的顺序可以不同)。实际上,这样的要求有点过高,每一个程序只要能够看到与自己有关的其他程序的写操作就可以了。 弱排序:弱排序只要求对共享数据结构的访问保证顺序一致性。即: 对同步变量(可与信号量类比)的访问是顺序一致的; 在所有以前的写操作结束之前,不的访问同步变量; 在先前所有的同步变量访问完成以前,
7、不得访问共享数据。,第五章 分布式系统中的数据一致性问题,实现考虑: 为保证第一点,对同步变量的访问必须立即广播。在广播完成之前,其他程序不的访问别的同步变量; 对第二点,强制要求所有的同步访问开始前,已经开始的所有的写操作必须完成,在更新共享数据后立即进行同步,将新值传遍所有副本; 第三点,保证在读共享数据之前,完成同步操作,以便可以读到最新值。 做法: 任何程序编制时,在对共享数据写操作后都必须紧接着访问同步变量; 任何读共享数据操作前,访问同步变量。 例如: P1:W(x,1) S1 W(y,2)S2 P2: S1 R(x)1 P3: s2 R(y)2,弱一致性的缺陷在于没有区分对共享变
8、量的修改与读取。所以同步变量的访问即要确保本地写全部完成(所有副本均已更新)还要收集其它计算机的写操作信息。,第五章 分布式系统中的数据一致性问题, 释放一致性:类似临界区,提供“获取”和“释放”两类原子同步操作。强制: 程序在访问共享变量之前必须成功完成“获取”操作; 完成“释放”操作前,程序的访问操作必须结束; “获取”、“释放”应保证顺序一致性。 释放一致性与用信号量和P、V操作来保证临界区访问正确性何其相似乃尔! 与此相对应,还可以有入口一致性。,第五章 分布式系统中的数据一致性问题,小结:,一致性模型可以分为两类:,不使用同步操作 严格:所有访问时间绝对顺序 顺序:所有程序以相同顺序
9、检测所有 共享访问事件 因果:所有程序以相同顺序检测所有 因果联系事件 PRAM:所有程序按预定次序到来自一 台机器的写操作,来自其他机 器的写操作顺序不必相同,最强,使用同步操作 弱:同步完成后共享数据才保持一致 释放:离开临界区后共享数据才保持 一致 入口:进入临界区时共享数据保持一致,第五章 分布式系统中的数据一致性问题,5.实现问题 维护副本一致性的两种策略: 写有效:修改本地数据时,将修改值组播所有副本节点,副本节点据此修改本地数据。 要求修改传送次序严格保证。 每次修改必须传送修改值,网络开销大 写无效:修改本地数据前,通知所用副本停止使用(无效),组播完成后才进行修改。其他副本需
10、使用前,向它申请发送修改值,进行修改后再使用。 多次修改可能一次传送,但每次需发送无效通知。,第五章 分布式系统中的数据一致性问题,2.对分布式文件系统的要求 1. 存取透明性 用户无须知道文件的分布,传统的本地文件操作手段可以直接用于远程文件操作,对已有的用户程序不必刻意进行改动就可以适应分布式环境。 用户无须注意环境中其他用户是否与自己竞争使用同一个文件,无须用户在自己的程序中对共享文件数据添加并发控制,并能保持文件数据的完整性。 2.位置透明性 用户看到的是全局的文件名空间,文件或文件组在机器间迁移和重新定位时不必改变其路径,用户程序无须改动。无论用户处于哪个节点,看到的是相同的文件名空
11、间。出于可靠性考虑,同一个文件可能在不同的节点上保留副本,副本的使用对用户无关,用户意识不到当前使用的是哪一个副本,第五章 分布式系统中的数据一致性问题,3. 故障透明性 在文件服务执行过程中发生故障并修复(例如文件服务器故障,启用备用服务器;网络传输故障,需要重发等)对用户屏蔽。 4. 性能透明性 用户不会感到由于远程存取文件而带来性能上的显著降低。此外,还应该满足硬件和本地操作系统的异构性,客户端和服务器端的软件可以在不同的硬件和本地操作系统上运行。因此接口定义必须良好。 5. 可扩展性 系统必须具备增量扩展的能力,以适应负载和网络扩充的需要。 需要指出的是,目前这个问题还在研究和探讨中,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 系统 数据一致性 解决方案
链接地址:https://www.31doc.com/p-3471979.html