Skip to content

Paxos

Paxos consensus

在多数法定人数与稳定领导等条件下实现崩溃容错共识的协议族。

形式陈述

Paxos 是异步消息传递、崩溃故障模型下选择单一值的共识协议族。基本 Paxos 使用相交的多数派 quorum 和递增 ballot。Phase 1 中 proposer 请求 acceptor 承诺不再接受更小 ballot,并收集其已接受的最高 ballot 值;Phase 2 必须提议这些回复中最高 ballot 的值,若无则可选新值。一个值被 quorum 接受即被选择。quorum 交集与“继承最高已接受值”共同保证任何两个被选择值相同。

直觉

新一轮领导者先询问多数派过去可能已经承诺了什么,再继续最先进的已有决定;任何两个多数派相交,所以已成形的决定不会被后续轮次覆盖。

例子与边界

少数 acceptor 崩溃时,只要仍能形成多数派,协议可继续。多个 proposer 竞争可能反复抢占而不进展,但安全性仍保持;活性通常依赖最终稳定领导者和足够及时的通信。Paxos 容忍崩溃和消息延迟、丢失、重复,不自动容忍 Byzantine 篡改。Multi-Paxos 在稳定 leader 下复用第一阶段,为日志每个槽位执行后续共识。

推论与应用

Paxos 是复制状态机、配置服务和一致日志的基础。理解它必须分开 safety 与 liveness:前者在任意异步执行中维持,后者依赖附加公平性或最终同步条件。

参考资料
  • Leslie Lamport, “The Part-Time Parliament,” ACM Transactions on Computer Systems 16(2), 1998, pp. 133–169,Full paper, ballots, quorums, and consistency of ledgers。
  • Leslie Lamport, “Paxos Made Simple,” ACM SIGACT News 32(4), 2001, pp. 51–58,§2, choosing and learning a value; §3, state-machine implementation。