1.basic paxos:

集群内所有节点如何就一个值达成共识

角色:

1.提议者:提出提议(proposal).

2.接受者:对于提议要给出自己的回答.

3.学习者:接受达成共识的值,不参与投票和提议.

注意

1.除了学习者节点.每个节点都可以生成提议(proposal)和接受提议

2.共识的达成需要两阶段协议

3.不需要所有节点同意,过半同意即可.

流程:

1.提议一般是节点生成的.生成的提议可有使用p(id,value).其中id是提议编号.

2.一个节点生成提议后,会向所有节点发出确认的消息,消息只需要携带id即可.注意:这里只是向所有节点确认,我这个提议是不是合法.那么怎么算合法呢?就是id是不是最大的!这个是所有节点.包含自己

3.当节点收到提议确认后,需要按照如下的原则进行回应

  • 如果节点已经通过某提议,那么返回最大的提案编号,否则返回空,并承诺之后,不会响应任何提议小于该编号的请求
  • 如果提议编号小于该节点收到过的最大编号,那么不去响应

例子:

有 ABC三个节点,用户提出两个提议.(1."a"),(3,"b").

1.prepare阶段

  • A,B先收到(1,)提议,返回无提议.并承诺不会接受小于等于1的提议; C先收到(5,),返回无提议,.并承诺不会接受小于等于5的提议;
  • A,B收到(5,)提议,5>1,因此作出回应,因为当前尚无已通过提议,因此还是返回空,并承诺,之后不会接受小于5的提议;C接收到(1,)的提议,1<5.因此不做回应

2.commit阶段

由于在第一阶段,两个提议分别收到了AB的正确响应,ABC的正确响应.因此都成功的进入了commit阶段

  • A,B,C收到了(1,"a")的提议.但是此时已经承诺了,不会再处理小于5的提议.因此不响应;
  • A,B,C收到了(5,"b")的提议.满足要求,所以成功设置为5.

总结:

1.basic paxos通过两步提交达成了共识

2.通过过半机制,可以允许节点故障

2.multi paxos

multi paxos是对多个值进行协商.但是想想,对一个值进行协商的basic paxos,步骤已经很多了.

1.需要两阶段提交

2.每个节点都能提交协议.如果a提交了协议,响应失败.那么a再增加提议编号,重新提交,会有什么后果.那就没完了.恶性竞争了.

因此multi paxos对basic paxos做出了优化

leader机制

只有leader可以产生提议.就不会产生提议冲突,也就不用去prepare了.那么怎么选举出leader呢?

  • chubby使用basic paxos产生leader.chubby作为第一个生成落地的,读写都从leader节点走强一致.性能不好
  • zab通过投票产生leader(投票池,term,事务id,节点id).读可以在follow节点(最终一致性),写在leader节点顺序执行(强一致性),对同一个客户端的请求是排队处理的(参看zk源码)
  • raft选举机制(随机时间,term,事务id优先,先到先得).可以参看(etcd源码系列)

当领导者处于稳定状态时,省掉准备阶段,直接进入接受阶段---兰伯特说的,不是鲁迅

总结下:

1.multiPaxos兰伯特只是提出了思想,并没有具体实现,因此各个系统各有各的做法,不过目前来看raft简单易懂.容易实现

2.减少非必须的协商,提高效率.

basic paxos,multi paxos相关推荐

  1. Paxos协议之Basic Paxos/Multi Paxos

    论文Paxos made simple从简单易懂的角度阐述了Paxos算法.之后,2013年斯坦福大学的Diego Ongaro做了一个讲座:Implementing Replicated Logs ...

  2. Multi Paxos

    Multi Paxos是什么 Basic Paxos 只能对一个值形成决议,决议的形成至少需要两次网络来回,在高并发情况下可能需要更多的网络来回,极端情况下甚至可能形成活锁 实际应用中我们常常需要连续 ...

  3. 理解分布式一致性:Paxos协议之Cheap Paxos Fast Paxos

    理解分布式一致性:Paxos协议之Cheap Paxos & Fast Paxos Cheap Paxos Message flow: Cheap Multi-Paxos Fast Paxos ...

  4. 理解分布式一致性:Paxos协议之Generalized Paxos Byzantine Paxos

    理解分布式一致性:Paxos协议之Generalized Paxos & Byzantine Paxos Generalized Paxos Byzantine Paxos Byzantine ...

  5. 分布式一致性(共识)算法(Paxos,raft,ZAB)的一些总结

    文章目录 前言 CAP理论 C consistency 一致性 A availability 可用性 P partition tolerance 分区容错性 一致性模型 弱一致性 强一致性 强一致性算 ...

  6. 分布式一致性协议 之 Paxos协议

    1.什么是Paxos Paxos协议其实说的就是Paxos算法, Paxos算法是基于消息传递且具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一. Paxos由 莱斯利· ...

  7. 1.1.0-简介-P6-Paxos

    文章目录 1.世界 引言 Basic Paxos Multi Paxos 小结 1.世界 引言 <分布式系统理论基础 - 一致性.2PC和3PC>一文介绍了一致性.达成一致性需要面临的各种 ...

  8. Zookeeper ZAB协议原理浅析

    文章目录 前言 1. 基本角色和概念 2. Leader Election 3. Discovery 4. Synchronization 5. BroadCast 后记 前言 DTCC 要在下周一到 ...

  9. Paxos算法是莱斯利·兰伯特(Leslie Lamport)1990年提出的一种基于消息传递的一致性算法。

    Paxos算法是莱斯利·兰伯特(Leslie Lamport)1990年提出的一种基于消息传递的一致性算法.Paxos算法解决的问题是一个分布式系统如何就某个值(决议)达成一致.在工程实践意义上来说, ...

最新文章

  1. Beanstalkd使用
  2. Python协同过滤推荐算法(Collaborative Filtering)2.相似度的计算,相似度计算方法
  3. 超越JAX-RS规范:Apache CXF搜索扩展
  4. 前端学习(2177):vue-router得参数传递
  5. java形参改变实参_java方法改变形参后得到实参值是否改变
  6. iOS之路10-给xib设置约束注意
  7. JAVA字符串怎么转换成整数
  8. SQL数据库只读问题
  9. java string转number_DataBinding的简单使用(java/kotlin)
  10. 抖音txt表白html,抖音vbs表白代码的技巧分享
  11. 关于studio 3T
  12. Java进阶之反射机制
  13. 数据生产力崛起:新动能+新治理
  14. 如何把照片压缩到20k一下_如何将照片压缩到20k_手机怎么把照片压缩到20k
  15. 树莓派上云-天工物接入
  16. 微信小程序语音转文字demo
  17. Spire.XLS:一款Excel处理神器(2)
  18. C++ cctype头文件里的:isalpha、islower、isupper、isalnum、isblank、isspace函数
  19. 致江苏卫视《最强大脑第二季》节目组的一封信
  20. springMVC的扩展与接管

热门文章

  1. 为你的Windows XP瘦身(转)
  2. 关于unicode编码
  3. 花了小半个月工资,我还是对培训机构下了手
  4. linux 网卡的驱动程序,Linux网卡驱动程序代码
  5. 阿里云APP软件著作权在线登记步骤?
  6. Cisco思科交换机WS-C2960X-24TD-L使用ftp上传更新丢失IOS方法
  7. 别了,2010年南非世界杯足球赛
  8. 腾讯安心生态联盟正式成立 联动伙伴开放技术助力“数字兴农”
  9. 德国警方捣毁暗网重要节点
  10. 关于U盘个性化设置的操作流程