paxos学习笔记——三种角色行为过程
来源:互联网 发布:python问卷系统源码 编辑:程序博客网 时间:2024/06/06 00:43
关于什么是paxos,网上有很多介绍,这三种角色分类是什么,我就不多说了,直接上干货。
在paxos算法中可以分为三个阶段
一、阶段一
1、 proposter向acceptors发送prepare(N_A)。
2、 acceptors收到prepare(N_A)如果N_A>N_H,回复了promise(N_A,V_A),并置N_H=N_A。否则回复reject(N_H)。
二、阶段二
1、 proposter收到acceptors集合中的任意一个majority发送的promise(N_A,V_A)后,如果所有V_A为空,则自由选择一个V_`发送Accept(N_A,V_A`),否则选择V_A中具有最大编号的value的V_i,发送promise(N_A,V_i)。
2、 如果proposter收到reject(N_H),则回到第一阶段第一步发送prepare(N_H+1).
3、acceptors如果收到promise(N_A,V_A`)或者promise(N_A,V_i),如果N_A<N_H,则回复nack(N_H),暗示已经有至少一个除了他之外的proposter已经广播过具有更高编号的提案。否则置本地的V_A=V_A,并回复accepted。
4、proposter如果收到nack(N_A),则回到第一阶段第一步发送prepare(N_H+1).
5、如果proposter收到了acceptors集合中的任意一个majority发送的accepted,表明选举完成,向其他proposters发送自己成为leader的消息。向learners发送value值。
三、阶段三
1、 learns学习value然后执行任务。
注:
N_A:为该次提案的编号。
N_H:为当前提案的最高编号。
V_i:是V_A提案中编号最高的value。
promise(N_A,V_A):向proposter保证不再接受编号大于N_H的提案。
Accepted:向proposter发送决议被通过的消息。
V_A:acceptors之前审批过的决议。
N_H:acceptors之前接收提案的最大编号
- paxos学习笔记——三种角色行为过程
- javascript学习笔记三【函数的三种角色】
- 分布式一致性Paxos算法学习笔记(三)
- Paxos算法学习笔记
- Oracle学习笔记(三)——Oracle用户的管理、权限与角色
- JADE学习笔记之三:行为
- SICP学习笔记及题解—构造过程抽象(三)
- 分布式一致性Paxos算法学习笔记(三):算法的工程化描述
- Paxos分析之一—Paxos是什么
- D3D角色动画学习笔记(一)——角色动画简介与初步规划
- oracle学习笔记四——角色管理
- OAuth2学习笔记(2)——角色
- Oracle学习笔记day03——权限与角色
- 学习Java 23种设计模式详解笔记之行为型模式(三)
- 设计模式学习笔记三(行为型模式)
- 设计模式学习笔记——行为模式
- 设计模式学习笔记——行为型(总结)
- Gamification MOOC 学习笔记9——社会与行为
- Combination Sum
- 查询字段在数据库哪个表里面
- EditText 横条显示
- LeetCode Triangle
- Hasen的linux设备驱动开发学习之旅--支持阻塞的设备驱动
- paxos学习笔记——三种角色行为过程
- Android和 java 提交参数转码问题
- android平台中,EventBus研究学习
- Thread 和 Runnable 区别 一分钟明白
- Java内存模型与多线程
- matlab的parfor循环
- Paypal支付(三)Express Checkout EC WebView快捷支付之改进版
- go练习:Web 爬虫
- Eclipse-----SVN相关操作