Co2y's Blog

paxos-2

记录学习Paxos中的一些理解。

Multi-Paxos vs Basic-Paxos

basic-paxos在一阶段得到value后,proposer并不可以肯定,accept命令会在多数acceptor中成功执行,所以需要accept阶段。因为proposal可以抢占。

而multi-paxos在basic-paxos的二阶段上引入了一个机制,让自己看起来像一阶段一样。假如只允许有一个proposer,accept一定会成功,所以multi-paxos通过paxos协议本身完成了选主,提高了效率。

Raft

Raft一共分为三种角色,leader,follower,candidate。

leader负责客户端请求,写majority即返回客户端。follower失去leader心跳会变成candidate进行选举,得到多数票之后会成为leader。multi-paxos和raft,在选定了leader状态下的行为模式一模一样。

raft保证:

  1. log落后的候选人,无法被选为leader
  2. follower接受leader的是LogID连续的日志

Multi-Paxos vs Raft

  1. raft仅允许日志最多的节点当选为leader,而multi-paxos则相反,任意节点都可以当选leader
  2. raft不允许日志的空洞,这也是为了比较方便和拉平两个节点的日志方便,而multi-paxos则允许日志出现空洞

参考文献

  1. 比较raft ,basic paxos以及multi-paxos
  2. raft