asynchronous - 我的领导人选举算法是否绕过了 FLP 结果?
问题描述
基于 FLP 结果,异步网络系统中无法解决任何共识问题,选择唯一的领导者是一种共识问题。因此,理论上,leader选举在异步网络系统中是一个无法解决的问题。
但是,当我了解了“可靠广播”的概念后,每个非故障节点都负责广播它们从其他节点接收到的任何值,因此可以实现“每个非故障节点都获得相同的消息集(忽略命令)”。那么,如果每个节点都使用可靠的广播将其节点 ID 发送给其他节点,是否意味着最终每个非故障节点都将获得相同的节点 ID 集,从而能够决定相同的领导者(简单地说,具有最大我是领导者)?
如果是这样,那为什么说领导人选举无法解决?还是我对某事感到困惑?
解决方案
可靠广播使用(完美)故障检测器来了解集群中的哪个进程已经崩溃。这种检测器根本不存在于异步网络中,因为您基本上无法区分这种网络中的慢速和故障进程。
因此,您不能依靠可靠的广播来解决您想要的问题。
一旦单个进程崩溃,您的算法将永远不会终止。因此,它根本不会容忍任何故障,因此您根本不会绕过 FLP。
推荐阅读
- javascript - 使用 Jquery 触发对文本字段更改调用的事件
- r - R中geom_line顶部的geom_point覆盖
- python-3.x - 如何用 np 数组顺序替换选定的 pandas 数据帧行?
- c# - 从复选框中获取值并作为列表发布到控制器
- react-native - React Native - 如何创建 iPhone BedTime 拨号?
- php - 将 index.php 文件设置为仅显示一个类别的帖子
- spring - 在 Spring Boot 控制器中验证 Thymeleaf 的 th:object 中的输入
- php - 从服务器流式传输时 HEVC 无法在 Moto G4 Plus 中播放
- twilio - LIQUID 模板语言 Twilio Studio 变量
- php - Laravel/Lumen Auth JWT 令牌在后续请求中无效,它可能已过期吗?