标签:http ar os 使用 sp 数据 问题 bs ad
1,什么是Paxos算法?
Paxos算法是分布式计算领域中一个非常重要的算法,主要解决分布式系统如何就某个值(决议)达成一致的问题。一个典型的场景是分布式数据库的一致问题:如果分布式数据库的各个节点初始状态一致,又能执行相同的操作序列,那么最后能达到一个一致的状态。但是如何保证在每个节点上执行相同的命令序列呢?这就需要在每条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。Paxos算法便是这样一种一致性算法,它由大牛Lamport于1990年提出,在Lamport的论文中,他虚拟了一个叫“Paxos”的城邦并以讲故事的方式阐述算法,因此叫做Paxos算法。
Paxos是一个较为复杂的算法,在网上也有很多解析,具体可以看维基百科上的论述(http://zh.wikipedia.org/zh-cn/Paxos%E7%AE%97%E6%B3%95)。
2,Paxos算法的具体内容是什么?
根据前面讲到的一致性算法需要解决的问题,Paxos需要保证:一次选举(分布式节点对决议进行投票并批准的过程)中只批准一个决议(value),只有被提出(proposed)的决议才能被批准,只有被批准的决议才能被学习(即可以执行或保存这个决定的内容)。为便于描述选举过程,Paxos为参与者设定了3个角色:proposer(提出决议),acceptor(批准决议)和learner(学习决议),从而将一致性算法的要求阐述如下:
算法的具体过程如下,它将一次选举过程分为了两个阶段:Prepare和Accept
Prepare阶段:
Accept阶段:
3,Paxos怎样应用到了Zookeeper?
Paxos算法的应用非常的广泛,分布式协调系统zookeeper也是基于paxos来实现的。
http://www.zhouyoudao.com/paxosandzookeeper/
标签:http ar os 使用 sp 数据 问题 bs ad
原文地址:http://www.cnblogs.com/chenying99/p/4105451.html