并发情况下,执行顺序不一致时,一边增加5,一边重置为0,导致数据不同步
文字的表述可以看
https://blog.csdn.net/zsheep/article/details/116846609?ops_request_misc=&request_id=&biz_id=102&utm_term=paxos%E4%B8%A4%E9%98%B6%E6%AE%B5&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-5-116846609.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187
2 . Acceptor失败时的basic Paxos
在下图中,多数派中的一个Acceptor发生故障,Va,Vb成功,Vc失败,多数派大小为2。在这种情况下,Basic Paxos协议仍然成功。
Proposer在提出提案之后但在达成协议之前失败。具体来说,传递到Acceptor的时候失败了,这个时候需要选出新的Proposer(提案人),那么 Basic Paxos协议仍然成功
第三步失败,Proposer需要重新提N+1
4. 当多个提议者发生冲突时的basic Paxos
最复杂的情况是多个Proposer都进行提案,导致Paxos的活锁问题。
在第一阶段第二步Promise,
Prepare阶段,提议员张三准备讨论提案1,大部分议员开始谈论1,议员返回成功
Prepare阶段,这个时候提议员李四发现还没有确认一个方案,说开始谈论提案2,议员中的大多数发现编号2大于之前1的 ,就把2作为最大的编号。议员返回成功
Accept阶段 ,张三向议员发送提案1的请求,因为议员只会接受大于2的请求,就拒绝了张三的提案1,返回失败,如果这个时候李四的提案2还没有落地,张三又一次从Prepare阶段开始提案,编号变成了3,李四的方案编号2小于张三的提案3,就作废了,也不能落地
李四把编号变成了4,又在Prepare阶段进行提案,把刚刚张三的提案3也作废了
相互增加编号无限循环
。。。。。。。。。。
。。。。。。。。。。
basic Paxos是存在一定得问题,首先就是流程复杂,实现及其困难, 其次效率低(达成一致性需要2轮 RPC调用)
Multi现在只需要一个Proposer来提案。就相当于一个leader节点。所有请求都leader来处理
1.刚开始还是按照4步来走
2.之后的提案,因为只有leader在提案,都是顺序进行,只需要2步,减少了RPC调用
Multi-Paxos在实施的时候会将Proposer,Acceptor和Learner的角色合并统称为"服务器"。因此, 最后只有"客户端"和"服务器"。
参考 https://zhuanlan.zhihu.com/p/35473901
paxos介绍参考
https://zhuanlan.zhihu.com/p/389236713
paxos推导:
https://blog.csdn.net/qq_36610426/article/details/117173433
https://zhuanlan.zhihu.com/p/35473901
演示动画
http://thesecretlivesofdata.com/raft/
参考:
https://blog.csdn.net/weixin_41922289/article/details/107880919?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1.pc_relevant_default&utm_relevant_index=2
https://raft.github.io/
可以使用动画来先演示
s5是leader,只有s5,s1存活,其他都挂了,发送请求,数据是不会提交的。至少需要一个节点复活才能提交
https://blog.csdn.net/weixin_41922289/article/details/107880919?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1.pc_relevant_default&utm_relevant_index=2
https://www.jianshu.com/p/c93906a9a860