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发起的提案值如果被接受则提案结束,否则重复上述过程,直到确定提案值。
    部分资料直接复制网络中其他文章,仅供个人参考学习
  • 相关阅读:
    2017-2018-1 20155218 《信息安全系统设计基础》第十一周学习总结
    # 课堂测试(CH6)20155218
    Elasticsearch6.0 IKAnalysis分词使用
    ELK6.0环境搭建及配置
    使用PHP抓取网站ico图标
    centos下apache+mysql+php安装及配置
    PHP的(Thread Safe与Non Thread Safe)
    作业九
    附加题
    作业八
  • 原文地址:https://www.cnblogs.com/decq/p/12050620.html
Copyright © 2011-2022 走看看