平行宇宙2让我们回到平行宇宙的分叉点,先回顾一下前情,这时听众2已经向话务员1和话务员2发出过报价,并从话务员2那里得知她已经以1块钱的报价接受了《东风破》这首歌的提案 。
那么在这条时间线中,我们让听众2先打给1、2号话务员 。
听众2这时心里会想,我们杰迷们都是有素质的人,尽管我之前想听的是《简单爱》,但听一下《东风破》貌似也挺不错,那么我干脆支持听众1的选择吧 。
于是,报价已被认可的他再次拿起电话打给两位话务员,发起点歌请求 。
文章插图
话务员1和话务员2再次比较听众2这次携带的之前报价,均大于等于本地记录的最高报价,所以接受他的点歌请求 。在更新本地记录的信息后,回复信息给听众2 。
文章插图
于是,听众2的点歌请求也获得了半数以上话务员的承认,那么听众2确认自己点的歌被选定 。
看到这里,是不是似乎感觉世界线产生了收束,难道之后的每一种结果都是《东风破》将被选定?
其实,Paxos算法中最精彩的部分在于它更像是一场博弈,棋局中的每一步,都可能影响最终的结果 。
平行宇宙β让我们把分叉点上的时间,再往前多回溯一点,回到下面这个时间点的状态,这时话务员2刚接受了听众1的点歌请求,而听众2还没有开始打热线电话 。
文章插图
【Paxos分布式系统共识算法?我愿称其为点歌算法…】这次,我们站在上帝视角,让听众2改变一下选择,既然话务员2已经被别人收买了,那么干脆避其锋芒,直接向话务员1、3报价 。
文章插图
可想而知,听众2的报价会被两位话务员都认可 。
文章插图
在收到了半数以上话务员的报价认可后,听众2先向话务员1发起点歌请求 。
文章插图
话务员1比对一下报价,嗯,没有问题,更新本地的记录,接受他的点歌请求 。
文章插图
讲道理,现在的形势对听众2真的是一片大好,只要再打个电话给话务员3,就能够成功点歌了 。
但是这个节骨眼上,听众2的室友喊他了,说:听歌多没意思,咱们一起来打一局刀塔吧 。
听众2一想,没毛病,那我先不点歌了 。
而这时,听众1回过神来了,他在之前报价阶段可是获得过半数以上的认可的,于是他带着之前被认可的报价打电话进来点歌 。
文章插图
可是在两位话务员那里,记录的最高报价已经升到了两块了,于是听众1的点歌请求会被拒绝 。
文章插图
到这,我们梳理一下,听众1的点歌请求得到了1个接受、2个拒绝,也就是说他的提议没有被过半数以上的话务员接受 。
无奈,听众1只能回到第一阶段,从报价开始再重头走一遍流程 。并且这次,他把报价提升到了3块 。
文章插图
三位话务员收到新的报价请求后,都会表示认可,并且返回自己本地记录的信息 。
经验总结扩展阅读
- 儿童风湿免疫系统疾病症状
- SpringCloud整合分布式事务Seata 1.4.1 支持微服务全局异常拦截
- 穿越火线CF怎么改名呢(cf昵称被系统强制改名了)
- MassTransit | .NET 分布式应用框架
- 齐博X1-栏目的调用1
- 云原生分布式 PostgreSQL+Citus 集群在 Sentry 后端的实践
- 微服务系列之分布式日志 ELK
- 华为手环6是什么系统_华为手环6是鸿蒙系统吗
- Blazor组件自做十一 : File System Access 文件系统访问 组件
- ios14.6耗电怎么样_ios14.6系统耗电情况