美文网首页
Paxos算法详解

Paxos算法详解

作者: TOTower | 来源:发表于2019-09-28 21:19 被阅读0次

复杂高深的理论背后一定基于一些通用的规律,而这些通用的规律就存在在我们的生活中。

在paxos算法中,分为4种角色:

  • Proposer :提议者
  • Acceptor:决策者
  • Client:产生议题者
  • Learner:最终决策学习者

proposer和acceptor的交互是算法的核心部分
主要分为两个阶段:初步决策和最终决策
learner最终学习到的由多数acceptor决定,类似于zookeeper中的Zab协议,这也是为什么zookeeper要选用奇数台机器的原因。


我们通过美国总统选举的例子来解释Paxos算法,算法的两个阶段可以理解为拉票和投票阶段。
Client总统参加选举,为了争取更多选民的支持,派proposer秘书贿赂acceptor选民。作为选民肯定是谁给的钱多就投给谁。
第一阶段:
秘书proposer-A带着钱分别找到acceptor-1,acceptor-2和acceptor-3选民,acceptor-1和acceptor-2分别收了100美元,找到acceptor-3选民时,被告知proposer-B已经给了他150美元,但是proposer-A已经有1,2选民的支持,形成多数派,proposer-A任务完成。
这时候秘书proposer-B找到1,2选民,分别给了他们150美元,1,2选民态度转变选择支持B,这样秘书B获得了三名选民的支持,任务完成。

第二阶段:
秘书proposer-A同时找三名选民确认投票,当找到选民acceptor-1时被告知proposer-B给了150美元,此时秘书proposer-A知道自己已经没有了多数派支持,所以决定重新贿赂三名选民,每人给200美元,给了选民acceptor-1 200美元之后,选民acceptor-1欣然接受。
还没等秘书proposer-A找到选民2,3的时候,这个时候秘书proposer-B已经找到选民2,3并顺利完成最终投票,总统B获得了两票,形成多数派。
等到秘书proposer-A找到选民2的时候,被告知总统B已经形成多数派,秘书proposer-A没有什么职业操守,决定投靠B,并将200美元给了选民2,紧接着找到选民3,给了他200美元,让选民3给B投票,选民3一看和上次投票一样,最终接受。

如此以来整个算法结束,最后所有的秘书都选择投靠总统B,数据一致性问题得到解决,简单的来讲在第二阶段谁先形成多数派,谁就能占得先机。

但是Paxos算法存在活锁问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功。Fast Paxos算法在此基础上作了一些优化,通过选举产生一个leader (领导者),只有leader才能提交proposer,而ZooKeeper就是以Fast Paxos算法为基础的。

相关文章

  • Paxos算法详解

    复杂高深的理论背后一定基于一些通用的规律,而这些通用的规律就存在在我们的生活中。 在paxos算法中,分为4种角色...

  • Paxos算法详解

    问题描述 Paxos算法的目的是解决分布式一致性问题,即一个分布式系统中的各个进程如何就某个值(决议)达成最终一致...

  • Paxos算法

    Basic-Paxos算法(可以先看后面的实际例子再看前面的具体介绍部分) Paxos算法的目的 Paxos算法的...

  • Paxos&一致性学习资料汇总

    Paxos算法详解图解 Paxos 一致性协议分布式理论(一) - CAP定理通俗易懂 强一致性、弱一致性、最终一...

  • 分布式一致性算法——Paxos

    分布式一致性算法——Paxos Paxos分析 Paxos算法是莱斯利·兰伯特(Leslie Lamport)19...

  • zookeeper分布式应用程序协调服务,Paxos协议

    知识要点: Paxos协议详解 Paxos协议理解示例 Google Chubby的作者Mike Burrows说...

  • zookeeper原理

    理解zookeeper需要了解paxos算法,zookeeper是paxos算法的工业级实现。 #### Paxo...

  • ZooKeeper ZAB 协议 && Paxos 算法

    Paxos 算法应该说是 ZooKeeper 的灵魂,但是 ZooKeeper 并没有完全采用 Paxos 算法,...

  • 共识算法 - Paxos算法

    1. 什么是 Paxos 算法 Paxos 算法由图灵奖获得者 Leslie Lamport 于 1990 年提出...

  • 什么是paxos 协议???

    paxos 算法总结 paxos 共识算法的三个角色 proposers 提案者向接受者(acceptor) 提交...

网友评论

      本文标题:Paxos算法详解

      本文链接:https://www.haomeiwen.com/subject/wrozyctx.html