分布式理论(3):Paxos Made Simple
2011年5月4日 阅读(1,277)
作者:LESLIE LAMPORT 2001 译者:phylips@bmy 2011-4-30
出处:http://duanple.blog.163.com/blog/static/709717672011440267333/
[
序:在PODC2001会议上,我总是听到人们在抱怨paxos算法是那么的难以理解。人们总是被那些古希腊的名称弄得晕头转向,而使得他们觉得论文难以理解,实际上算法本身是很简单的。于是在会议期间我就找了几个人聚在一起,试着直接向他们口头解释该算法。回家之后,我将这些内容整理了下来,后来又基于Fred Schneider 和 Butler Lampson的建议做了修改。就形成了现在的这个版本,虽然已经有13页长了,但是其中仍未包含任何一个比n1>n2更复杂的公式。{!本部分摘自Lamport的my writings,my writings是Lamport本人对自己以往发表的论文的一些总结,其中很多文字涉及到这些论文的创作来源。可以看出该论文的产生经历,与拜占庭将军问题有着截然相反的历程,在发表The Byzantine General Problem的时候,作者是用拜占庭将军这一场景引入到原来的算法中,而Paxos则是作者最初就是用古希腊的故事情节来描述,我想当时作者之所以采用一个故事性的背景,也是因为拜占庭将军这一写作方法带来的成功而受到的影响。只是事与愿违,人们觉得那篇The Part-Time Parliament太难理解了,而且通篇没有数学化的公式证明。根据Lamport的说法,当时的三个审稿人认为这篇文章虽然重要性不够但还有点意思,只是还应该把所有有关Paxos(Lamport在论文中虚构出的一个岛屿的名称)这一描述的地方全部删掉,但是Lamport觉得这些人太没幽默感了,也就没有按照他们要求的去做。以至于作者虽然在1990年就将它提交给了TOCS,但直到1998年才被发表。但是发表之后,很多人还是觉得原来那篇太难理解了,于是才产生了这一篇。不过现在回头再看,虽然当时Lamport的写作方式令文章被埋没了数年,但是也正因此才产生了如此有趣的一则轶闻,Paxos也成为该算法无可争议的名称,虽然另一篇文章<<Viewstamped Replication: A New Primary Copy Method to Support Highly-Available Distributed Systems>>在1988年就独立地提出了类paxos的一致性算法。}