我试图了解Raft算法如何克服FLP定理。 为了使FLP有效,共识算法应该是确定性的,终止的和异步的。 正如PhD dissertation on the Raft consensus algorithm所说
不幸的是,很难确定领导人选举所需的时间或消息数量。根据FLP不可能结果[28],没有容错共识协议可以确定性地终止于纯异步模型。这在拉夫特(Raft)的分裂投票中表现出来,这有可能阻碍领导人选举期间的反复进步。筏在领导人选举期间还利用了随机超时,这使得其分析具有概率。因此,我们只能说领导者选举很有可能表现良好,即使在各种假设下也是如此。例如,服务器必须从随机分布中选择超时(它们不以某种方式同步),时钟必须以相同的速率进行,服务器和网络必须及时(或停止)。如果在一段时间内不满足这些假设,则该集群可能无法在此期间选举领导人(尽管将始终保持安全性)。
因此,即使很难确定领导人选举的时间或消息数量,也可以保证在所有情况下最终都会选举领导人吗? 如果不是,那么在这种情况下领导人选举将永远不会终止?
答案 0 :(得分:0)
您不能保证在所有情况下最终都会选出领导人。领导人选举很有可能表现良好。
在您所引用的报价中,是这种情况的示例:
例如,服务器必须从随机分布中选择超时(它们没有以某种方式同步),时钟必须以大约相同的速率运行,并且服务器和网络必须及时(或停止)。如果在一段时间内不满足这些假设,则该集群可能无法在此期间选举领导人(尽管将始终保持安全性)。