zoukankan      html  css  js  c++  java
  • paxos算法

    论文原文 https://www.jianshu.com/p/c7ae21809197

    深入浅出理解版 https://my.oschina.net/u/150175/blog/2992187

    腾讯开源实现 https://github.com/Tencent/phxpaxos/blob/master/README.zh_CN.md

    源码解读 https://www.jianshu.com/p/9f1a874a39e5

    注意:一个完整的提案由{编号n,提案值v}两部分组成。我们只关心最终的提案值,提案编号的唯一用途在于确定提案值。

    1. Proposer选择新的编号n,并发送到所有的Acceptor。
    2. Acceptor接收到请求后完成如下工作:
      2.1 承诺(promise):承诺不再accept所有编号小于n的请求,即reject编号小于n的请求。
      2.2 返回(reply):返回当前小于n的最大编号所对应的提议值v(如果存在)。
    3. 如果Proposer发起的提案编号被半数以上的Acceptor接受,此时它可以真正的发起提案值,否则回到步骤一重新确定提案编号。
    4. 发起的提案值不是Proposer随意确定的。确定规则如下:
      4.1 如果步骤2.2中,一个或者多个Acceptor返回了已经被接受(accept)的提案值,新发起的提案值必须是最大编号返回的提案值。
      4.2 如果步骤2.2中,没有任何Acceptor返回已被接受(accept)的提案值,由Proposer自行发起新的提案值。
    5. Proposer发起的提案值如果被接受则提案结束,否则重复上述过程,直到确定提案值。
    部分资料直接复制网络中其他文章,仅供个人参考学习
  • 相关阅读:
    软件测试原则
    java知识点
    jquery取值
    Javaweb命名规则
    @ResponseBody
    jquery ajax 方法及各参数详解
    @RequestMapping用法详解
    eclipse+android+opencv环境搭建的步骤
    Java中的内部类(回调)
    OpenCV直方图(直方图、直方图均衡,直方图匹配,原理、实现)
  • 原文地址:https://www.cnblogs.com/decq/p/12050620.html
Copyright © 2011-2022 走看看