知识卡片
Multi Paxos用Leader把2PC优化为1PC
内容
Basic Paxos确认一条日志至少需两次网络往返(Prepare+Accept)。Multi Paxos优化:选出Leader后先做一次Prepare获得整个日志序列控制权,此后处理新日志可跳过Prepare直接Accept,两阶段缩为一阶段。新Leader发起新Prepare后旧Leader的Accept全部失败自动降级。发散:把每次重新协商的开销转化为协商一次后走轻量路径。
参考来源
- 位置:第11章《多副本一致性》11.2.5节「Multi Paxos算法」问题2性能问题(源文件:_epub-src/text/part0057.html)
- 结论依据:原文明确说明Basic Paxos确认一条日志至少需要两个RTT+两次落盘(Prepare和Accept各一次),Multi Paxos选出Leader后先广播一次Prepare获得整个日志的控制权,此后每条日志直接执行Accept跳过Prepare,优化成1PC,新Leader发起新Prepare后旧Leader的Accept会失败自动降级,直接支持卡片论述。
- 原始内容:"Basic Paxos是一个无限循环的2PC,一条日志的确认至少需要两个RTT+两次落盘……Multi Paxos在选出Leader之后,可以把2PC优化成1PC,也就只需要一个RTT+一次落盘了……一旦这个Leader拿到了整个日志的控制权,后面就直接略过Prepare,直接执行Accept。如果有新的Leader出现……旧的Leader的广播Accept肯定会失败,旧的Leader会自己转变成一个普通的Acceptor。"