Skip to content

FLP 不可能性定理

FLP impossibility · Fischer–Lynch–Paterson theorem

完全异步系统中即使只允许一个进程崩溃,也不存在保证所有可容许执行终止的确定性共识协议。

条目类型
定理

形式陈述

设至少两个进程运行一个确定性的二元共识协议。系统完全异步:没有进程速度、消息延迟或相对调度的已知上界;点对点信道不复制或伪造消息,发给正确进程的每条已发送消息最终且至多交付一次,但交付顺序与延迟任意。故障仅限至多一个进程在某一步后永久停止的 crash-stop。

把满足以下公平性与故障预算的无限执行称为可容许执行:至多一个进程 crash-stop,每个正确进程取得无穷多步,发给正确进程的每条消息最终交付。FLP 断言:对每个满足一致性与有效性的确定性协议,都存在一个这样的可容许执行,其中没有进程决定。因此该协议不可能再对所有可容许执行保证终止。

更精确地说,定理否定下面三项的同时成立:

  • 一致性:任何两个作出决定的进程,即使其中一个稍后崩溃,也决定同一个值;
  • 有效性:决定值来自允许的输入;证明只需用到全体输入均为 v 时只能决定 v
  • 无条件终止:在每个上述可容许执行中,每个正确进程最终决定。

关键量词是

PαAP:α 不含决定事件,

而不是“每个执行都不决定”,也不是“消息可能永久丢失所以无法决定”。反例执行仍满足对正确进程的公平调度与可靠交付。

直觉

证明反设协议同时满足三项性质,并把某一时刻所有进程的本地状态和在途消息合称为一个分布式配置。若从配置 C 出发的可容许延伸只能决定 0,称它为 0-单价;只能决定 1 则为 1-单价;两种决定仍可由不同合法调度到达,则称为双价。决定一旦发生,一致性会使配置永久保持相应单价,所以任何从双价进入单价的事件都像跨过一条不可逆边界。

第一步证明至少有一个双价初始配置。全 0 输入按有效性是 0-单价,全 1 输入是 1-单价。沿着逐个翻转进程输入的初始配置链,若每个配置都单价,就必有两个只相差进程 p 输入、价态却不同的相邻配置。让 p 在开始时停止,其余进程看不到 p 的初值,因而无法区分两次执行,却被迫得到不同决定,矛盾。

第二步是核心事件引理。对双价配置 C 和一个可应用事件 e,总能先执行一段不含 e 的有限调度,再执行 e,并让结果仍为双价。反设所有这样的结果都已单价;沿不含 e 的可达配置寻找执行 e 后价态改变的边界,会得到两种次序产生不同价态。发往不同进程的事件彼此不可见,交换次序应到达同一配置,不可能改变价态;原论文再用“允许一个进程停止”处理事件集中在同一进程的剩余情形,从而排除反设。

有了事件引理,调度者不必永久扣住某一条特定消息。它公平枚举待交付消息与进程步骤,每轮先走有限条旁路,再履行当前义务,同时让新配置继续双价。于是每个正确进程仍不断取得步骤,发给它的每条消息也最终送达;但执行永远留在双价区,因此不含决定。不可区分性提供初始双价,事件可交换性则让调度者在不破坏可容许性的前提下反复绕开决定边界。

FLP:双价区与公平无限执行
例子与边界

两进程协议中,进程 p 收不到 q 的消息时,无法仅凭等待时长判断 q 已崩溃还是消息仍在网络中。如果协议为了活性允许 p 独自决定,它必须在另一条执行中面对“q 只是很慢且持有相反输入”的可能;如果永远等待,又不能满足一次真实崩溃下的终止要求。FLP 的证明把这种直觉推广到任意进程数和任意确定性协议,并用价态论证避免依赖某个具体超时算法。

一个持续竞争的 Paxos 执行可以不断提高 ballot 而长期不决定,这为“安全但未必活”提供了具体图像;但它不是 FLP 证明本身。Paxos 一旦选定值仍保持一致性,其工程化活性通常依赖最终稳定的领导者和足够长的稳定通信期。FLP 允许协议在许多正常执行中迅速结束,只否定覆盖所有可容许执行的确定性终止保证。

改变任一关键假设都会进入不同问题。部分同步在未知时刻后提供时延界,故障检测器增加关于崩溃的信息,随机化协议把保证改为对随机选择以概率 1 终止,同步模型则直接限制调度。这些结果绕开了“确定性且完全异步”的前提,并非驳倒定理。拜占庭故障、消息丢失和网络分区又是更强的故障模型,不能把 FLP 的“一次 crash-stop”原样当作它们的完整可解性边界。

推论与应用

FLP 把安全性与活性之间的差别变成了系统设计的硬边界。实现可以让一致性在任意异步时序下成立,却只能在额外的时序、领导权或随机性条件下承诺进展;超时器本身只是产生怀疑,若没有最终稳定假设,并不会把完全异步系统变成同步系统。

引用该定理时必须同时写明二元共识任务、完全异步、确定性协议、可靠信道、至多一个crash-stop,以及“协议对所有可容许执行终止”的被否定量词。故障检测器理论进一步追问:需要补充多强的、可能暂时犯错的信息,才足以恢复共识活性。这比把结论缩成“分布式共识不可能”更准确,也更能解释实际协议为何既尊重 FLP 又能在常见网络条件下工作。

参考资料
  • Michael J. Fischer, Nancy A. Lynch, and Michael S. Paterson, “Impossibility of Distributed Consensus with One Faulty Process,” Journal of the ACM 32(2), 1985, pp. 374–382.
  • Nancy A. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996, Ch. 12.
关系图谱9 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系

使用的工具