有通信链路故障的同步完全图网络下,进程一致性算法
问题形式化描述:
有n个进程,每个进程可以选择(0,1)中的某个值,要求这些进程做决定前满足
- 一致性(每个进程的最终结果要相同)
- 有效性:如果所有进程都从0开始,那么0就是唯一可能的决定值; 如果进程都以1作为初值并且所有消息都被传递,则1是唯一的决定值。(也就是说,初始状态有0,也有1的状态下,可以最终结果都是0或者最终结果都是1)
- 终止性:所有进程最后都会做出决定。
随机化算法RandomAttack algorithm:(有一定的失败概率)
前提假设:
- 进程之间是完全图
- 为了计算算法失败的概率,假设通信链路发生故障并不是随机发生的,而是由一个“对手”指定的
形式化描述进程之间的关系:
定义进程之间满足(i,k)上的偏序关系⊰,i是进程号,k是时间:
- ( i,k` )⊰( i,k ) 当 k` <= k时。
- 如果 进程 i 与 进程 j 之间有消息传递(i 传给 j),则 (i, k-1)⊰ (j, k)
- ⊰可以传递。<