paxos选举出一个leader解决活锁,可是如果在存在leader为什么要使用paxos?

如果只有leader可以进行提议,确实不会发生活锁了,可是prepared阶段也没有必要了吧,直接accept可以吗?是否可以认为basic-paxos并没有解决活锁的方法?
关注者
84
被浏览
2441

7 个回答

leader任期内不需要执行prepare,直接accept即可,实际上可以认为:选举leader的那一次多数派投票就是对leader任期内所有即将写的日志的prepare过程。 可以参考我这篇专栏文章 zhuanlan.zhihu.com/p/20
回楼主:
这就是multi paxos,在同一个leader任期内只有leader发起proposal,相当于把每个单独的basic paxos一阶段共享了,整个过程的correctness test可以参考《Multi-Paxos: An Implementation and Evaluation》
basic-paxos从算法本身没有解决活锁的方法,毕竟是抢占式的。如果只看multi paxos的一阶段的话,选主也可能因为活锁而导致一轮没有选主成功,比如candidate总是收到了多数投票但是下发选主成功的RPC之前挂掉。