基于FLP结果,异步网络系统无法解决任何共识问题,选择唯一的领导者是一种共识问题。因此,从理论上讲,在异步网络系统中,领导人选举是无法解决的问题。
但是,当我了解了“可靠广播”的概念后,每个非故障节点都有责任广播从其他节点接收到的任何值,因此有可能实现“每个非故障节点都获得相同的消息集(忽略顺序)”。因此,如果每个节点都使用可靠的广播将其节点ID发送给其他节点,这是否意味着每个非故障节点最终都将获得相同的节点ID集,因此能够决定相同的领导者(简单来说,最大的节点id是领导者)?
[如果是,那么为什么说领导选举是无法解决的?还是让我感到困惑?
可靠广播使用(Perfect-)Failure-Detector,以了解集群中的哪个进程崩溃了。这样的检测器根本就不存在于异步网络中,因为您基本上无法区分此类网络中的slow和faulty进程。
因此,您不能依靠可靠的广播来解决所需的问题。
一旦单个进程崩溃,您的算法将永远不会终止。因此,它根本不会容忍任何错误,并且完全不使用[[not绕过FLP。]]