鉴于大多数对Paxos协议的阐述都过于羞涩难懂,便画了下面五张图来阐述一下Paxos的主要流程,在学习下面的图例文章时,必须要对Paxos的基础概念有一些认知;包括但不限于以下概念。

1 、先入为主

一个参与者必须批准它收到的第一个提案

2、多数派

一个提案者一定要获得多数参与者的通过才会结束提案

3、参与者可重复接受提案

一个参与者只要尚未相应过任何编号大于Mn的提案者请求,那么它就可以接受这个编号为Mn的提案

还有一个最关键的点,会被很多初学者忽略,那就是一个提案并不是类似一组自增的数字,而是类似map的key,value组合,即提案 = 【版本号Mn: 提案内容value n】

下面我们就根据下面的五张图来阐述一个完整的Paxos提案过程(理想状态下)

  • 图一:初次prepare— 提案者向参与者下发提案,并获取提案反馈

我们假设现在有两个提案者(Proposer)和三个参与者(Acceptor),提案者1初始提案【1,10】(这里10的值,大家可以理解为货币,比如10元人民币,参与者需要拿着value里的钱来收买参与者),提案者2因为在提案者1后提案,生成了提案为【2,20】的提案,prepare预提交阶段,假如由于网络原因,提案者1的提案先抵达到了参与者1和2,而提案者2先抵达到了参与者3并在提案1到达参与者2后到达参与者2,参照图1,此时二者都已经得到了超过一半的反馈,反馈的内容为参与者所持有的最大提案版本的value值,初始的话为随机value这里等同先入为主的value;

特别注意的点在于两个多数派的交集,这里为参与者2,它先收到了提案者1的提案,以后将拒绝提案小于1的提案(reject<1)并反馈value1,之后收到提案者2的提案的时候将拒绝小于2的提案(reject<2)并反馈value2;

  • 图二、三: 初次提交—提案者请求参与者通过提案

对于提案者1 :提案者1在得到反馈后,得到了多数派的支持,于是就下发提案给参与者1和2请求通过提案1,参与者1没有问题,爽快的通过了提案并将自己的提案值记作value1即10,但是在申请向参与者2通过提案时,由于参与者2受到了提案者2之前的叛变,reject<2的提案,于是就拒绝了提案者1的提案,提案者一由于没有得到多数派的支持,则会丢弃提案1,生成新的提案3【3,20】(见下图);

对于提案者2: 参与者3没有问题就通过了提案2,参与者2也没有问题(请注意按照图中的时间轴先后发生),也接受了2的提案,注意此刻提案者1的提案发生了变更,但并未与参与者2进行通讯,那么此时参与者2和参与者3已经作为多数派达成了共识即同意了提案者2的提案并将自己的value值都更新为20,那么此时提案者2的任务就完成了,因为它已经得到了多数派的认同,不再参与以后的提案工作

  • 图四:prepare2 — 提案者1再次请求下发提案

此时已经产生了一个多数派提案2,按理说,整个提案过程应该结束,但是大家注意到,此时参与者1的提案还是提案1的旧值10,下面的工作就是告知参与者1提案已经达成了共识,需要修改成提案2的值;

提案者1拿着提案3【3,20】对参与者1和2进行prepare请求,参与者1将接受并修改reject<3,并返回旧值10,参与者2也是如此,但返回旧值为20,(20 > 10),提案者1成功得到了多数派的支持;

  • 图五:二次提交—提案者1再次向参与者1和2下发提案请求

参与者1拿到【3,20】的请求,由于版本号1 <3 ,所以通过了该提案,将value值改为了20,参与者2本身就是20,提案者1得到了多数派的支持,至此所有参与者的value值达成了共识

