「Lamport Paxos」学习Paxos分布式一致性协议必读的两篇论文译文

写在前面

Lamport Paxos 的这两篇论文真的很难懂,小编也是竭尽全力的推敲每一句话的意思,尽量的将Lamport的意思完整的呈现出来。希望大家支持一下。两篇论文大概码了3万多字,每一个公式都是手敲的…


为什么会研究Paxos?最近使用RockerMQ,发现其Broker的主从没有实现自动选主及同步,所以小编想从底层学习下RocketMQ,然后自己尝试去实现这一块。

当然这很难,也是一个挑战。

先从Paxos论文入手,后续再研究zab。

只有学会自己造轮子,才能学的更多!~

提到Paxos算法,我们不得不首先来介绍下Paxos算法的作者Leslie Lamport(莱斯利·兰伯特,http://www.lamport.org/)及其对计算机科学尤其是分布式计算领域的杰出贡献。作为2013年的新科图灵奖得主,Lamport是计算机科学领域一位拥有杰出成就的传奇人物,其先后多次荣获ACM和IEEE以及其他各类计算机重大奖项。Lamport对时间时钟、面包店算法、拜占庭将军问题以及Paxos算法的创造性研究,极大地推动了计算机科学尤其是分布式计算的发展,全世界无数工程师得益于他的理论,其中Paxos算法的提出,正是Lamport多年的研究成果。

说起Paxos理论的发表,还有一段非常有趣的历史故事。Lamport早在1990年就已经将其对Paxos算法的研究论文《The PartTime Parliament》(http://research.microsoft.com/en-us/um/people/lamport/pubs/lamport-paxos.pdf)提交给ACM TOCS Jnl.的评审委员会了,但是由于Lamport“创造性”地使用了故事的方式来进行算法的描述,导致当时委员会的工作人员没有一个能够正确地理解他对算法的描述,时任主编要求Lamport使用严谨的数据证明方式来描述该算法,否则他们将不考虑接受这篇论文。遗憾的是,Lamport并没有接收他们的建议,当然也就拒绝了对论文的修改,并撤销了对这篇论文的提交。在后来的一个会议上,Lamport还对此事耿耿于怀:“为什么这些搞理论的人一点幽默感也没有呢?”

幸运的是,还是有人能够理解Lamport那公认的令人晦涩的算法描述的。1996年,来自微软的Butler Lampson在WDAG96上提出了重新审视这篇分布式论文的建议,在次年的WDAG97上,麻省理工学院的Nancy Lynch也公布了其根据Lamport的原文重新修改后的《Revisiting the Paxos Algorithm》(http://research.microsoft.com/en-us/um/people/blampson/60-PaxosAlgorithm/Acrobat.pdf),“帮助”Lamport用数学的形式化术语定义并证明了Paxos算法。于是在1998年的ACM TOCS上,这篇延迟了9年的论文终于被接受了,也标志着Paxos算法正式被计算机科学接受并开始影响更多的工程师解决分布式一致性问题。

后来在2001年,Lamport本人也做出了让步,这次他放弃了故事的描述方式,而是使用了通俗易懂的语言重新讲述了原文,并发表了《Paxos Made Simple》(http://research.microsoft.com/en-us/um/people/lamport/pubs/paxos-simple.pdf)——当然,Lamport甚为固执地认为他自己的表述语言没有歧义,并且也足够让人明白Paxos算法,因此不需要数学来协助描述,于是整篇文章还是没有任何数学符号。好在这篇文章已经能够被更多的人理解,相信绝大多数的Paxos爱好者也都是从这篇文章开始慢慢进入了Paxos的神秘世界。

由于Lamport个人自负固执的性格,使得Paxos理论的诞生可谓一波三折。关于Paxos理论的诞生过程,后来也成为了计算机科学领域被广泛流传的学术趣事。

                                                                      ——引用《从Paxos到Zookeeper 分布式一致性原理与实践》


先来张Lamport的本尊

让我们进入正题吧!~

上面提到的《The PartTime Parliament》、《Paxos Made Simple》两篇论文,由于Lamport独特的描述方式,理解起来很是困难,所以我这里仔细通读了这两篇论文,并将其翻译成了中文译文,并对难于理解的地方添加了脚注,方便大家理解和学习。鉴于本人翻译能力有限,部分译文摘抄自网络。

特别声明,为了能够更好的理解Lamport的思想,我也在网上翻阅了不少关于这两篇论文的文章以借鉴。发现网上传播的关于这两篇论文的文章有很多错误,有的应该是译者在没有理解英文原文的基础上翻译,导致翻译出来的所表达的意思与原文已经大相径庭,有的译文甚至连论文中的公式都完全搞错了。当然,有的我觉得翻译的好的,就摘抄了下,由于作者已不可考,如果侵权,请公众号后台联系我。再次感谢他们的付出。

由于篇幅限制,这里就不贴出来论文了,给大家看几个样章,大家可以在公众号回复“paxos”,自行下载。


一、《The PartTime Parliament》


二、《Paxos Made Simple》


转载于:https://juejin.im/post/5ba9e6dae51d450e6e03c214

你可能感兴趣的:(「Lamport Paxos」学习Paxos分布式一致性协议必读的两篇论文译文)