FLP 定理

FLP 定理FLP 定理在异步通信场景 即使只有一个进程失败了 没有任何算法能够保证进程能够达到一致性系统模型系统模型 1 1 异步通信 gt 异步通信与同步通信最大区别是没有时钟 不能时间同步 不能使用超时 不能探测失败 消息可任意延迟 消息可乱序 1 2 通信健壮 gt 只要进程非失败 消息虽会被无限延迟 但最终会被送达 且消息只会被送达一次 无重复 1 3Fail Stop 模型 gt 进程失败如同宕机 不再处理任何消息 相对 Byzantine 模型 不会产生错误消息 1 4 协议约束

FLP 定理

  1. 在异步通信场景,即使只有一个进程失败了,没有任何算法能够保证进程能够达到一致性

系统模型

  1. 系统模型
    1.1 异步通信 > 异步通信与同步通信最大区别是没有时钟,不能时间同步,不能使用超时,不能探测失败,
    消息可任意延迟,消息可乱序
    1.2 通信健壮 > 只要进程非失败,消息虽会被无限延迟,但最终会被送达,且消息只会被送达一次(无重复)
    1.3 Fail-Stop模型 > 进程失败如同宕机,不再处理任何消息。相对Byzantine模型,不会产生错误消息;
    1.4 协议约束 > 不要求所有非故障进程都达成一致,只要有一个进程进入决定状态就算达成一致,且一致的结果只能是
    属于{0,1};
    1.5 失败进程数量 > 最多只有一个进程失败或单节点宕机






推导证明

  1. 进程自己必须在接受别人请求后作出正确决定,最不出正确决定视为无法达成一致
  2. 如果非故障节点投票结果为 1 : 1,故障节点无法投票会导致失败

结论

  1. 不存在在异步网络上容忍各种故障并保持一致的分布式系统
  2. 无法同时保证safety,liveness的一致性算法,但保证其中一个,失败概率比较低
  3. 现实中并不存在完全分布式场景
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221020.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午7:06
下一篇 2026年3月17日 下午7:06


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号