下面的问题是严肃的,而不是轻浮的。我缺乏分布式系统方面的经验,但我确实了解 Basic Paxos 的工作原理以及领导者选择为何有用。不幸的是,我的理解还不够深入,无法理解以下问题。
在论文Consensus on Transaction Commit ,第 8 页(链接 PDF 的第 11 页),我们有以下声明。
Selecting a unique leader is equivalent to solving the consensus problem.
如果这句话是真的,而且 Paxos 的目的正是为了达成共识,为什么 Paxos 本身一般不用于领导选举?
此外,同一篇论文认可了 Stable Leader Election 中描述的领导者选举算法。纸。
如果这两个问题是等价的,并且同一篇论文认可了不同的领导人选举算法,为什么不使用其他算法来解决一般共识问题而不是 Paxos ?
最佳答案
Paxos用于leader选举 .在具有领导者的 paxos 变体中(例如 Multi-paxos、Raft),领导者是其数据由 Paxos 实例选择的节点,要么是该节点,要么是领导者在其自己的转换中选出(有些人使用术语 Paxos实例;我更喜欢将共识算法视为在分布式有限状态机中选择转换。)
所有正确的共识算法都可以映射到Basic Paxos ,但每个都针对不同的事物进行了优化。这些包括 Multi Paxos、Raft、ZAB、Vertical Paxos、Cheap Paxos 和 Chain Replication。 (后三种——以及所有只需要 failure_tolerance+1
节点的共识算法——也需要另一个共识系统来重新配置。但我离题了。)
稳定领袖选举 paper 不仅仅是 Paxos:它 包括故障检测器 (粗略一看,它是一种基于租赁的领导模型。)因此,它比 Basic Paxos 更昂贵。
在我维护的需要领导者的系统中,故障检测器将利用共识协议(protocol)来罢免/选举领导者,但除此之外它们是完全独立的协议(protocol)。
关于protocols - 为什么不使用 Paxos 完成 Paxos 领导者选举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23798724/