进程容错机制.ppt

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

第九章 容错机制 * 虚同步组播算法的条件 我们假定进程P1发出组播信件后立即崩溃,从而引发编组图的变化,即G1从变为G2。当这种编组发生变化的时候,如何提交组播信件才能满足虚同步条件呢?子图(1)例举了两种满足虚同步条件的组播通信实例,而子图(2)给出了两种不满足条件的情况。 P1 P2 P2 P1 P2 P2 P1 P2 P2 P1 P2 P2 G1 = {P1, P2, P3} G1 = {P1, P2, P3} G1 = {P1, P2, P3} G1 = {P1, P2, P3} G2 = {P2, P3} G2 = {P2, P3} G2 = {P2, P3} G12= {P2, P3} (1)满足条件 (2)不满足条件 第九章 容错机制 * 虚同步组播的例子 四个进程编为一组,当进程P2和随后的P1发出组播信件m1和m2时,它们都有相同的编组图G1 = {P1, P2, P3, P4}。假定组播通信是采用可靠的点对点通信协议实现的,相邻的黑点代表一次组播通信。当进程P3组播m3时,突然发生了崩溃故障,可是在崩溃前已经向P2和P4发出了m3。虚同步组播机制就必须对这种情况采取对策,即保证不向P2和P4提交m3。如果做到这一点,其效果就等价于当进程P3自动退出编组,根本没有发送过m3。 m1 m2 m3 m4 m5 G1 = {P1, P2, P3, P4} G2 = {P1, P2, P4} G3 = {P1, P2, P3, P4} P4 P3 P2 P1 时间 进程组 第九章 容错机制 * 令G代表一张当前编组图,m1,m2为组播信件,我们在下面给出这四种组播排序定义: (1)无序组播:通过可靠的组播通信把信件提交给G中所有成员,但不保证任何提交次序,也就是说,一个进程接收的次序是m1、m2,而另一个进程可能接收的次序是m2、m1。 (2)FIFO组播:同一个进程发送的组播信件必须按照发送次序提交给G中所有接收者。 (3)因果排序组播:根据我们在第六章讨论的Lamport因果排序定义,如果组播信件m1先于m2,则必须向G中所有成员先提交m1,后提交m2。而对于没有因果关系的组播信件,提交次序可以任意。 (4)全局排序组播:无论组播信件提交次序属于无序、FIFO,还是因果排序,全局排序为其附加了一个条件,即G中所有成员对组播信件的排序观点一致。换句话说,如果一个进程得到的信件提交次序是m1、m2,则G 中所有成员都必须按这个次序得到信件;反之,如果一个进程得到的信件提交次序是m2、m1,则G 中所有成员也必须按这个次序得到信件。 四种组播排序语义 第九章 容错机制 * 如果由于某个故障,系统进入错误状态,容错处理的目的是采取适当的手段,把系统恢复(Recovery)到无错误状态。 大致上我们可以把系统恢复技术归纳为两类:前向恢复(Forward Recovery)和逆向恢复(Backward Recovery)。 前向恢复技术采用一种乐观的态度,当系统发现错误后,我们试图把系统带入一个新状态,从新状态开始继续运行。 逆向恢复技术采用一种保守的态度,我们事先并不知道会发生什么故障,于是在系统正常运行时记录一些状态历史。一旦故障发生而系统重新启动,我们就可以沿着保存的状态历史,让系统恢复到一个以前的安全状态,从那里继续运行。 恢复技术 第九章 容错机制 * 直观上看,前向恢复技术比逆向恢复技术好,因为系统无需花费代价保存状态,而且可以直接继承故障前的中间运行结果。这种技术的关键是要事先掌握可能出现的故障,并且为每一种故障定义了相应的恢复操作,于是才能在故障出现时把系统切换到一个新的状态。 例外处理 预定义的例外 由程序员定义的例外 当发生错误时显式引发例外 系统自动执行例外处理程序 前向恢复技术的要求过于苛刻,我们无法预先估计到所有可能发生的故障。 前向恢复:例外处理技术 第九章 容错机制 * 逆向恢复:检查点技术 逆向恢复技术的关键是建立检查点,每一个检查点都代表系统曾经历过的某个正常运行状态。检查点必须保存在安全的地方,我们把这种地方称为稳定的存储器(Stable Storage) 。 局部快照 合法恢复线 非法恢复线 第九章 容错机制 * 尽管分布式快照算法可以用于故障恢复,但这种算法存在一个潜在的致命弱点。该算法要求每一个进程独立地、周期性地记录自身的状态,与系统中其它进程毫无协调。一旦需要形成一条恢复线,每个进程只能回溯到它最近保存的那个局部快照,然后通过一个检验算法来核对一致性。如果检验成功,则皆大欢喜;反之,我们就必须令所有进程进一步回溯,一直到形成一条合法恢复线为止。这样一种回溯过程可能导致多米诺效应(Domino Effect) ,即所有进程都回溯到初始状态 构造恢复

文档评论(0)

wangyueyue + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档