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

    paxos算法是莱斯利·兰伯特英语:Leslie Lamport,LaTeX中的“La”)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法

    维基地址是https://zh.wikipedia.org/wiki/Paxos%E7%AE%97%E6%B3%95

    paxos 

    有以下几个

    client 产生提议者

    proposer 申请提议者

    acceptor 接受提议者

    learn 学习者

    这其中 client产生提议,proposer将产生的提议拿去申请,acceptor接受申请,client最终学习

    主要proposer分为两阶段

    第一阶段 准备阶段

    properser拿着client产生的提议和自己产生的编号去访问acceptor,如果acceptor为空,则接受这个提议和编号,并存起来,如果中途发现有acceptor的发现它的编号不为空,且编号大于这个提议者的编号,那么就会拒绝他,但是这个properser不放弃,会更新自己的编号重新去访问所有acceptor,如果自己的提议和编号被超过半数的acceptor接受,就会进入第二阶段,如果在申请的时候发现,已经提交了的acceptor已经过半了,那么该properseor会马上改变自己,接受已经的说好的提议。

    第二阶段 提交阶段

    propersor得到过半数的acceptor接受,准备提交了,propersor变成多线程准备提交的时候,如果acceptor在这个提交之前又接受了别的propersor的申请,并且发现自己的申请数,不过半,那么就会重新进入第一阶段,否则直接结束,该propersor的提议得到发行,acceptor记录这个提议,并告诉所有的propersor,某个提议已得到批准。

    而acceptor会在接收提议和编号的过程按规则行事,如果自己为空,则接收该议题和编号,如果不为空,且发现已有的编号大于申请者的编号则会拒绝,如果小于,则会更新自己的编号和议题。,不过都会返回自己的所拥有的的编号和议题

  • 相关阅读:
    【Python3 爬虫】U27_多线程爬虫之Queue线程安全队列
    【Python3 爬虫】U26_多线程爬虫之生产者与消费者模式
    【Python3 爬虫】U25_多线程爬虫之多线程共享全局变量及锁机制
    【Python3 爬虫】U24_多线程爬虫之Thread类创建多线程
    Verilog 加法器和减法器(1)
    逻辑门电路详解
    RV32C指令集
    RV32A/RV64A指令集
    RV32M/RV64M指令集
    Risc-V指令集中文文档
  • 原文地址:https://www.cnblogs.com/feicheng/p/6593087.html
Copyright © 2011-2022 走看看