• Paxos算法


    1. Paxos算法描述

    Paxox算法分为两个阶段:

    阶段一:

    a. Proposer选择一个提案编号N,然后向半数以上的Acceptor发送编号为N的Prepare请求

    b. 如果一个Acceptor收到一个编号为N的Prepare请求,且N大于该Acceptor已经响应过的所有Prepare请求的编号,那么它就会将它已经接受过的编号最大的提案(如果有的话)作为响应反馈给Proposer,同时该Acceptor承诺不再接受任何编号小于N的提案

    阶段二:

    a. 如果Proposer收到半数以上Acceptor对其发出的编号为N的Prepare请求的响应,那么它就会发送一个针对**[N, V]提案Accept请求半数以上的Acceptor。注意:V就是收到的响应编号最大的提案的value**,如果响应中不包含任何提案,那么V就由Proposer自己决定

    b. 如果Acceptor收到一个针对编号为N的提案的Accept请求,只要该Acceptor没有对编号大于NPrepare请求做出过响应,它就接受该提案

    算法演示

    image-20220912110511427

    Learner学习被选定的value

    方案一:Accepter接受了一个提案,就将该提案发送给所有Learner。

    方案二:Accepter接受了一个提案,就将该提案发送给主Learner,主Learner再通知其他Learner。

    方案三:Accepter接受了一个提案,就将该提案发送给一个Learner集合,Learner集合再通知其它Learner。

    如何保证Paxos算法活性

    假设有两个Proposer依次提出编号递增的提案,最终会陷入死循环,没有value被选定。

    image-20220912144324419

    选取一个主Proposer,只有主Proposer才能提出提案。

  • 相关阅读:
    opencv 打开中文路径图报错
    数据结构与算法-链表剖析
    【JavaWeb】Tomcat
    另辟奚径-Android Studio调用Delphi窗体
    GIS应用程序的Web编程教程
    Maven dependency 详解
    2024届数字IC设计秋招面经-鼎信
    机器学习——boosting之XGBoost(未完)
    elasticsearch安装 及 启动异常解决
    机器人地面站-[QGroundControl源码解析]-[3]-[ADSB]
  • 原文地址:https://blog.csdn.net/weixin_43207025/article/details/126817547