FLP 定理

FLP定理指出,在异步通信环境中,即使只有一个进程失败,也无法确保所有进程达成一致性。该定理基于无时钟、消息延迟、不可探测失败的系统模型,以及Fail-Stop模型。当非故障节点投票结果出现冲突时,无法避免一致性问题。因此,不存在在这样的网络中同时保证安全性与活性的分布式系统。现实场景中,虽然无法实现完美的一致性,但可以通过牺牲一方来降低失败概率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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. 现实中并不存在完全分布式场景
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值