最近在学习Paxos
,到现在已经对它的工作原理有了基本的了解。但是谁能解释一下 Paxos 是如何处理丢包和新节点加入的?如果提供一个简单的例子会更好。
最佳答案
经典的Paxos算法没有“新节点加入”的概念。一些 Paoxs 变体可以,例如“Vertical Paxos”,但经典算法要求在运行算法之前静态定义所有节点。关于丢包,Paxos 使用了一个非常简单的无限循环:“尝试一轮算法,如果任何地方出错,再试另一轮”。因此,如果在第一次尝试实现解决方案时丢失了太多数据包(可以通过等待回复的简单超时来检测),则可以尝试第二轮。如果该轮的超时到期,请重试,依此类推。
Paxos 算法未定义具体如何检测和处理数据包丢失。这是一个特定于实现的细节。这对于生产环境来说实际上是一件好事,因为如何处理它会对基于 Paxos 的系统产生相当大的性能影响。
关于algorithm - Paxos是如何处理丢包和新节点加入的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33543647/