为什么multi-paxos被称为multi-paxos?我看不出它是如何“多”的。
2 回答
这是关于算法的多轮,以通过最少的消息来同意来自稳定领导者的顺序请求。最初没有公认的领导者,您必须运行至少一轮基本的 Paxos,候选领导者发送准备请求(使用论文Paxos Made Simple的术语)。大多数人的积极回应证实了它是领导者。然后它会发送该轮的接受消息,如果您获得大多数接受确认,则该轮成功终止。与其从准备请求重新开始,它可以立即进入疾驰模式,在这种模式下,当它听到对前一个接受请求的大多数确认时,它会发送连续的接受消息。这是非常有效的,因为它需要最少数量的消息,但它只发生在 来自稳定的领导者的多轮。这可能会因领导者崩溃而中断,否则网络故障会导致追随者在其他健康的领导者上超时。然后它将发出自己的准备请求作为领导挑战,通过基本的 Paxos 规则解决。只要你得到一个稳定的leader,它就可以升级到多Paxos驰骋模式。
另请参阅此答案,其中讨论了为什么这样做是安全的https://stackoverflow.com/a/64759874/329496
paxos有两个阶段,需要交换许多消息。为了优化paxos协议,我们尝试仅在需要时运行阶段。第一阶段的会谈都是关于“领导人选举”的。一次又一次地运行此阶段以获取日志中的每个条目是没有意义的(状态机复制问题)。我们仅在领导者失败时运行它。这是为“日志”选择领导者的时间,而不仅仅是为日志中的每个条目。Multi-paxos意味着同一个领导者正在处理多个客户端请求,而无需一次又一次地运行领导者选举。