protocols - 为什么不使用 Paxos 完成 Paxos 领导者选举?

标签 protocols distributed distributed-transactions paxos consensus

下面的问题是严肃的,而不是轻浮的。我缺乏分布式系统方面的经验,但我确实了解 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/

相关文章:

java - 基于 MySql/GigaSpaces/Netapp 的分布式锁服务

mysql - 使用 mySQL 列是实现全局锁定的明智方法吗?

.net - 在分布式事务中手动登记后,使用 enlist=false 的连接不会关闭

ios - ObjC 协议(protocol)在 Swift 中的实现

c - HDLC 扩展寻址

.net - 是否有 .net 框架可以帮助解决这种情况?

hadoop - 从 Hadoop 提供静态文件

java - 微服务和事务管理器如何处理并发问题

protocols - 如何通过基于云的系统强制通过 MQTT 传递到 IoT 设备的消息顺序(API 设计问题)

swift - 在 Swift 中按协议(protocol)查找