分布式共识与 Paxos 算法详解
1. 分布式共识问题概述
分布式共识是分布式计算中的一个基础问题,在构建容错分布式系统时尤为重要,它是确保副本一致性的关键。过去几十年里,分布式共识一直是研究热点。然而,研究中存在一个重要的不可能结果:在异步分布式系统中,即使只有一个进程可能崩溃,系统中的进程也无法达成一致。这是因为进程无法区分运行缓慢的进程和已失败的进程。
早期的共识算法依赖不可靠的故障检测器来排除失败的进程,这种方法将共识要求的安全性和活性属性混为一谈,导致算法难以理解和证明正确性。
2. Paxos 算法的出现与意义
Lamport 提出的 Paxos 算法改变了分布式共识研究的局面。Paxos 算法将安全性和活性属性分开处理,安全性要求系统中的进程只能就单一值达成一致;由于不可能结果的存在,在系统高度异步时可能无法达成共识,但在系统足够同步时可以达成共识。
自 Paxos 算法提出后,衍生出了一系列相关算法,并且基于该算法构建了许多实用的容错系统,如 Google 的 Chubby 锁服务。
3. 共识问题的具体要求
在分布式系统中,多个进程可能提出不同的值,为了让进程就某个值达成一致,需要共识算法。一个合理的共识算法应具备以下两个属性:
- 安全性属性 :
- (S1) 如果一个进程选择了某个值,那么其他选择了值的进程也必须选择相同的值。
- (S2) 被选择的值必须是系统中某个进程提出的。
- (S3) 如果一个进程得知了某个值,那么这个值一定是被某个进程选择的。
- 活性属
超级会员免费看
订阅专栏 解锁全文
43

被折叠的 条评论
为什么被折叠?



