为什么多Paxos被称为多Paxos?

13

为什么多Paxos被称为多Paxos?我看不出它是如何“多”的。


1
Multi 似乎是关于协议实例中多个请求/命令的,第一个之后跳过 Prepare/Promise - greybeard
2个回答

22
这是有关从稳定的领导者同意顺序请求的算法进行多个轮次,最小化消息传递。 最初没有认可的领导者,必须运行至少一轮基本 Paxos,其中候选领导者发送准备请求(使用论文Paxos Made Simple中的术语)。来自大多数人的肯定回应将其确认为领导者。然后,它会发送该轮次的接受消息,如果您获得大多数接受确认,则成功终止。它不需要从头开始准备请求,而是可以立即转入奔跑模式,在听到前一个接受请求的大多数确认时发送连续的接受消息。这非常高效,因为它只需要最少量的消息,但仅发生在来自稳定领导者的多个轮次中。这可能会被领导者崩溃或网络故障所打断,这会导致追随者在否则正常的领导者上超时。然后,它将发布自己的准备请求作为领导挑战,其通过基本 Paxos 规则解决。只要您获得稳定的领导者,它就可以升级为多 Paxos 奔跑模式。

另请参阅此答案,其中讨论了为什么可以安全地执行此操作的原因https://stackoverflow.com/a/64759874/329496


如果您点赞了这个答案,您真的应该点赞链接的答案,因为它解释了为什么进行多Paxos是安全的! - simbo1905

8

Paxos协议有两个阶段需要交换许多消息。为了优化Paxos协议,我们尝试仅在需要时运行阶段。第一阶段谈论的是“领导者选举”。为了获取日志中的每个条目(状态机复制问题),没有必要一遍又一遍地运行此阶段。我们只在领导者失败时运行它。这是选择领导者用于日志而不仅仅是针对日志中的每个条目的时间。多Paxos意味着同一个领导者处理多个客户端请求,而无需一遍又一遍地运行领导者选举。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接