Skip to content

分布式共识

Distributed consensus · Consensus problem

多个进程在可能故障和通信延迟下对一个值达成一致的任务。

形式陈述

共识通常要求:一致性,所有正确进程决定相同值;有效性,决定值来自允许的提议;终止性,每个正确进程最终作出决定。具体定义还必须固定同步模型、故障类型和参与者集合。

直觉

每个进程只看到局部消息历史,却要作出不可撤销且全局一致的决定;困难来自无法区分“节点失败”和“消息只是很慢”。

例子与边界

选举领导者、提交日志位置和决定事务结果都可归约为共识。共识不是简单多数投票:成员变化、重复消息、崩溃和网络分区都需要协议处理。

推论与应用

Paxos、Raft 和状态机复制以共识为核心;可实现性取决于同步性、故障上界和随机化等假设。

参考资料
  • Nancy A. Lynch, Distributed Algorithms, Chapter 6.
  • Leslie Lamport, “The Part-Time Parliament,” 1998.