Paxos太难懂?五张图读懂Paxos协议相关推荐

  1. 一张图读懂一个产业短视频第5期

    随着互联互通社区关注者不断增多,其中涌现了很多即将进入IT互联网和对IT互联网感兴趣的朋友们. 介于以往内容更多还是针对IT互联网从业者,应互联互通社区关注者要求,自2021年4月12日起推出一张图读 ...

  2. 一张图读懂“云栖大会·南京峰会”重磅发布产品

    数字化转型需要做什么?云计算当然是必不可少的黑科技.一张图读懂"云栖大会·南京峰会"重磅发布的云计算产品.

  3. 一张图读懂一个产业短视频第4期

    随着互联互通社区关注者不断增多,其中涌现了很多即将进入IT互联网和对IT互联网感兴趣的朋友们. 介于以往内容更多还是针对IT互联网从业者,应互联互通社区关注者要求,自2021年4月12日起推出一张图读 ...

  4. 一张图读懂一个产业短视频第6期

    随着互联互通社区关注者不断增多,其中涌现了很多即将进入IT互联网和对IT互联网感兴趣的朋友们. 介于以往内容更多还是针对IT互联网从业者,应互联互通社区关注者要求,自2021年4月12日起推出一张图读 ...

  5. 一张图读懂PBN飞越转弯衔接DF航段计算

    飞越转弯衔接TF航段时,转弯外边界与旁切转弯相似,只是在拐角位置直接以风螺旋绘制外边界,大部分切点可以精确计算得到. 飞越转弯衔接DF航段时,转弯外边界全部由风螺旋和它的切线构成,又会有哪些神奇的事情 ...

  6. 一张图读懂PBN飞越转弯衔接TF/CF航段计算

    在PBN旁切转弯的基础上,再来看飞越转弯接TF(或CF)航段,保护区结构上有些相似,只是转弯拐角处的保护区边界有"简化",其余部分是相近的. FlyOver接TF段的标称航迹有一个 ...

  7. 【笔记】三张图读懂机器学习:基本概念、五大流派与九种常见算法

    文章目录 [笔记]三张图读懂机器学习:基本概念.五大流派与九种常见算法 Chapter 1: A look at Machine learning 1.What is it? 2.How does m ...

  8. 一张图读懂神州数码集团2020全年业绩

    一张图读懂神州数码集团2020全年业绩 https://mp.weixin.qq.com/s/NXTzEgHhImA260OsZGBxug .

  9. 25 张图读懂「文件系统」

    作者 | 小林coding 来源 | 小林coding(CodingLin) 文件系统的基本组成 文件系统是操作系统中负责管理持久数据的子系统,说简单点,就是负责把用户的文件存到磁盘硬件中,因为即使计 ...

最新文章

  1. 仿WINDWS无限级Ajax菜单树升级1.2版(菜单名支持非法字符)
  2. 腾讯面试--原来bitmap也可以用来排序
  3. html无限添加元素,jquery--html【添加元素】
  4. 如何使用docker配置深度学习开发环境
  5. 灼灼夏日 - 遥思故乡 - 赤子无相忘
  6. 求一个任意实数c的算术平方根g_初中数学实数相关知识点:这些小技巧,解题有大用...
  7. 2018.09.19 atcoder AtCoDeer and Election Report(贪心)
  8. 9-3 数据分布概论
  9. ajax应用培训ppt,《ajax培训课件.ppt
  10. 计算机组成之总线结构
  11. php转换ofd文件格式,OFD文件转换服务
  12. 解决dos打开界面变小和打开软件字体乱码的问题
  13. ADI超声解决方案 和系统成像设计
  14. C#进阶系列——使用Advanced Installer制作IIS安装包(一:配置IIS和Web.config)
  15. js判断图片加载完成后再执行代码
  16. PHP图片打包压缩下载
  17. Robocup3D第一次笔记
  18. ViveInputUtility-手柄触摸3D物体(6)
  19. javascript 框架_Javascript框架的成本
  20. WordPress如何调用其他网站的最新文章

热门文章

  1. LabVIEW编程LabVIEW开发研华通用驱动XNavi 例程与相关资料
  2. 如何成为一名合格的运筹优化算法工程师?
  3. Linux 2.6 CFS 调度算法内幕
  4. 5月25日-5月29日每周工作总结
  5. 酷炫的图片轮播框架AndroidImageSlider
  6. 汇编--call和ret指令
  7. 在linux下安装chrome 浏览器
  8. python学生管理系统设计实验报告_学生成绩管理系统实验报告(新鲜出炉)
  9. 卸载nginx 并重新安装
  10. fairplay密码