深入理解分布式系统第四章(1)

这章主要介绍共识算法

终止性(Termination):所有正确的进程最终都会认同某一个值。

协定性(Agreement):所有正确的进程认同的值都是同一个值。

完整性(Integrity),也叫作有效性(Validity):如果正确的进程都提议同一个值v,那么任何正确进程的最终决定值一定是v。

异步系统中的共识

FLP 不可能定理

        FLP是三个人名字母。

        主要理论:在一个完全异步系统中,即使只有一个节点出现了故障,也不存在一个算法使系统达成共识。

        该理论不是像CAP定理三选二,也不是:放弃吧,让我们去研究点儿别的问题

        而是这种不可能结果来自算法流程中最坏的结果:

        1,一个完全异步的系统。

        2,系统发生了故障。

        3,不可能有一个具备安全性、活性和容错性的共识算法。

        有三种办法可以绕过FLP不可能定理:故障屏蔽(Fault Masking )。使用故障检测器(Failure Detectors)。使用随机性算法(Non-Determinism)。

故障屏蔽

        如果一个进程崩溃,那么它会被重启(自动重启或由系统管理员重启),进程在持久化存储中保留了足够多的信息,以便在崩溃和重启时能够利用这些数据继续工作。

        也就是,他只是需要一段时间执行一个恢复处理。

使用故障检测器

        一种最常见的故障检测器是超时故障检测器,即如果进程在一定时间内没有响应,那么即便该进程并没有发生故障,我们依然认为该进程已经失效。

        The weakestfailure detector for solving consensus提出故障检测器必须两个属性:完全性(Completeness):每一个故障的进程都会被每一个正确的进程怀疑。精确性(Accuracy):正确的进程不会被别的进程怀疑。

        但是完美的故障检测器是困难的,因此,此论文还证明了:即使使用“不完美的”故障检测器,只要通信可靠,失效的进程不超过N/2,那么依然可以用来解决共识问题。

        不完美检测器只需要一下两点。

        最终弱完全性(Eventually Weakly Complete):每一个故障的进程最终都会被一些正确的进程检测到。

         最终弱精确性(Eventually Weakly Accurate):经过一段时间后,一个正确的进程不会被其他正确的进程怀疑。

使用随机性算法

        等

同步系统中的共识

        非拜占庭容错的Paxos算法和Raft算法,以及拜占庭容错的PBFT 算法。

未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值