分布式计算-故障模型及故障检测

一、故障模型:

1、初始死进程:在局部算法中没执行过一步,则称进程为初始死进程。

2、损毁模型:如果进程正确地执行局部算法到某一时刻,此后并不进一步执行则称它是损毁。

3、BYzantine行为:如果它执行了与局部算法不一致的任意步,则称进程是Byzatine的。

二、判定问题:

1、终止性:所有正确进程都将进行判定,即最终向输出写值。

2、一致性:在不同进程所进行的判定之间强加了一种关系。最简单的情形是要求所有判定是相同的。

3、非平凡性:排除了基于问题的固定输出的算法,其中每个进程不经通信就可以判定。

三、故障检测:

每个节点向各节点发送一条消息。对于每个进程q,每个节点等待(收集N-T条消息),直到来自q的消息到达,或者q受到怀疑。

四、利用◇S的旋转协调器算法

xi:=input;

r:=o;

while true do

    begin (*开始新一的轮,计算

             r:=r+1;c:=(r mod N)+1;

              (*1:所有进程送值给协调者*)

              send <value,xi,r> to pc;

              (*2:协调者计算输出*)

              if i=c then

                        begin wait N-t mesgs. <value,vj,r> have been received;

                                  v:=majority of values;

                                  d:=(所有j:vj=v);

                                  for j do send <outcome,d,v,r> to pj

                         end;

             (*3:计算轮*)

              if collect <outcome,d,v,r> from pc then

                      begin xi:=v;

                               if (d∧(yi=@)) then decide(v)

                      end

    end

        协调器必须扩展它的活动,首先收集所有进程的当前值,并检查它们是否一致,但是由于错误的怀疑,协调器可能只有效地收集不到一半的活动值,就宣布一个值为最终结果,所以要做出限制:在收集阶段,等待N-T的进程的投票,绝大多数进程已经计算这个值,不必所有正确进程都这样做,由于协调器仅仅等待固定的票数,有些不一致的投票可能漏掉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值