1. Multi-Paxos 的"日志索引 + 选主"的工程化
说明 Multi-Paxos 如何把 Single-Decree Paxos 工程化为"日志索引 + 选主"的复制协议?
- 每个日志槽位用一次 Paxos 实例
- leader 在一个 Prepare 阶段后跳过后续 Prepare,仅用 Accept
- 与 Raft 的对应关系
Multi-Paxos 把日志看作一列槽位(instance),每个槽位对应一次 Basic Paxos 实例,用于决定该索引处的一条命令。为了让多个实例高效运行,Multi-Paxos 引入 leader:leader 在当选后发现没有更高编号的提案后,后续所有实例都只需执行 Accept 阶段(跳过 Prepare),从而把每条的复杂度从两次 RTT 降为一次 RTT。选主本身也是通过 Paxos 或专门的 leader 选举完成。由此 Multi-Paxos 实现"日志索引 + 选主"的工程化,与 Raft 的 leader + 日志复制高度对应。
Multi-Paxos 的关键工程点是"跳过 Prepare"的优化,它依赖 leader 的稳定性。Raft 实质上就是 Multi-Paxos 的一种强 leader 具体化:Raft 用 term 与随机选举简化了选主,用 AppendEntries 统一了复制。理解 Multi-Paxos 有助于理解 Raft 的来龙去脉。