paxos学习笔记——三种角色行为过程
2014-11-05 17:11
134 查看
关于什么是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算法中可以分为三个阶段
一、阶段一
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之前接收提案的最大编号
相关文章推荐
- 关于项目和实施过程中部分角色行为的心得体会
- 研究一下TForm.WMPaint过程(也得研究WM_ERASEBKGND)——TForm虽然继承自TWinControl,但是自行模仿了TCustomControl的全部行为,一共三种自绘的覆盖方法,比TCustomControl还多一种
- Hbase split的三种方式和split的过程
- MySQL存储过程和自定义函数、Navicat、创建存储过程和函数、调用存储过程和函数、三种方式、In和Out类型参数、
- 存储过程遍历游标三种方式
- JVM三种垃圾收集算法思想及发展过程
- 项目与数据库有关的三种角色
- ORA-01031 权限不足-存储过程中DBA 角色用户无法执行DDL
- 从技术到做管理,角色的转变首先是一个学习的过程,其次是一个潜移默化、循序渐进的实践过程
- java调用oracle存储过程的三种方式
- 存储过程参数的三种模式
- 三种方法实现从“一个(组)查询过程中返回两个表的查询结果”
- lol英雄联盟资深设计师讲解游戏角色动画制作过程
- 技术负责人的三种角色
- 行为驱动开发: Cucumber的目录结构和执行过程
- 技术负责人的三种角色
- 分工和对它的抵制:论软件开发中的三种重要角色
- 转载整理在开发过程的三种数据库的优缺点
- Hbase split的三种方式和split的过程
- SQL Server 2000登录,用户,角色,组用到的系统存储过程