13

下面的问题是严肃的,而不是轻浮的。我缺乏分布式系统方面的经验,但我确实了解 Basic Paxos 的工作原理以及领导者选择为何有用。不幸的是,我的理解还不够深入,无法理解以下问题。

在论文Consensus on Transaction Commit的第 8 页(链接 PDF 的第 11 页)中,我们有以下声明。

选择一个唯一的领导者就相当于解决了共识问题。

如果这句话是真的,而且 Paxos 的目的是达成共识,为什么 Paxos 本身一般不用于领导选举?

此外,同一篇论文也支持描述了稳定领导者选举论文的领导者选举算法。

如果这两个问题是等价的,并且同一篇论文支持不同的领导者选举算法,为什么不使用其他算法来解决一般共识问题而不是 Paxos

4

2 回答 2

6

Paxos用于领导选举。在具有领导者的 paxos 变体中(例如 Multi-paxos、Raft),领导者是其数据由 Paxos 实例选择的节点,要么是该节点,要么是领导者在其自己的转换中选出(有些人使用术语Paxos实例;我更喜欢将共识算法视为在分布式有限状态机中选择转换。)

所有正确的共识算法都可以映射到 Basic Paxos,但每种算法都针对不同的事物进行了优化。这些包括 Multi Paxos、Raft、ZAB、Vertical Paxos、Cheap Paxos 和 Chain Replication。(后三个——以及所有只需要failure_tolerance+1节点的共识算法——也需要另一个共识系统来重新配置。但我离题了。)

Stable Leader Election论文不仅仅是 Paxos:它包括一个故障检测器(粗略一看,它是一个基于租约的领导模型。)因此,它比 Basic Paxos 更昂贵。

在我维护的需要领导者的系统中,故障检测器将利用共识协议来罢免/选举领导者,但除此之外它们是完全独立的协议。

于 2014-05-22T22:34:21.160 回答
0

我没有阅读您上面提到的论文,但我在学习期间了解到,Paxos 实际上主要仅用于选举领导者,因为该算法对每条消息进行排序的开销太大。你应该将它用于领导选举的原因是,它是 100% 的分区容错的。我知道的所有其他算法都不是。- 但可能还有更多符合这个标准的,我不知道。

我会阅读论文,但我可以从稳定的领导人选举论文中得到的是,它只是一个概念。他们首先介绍它是什么,然后介绍算法如何做到这一点。当他们介绍算法时,他们再次引用了 Paxos。(但这只是在纸上扫描,仅此而已)。

于 2014-05-22T10:26:23.673 回答