author: 张俊林
本文节选自《大数据日知录:架构与算法》第二章“数据复制与一致性”
|2.4.4 Paxos协议
在过去十年里,Paxos基本成为了分布式领域内一致性协议的代名词。Google的粗粒度锁服务Chubby的设计开发者Burrows曾经说过:“所有一致性协议本质上要么是Paxos要么是其变体”。Paxos是几乎所有相关课程必讲内容以及很多其它一致性协议的起点,Paxos的提出者LeslieLamport也因其对分布式系统的杰出理论贡献获得了2013年图灵奖。
除了其基础性和重要性之外,Paxos也一直以难以理解闻名。Lamport最初的论文晦涩难懂,很少有人能够透彻理解其精髓,直到之后一系列试图以简明清晰讲解Paxos机制的论文发表后此现象才得以缓解。由此带来的一个副作用是:在根据Paxos原理构造实际可用系统时有一定程度的困难,很多声明基于Paxos原理构造的系统在实现时往往会引入开发者自己的理解,这造成的后果是尽管Paxos在理论上可以证明其正确性,但是实现时经过改造的一致性协议并不能保证这一点。Burrows也曾说过:“Paxos算法描述和真实实现之间存在巨大鸿沟……所以最终系统很可能是基于一个未经证明的一致性协议”。
本节讲述Paxos协议,首先介绍副本状态机模型,之后介绍Paxos的一些基本概念,然后描述Paxos协议本身内容。其实从协议内容本身来看很好理解其运作机制,好像体会不到其难理解性,这里需要强调的是:Paxos的难理解性在于是什么因素导致协议以此种方式呈现以及其正确性证明过程而非最终协议内容本身,鉴于其复杂性和篇幅原因,对其感兴趣的读者可参考文献9、10、11,本节以描述其本身机制为主。
|