分布式系统中处理进程故障的共识算法
1. 分布式共识与进程故障模型
在分布式系统里,当进程可能出现故障时,达成共识是一项极具挑战的任务。在这个模型中,系统从包含由源签名的一组输入值的状态开始。故障进程被允许发送任意消息并执行任意状态转换,不过其无法生成无故障进程或源的签名。
该模型需要满足的正确性条件包括拜占庭协议的常规终止和一致性条件,以及以下有效性条件:若所有进程都以源签名的唯一初始值 ( v \in V ) 启动,那么 ( v ) 是无故障进程唯一可能的决策值。
2. 拜占庭故障算法概述
针对拜占庭故障的算法,主要是解决在 ( n ) 节点完全图的特殊情况下的拜占庭协议问题。这些算法有一个共同特性,即使用的进程数量要多于故障数量的三倍,也就是 ( n > 3f )。这与停止故障情况不同,在停止故障中,对 ( n ) 和 ( f ) 的关系没有特殊要求,此进程限制反映了拜占庭故障模型的额外难度。
3. 拜占庭协议问题的难度示例
为了说明拜占庭协议问题比停止故障的协议问题更难,下面给出一个示例,表明在可能有一个进程出现故障的情况下,三个进程无法解决拜占庭协议问题。
假设进程 1、2 和 3 要解决容忍一个故障的拜占庭协议问题,且它们在两轮结束时做出决策,操作方式如下:
- 第一轮 :每个进程简单广播其初始值。
- 第二轮 :每个进程向其他进程报告第三进程在第一轮告知它的内容。
下面考虑三种执行情况:
1. 执行 ( \alpha_1 )
超级会员免费看
订阅专栏 解锁全文
35

被折叠的 条评论
为什么被折叠?



