paxos协议研究(一)协议的背景

名字的由来

Paxos(Greek: Παξοί, pronounced Paksi in English )又名Paxi是希腊西南部一个风景如画的小岛。关于取名的原因Lamport这样解释道:

I thought, and still think, that Paxos is an important algorithm.  Inspired by my success at popularizing the consensus problem by describing it with Byzantine generals, I decided to cast the algorithm in terms of a parliament on an ancient Greek island.  Leo Guibas suggested the name Paxos for the island.

为描述 Paxos 算法,Lamport 虚拟了一个叫做 Paxos 的希腊城邦,这个岛按照议会民主制的政治模式制订法律,但是没有人愿意将自己的全部时间和精力放在这种事情上。所以无论是议员,议长或者传递纸条的服务员 都不能承诺别人需要时一定会出现,也无法承诺批准决议或者传递消息的时间。但是这里假设没有拜占庭将军问题(Byzantine failure,即虽然有可能一个消息被传递了两次,但是绝对不会出现错误的消息,这个问题本身也值得研究);只要等待足够的时间,消息就会被传到。另外,Paxos 岛上的议员是不会反对其他议员提出的决议的。

 

协议提出背景

    Paxos莱斯利·兰伯特(Leslie Lamport,就是 LaTeX 中的"La",此人现在在微软研究院) 于1990年提出的一种基于消息传递的一致性算法。由于算法描述上难以理解起初并没有引起人们的重视,使Lamport在八年后重新发表到TOCS上[2]。即便如此paxos算法还是没有得到重视,2001年Lamport用可读性比较强的叙述性语言给出算法描述[3]。后来该算法被google的分布式计算系统所使用,在著名的谷歌云计算三篇论文中成名。目前被认为是分布式领域中最重要的算法。

 

解决什么问题

    Paxos是一个基于消息传递的分布式一致性算法,用来解决一个分布式系统如何就某个值(决议)达成一致的问题。一个典型的场景是,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么它们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个"一致性算法"以保证每个节点看到的指令一致。

参考

http://www.cnblogs.com/ychellboy

posted @ 2014-02-09 16:19  大嘴呱呱  阅读(617)  评论(0编辑  收藏  举报