谈下分布式算法

不谈下分布式算法,自己会忘记是(这种大白话都是自己的总结)

paxos算法,为了解决分布式副本状态不一致问题,常见的情景是,多个客户端对数据增删改查,由于有不同副本,而且网络的不确定因素,要确保多个客户端对不同副本提交修改,但是不同副本能够见到相同的命令序列,有必要对每一个提交的命令进行一致性算法来提交。

下面说下具体步骤

paxos算法3个角色

proposer:提议者,帮client整理需求,想acceptor提出建议

acceptor:决定了是否采纳建议。

leaner:统计acceptor的是否过半同意决策,如果过半确定最终采纳决策

阶段一:prepare

    proposer 向所有的acceptor发同一个带时间戳(也可作为全局id(具体9有蛮多算法,snowflake也有介绍))的prepare 的建议,

    acceptor 看到了prepare建议,首先看是不是最新的建议,如果是,好,他肯定回复:然后判断,再之前是否批准了别的建议,如果批准了,把批准的最近一次的回复的决议具体内容返回,如果没有就不发送。

   proposer 收到了对prepare的回复。超过半数,ok,表示有戏,看看 返回的半数里面是否有已经批准的回复,如果有,选出里面最近一次的决议,作为自己的决议,+prepare的时间戳,继续发送给acceptor,否则按自己心意来写决议。如果没有超过半数,好这次悲剧了,继续准备下次轮回

   acceptor接受到决议,首先看看是否有accept比这个更晚的,如果有拒绝,确实是最新的 ,好accept ,然后 告诉leaner,

   leanner  统计下是否超过半数的acceptor accept某一个时间的提议,如果超过半数,好确定下来了,然后让所有leaner去学习



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值