Paxos 算法 百科
Paxos算法是莱斯利·兰伯特(Leslie Lamport,就是 LaTeX 中的"La",此人现在在微软研究院)于1990年提出的一种基于消息传递的一致性算法。这个算法被认为是类似算法中最有效的。
Paxos 算法作用
在分布式系统中,一致性问题是在节点宕机、消息无序等场景可能出现的情况下,相互独立的节点之间如何达成决议的问题,作为解决一致性问题的协议,Paxos的核心是节点间如何确定并只确定一个值
算法思想
- 角色:
- client:产生议题者
- proposer: 提案者(提交议题到决策者)
- acceptor:决策者(决定提案者提交的议题是否被采纳)
- learner:学习者(决策采用后学习者)
- 流程图:
1.第一阶段:预提交
- Proposer做法
- 生成唯一的提案号 向 Acceptor提交该提案
- Acceptor:做法
- 如果Acceptor1未接收过提案记本地k==null则保存该次提案序号1,返回提案成功
- 如果Acceptor1本地k不为空且本地的提案号大于等于Proposer1本次提交的提案号,不做应答
- 若Acceptor1本地k不为空且Proposer1的值大于本地k 当Acceptor1已经承诺了其他Proposer的提案成功,返回本次预提案成功并且将承诺了其他Proposer的提案的序列号和值返回,当Acceptor1未承诺其他Proposer的提案,返回欲提案成功,并将本地k更新
2.第二阶段:提交确认阶段
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u010939285/article/details/85097064
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
-
发表于 2020-03-01 21:03:34
- 阅读 ( 656 )
- 分类:算法