Paxos
三种版本
Basic paxos
Multi Paxos
Fast Paxos
paxos的算法基于一个岛屿法律制定的故事
Basic paxos
client: 请求的发起者,就是公民
Propser :接收client的请求,向集群发送提议。并在冲突发生时,收到冲突调节的作用,。 就是议员,收集公民提议,整理提议提出议案
Acceptor(Voter):投票和接收议案。只有在形成法定人数的时候,提议才会被最终接收。就是最终决定的领导
Learner:提议接收者,backup,备份,对集群一致性没什么影响,就是用来记录提议的
步骤:
准备阶段
Propser 议员对client的提议整理出一个 议案,编号X,交给Acceptor 领导
是否允许
由于Propser 有很多个,那么针对 X 议案,如果以前提过,那么拒绝,(其实就是比较编号X的大小)
接待议案
此时还要看是否为多数派都通过, 就是Acceptor数量的超过一半了,那么发送议案请求和编号,那么就 准备立案
立案
在Acceptor接收此议案的过程中没有新的编号议案过来时,则立案,Learner记下议案内容,否则忽略此次议案
Multi Paxos
加入了
Leader 唯一的propser ,所有的请求都经过此propser
- 本文作者: 忘忧症
- 本文链接: https://NepenthesZGW.github.io/2020/09/08/数据结构与算法/分布式算法/Paxos/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!