raft协议学习记录

本文详细探讨了 Raft 协议中的核心概念,包括领导者不能立即确认存储在多数服务器上的旧任期条目的提交,领导者完整性保证,快照写入时是否需要停止服务,客户端请求的幂等问题,以及候选人的角色。文章深入分析了各个问题的背景,阐述了潜在的冲突和解决方案,帮助读者理解 Raft 协议的工作原理。
摘要由CSDN通过智能技术生成

1. a leader cannot immediately conclude that an entry from a previous term is committed once it is stored on a majority of servers.

在这里插入图片描述

  1. 在b阶段,S1下线,S5上线并被选为leader,同时写入term3/index2,此时S1和S2中的entry仍然是term2/index2。此时在多个实例中已经存在不同的entry,根据raft的定义,将来一定会有实例的entry被另一个(成为leader)实例的entry所覆盖。
  2. 到了c阶段,S5下线,S1上线并被选为leader,此时S1写入term4/index3(其实这个term4/index3是不是一个新entry并不重要,只是为了说明当前处于term4中),下面一步就到的问题的核心所在:S1将term2/index2 append到S3中,此时该entry已经到达了集群中的大多数,S1随即将其标记为commited(这里与上面截图说明不太一样,我理解其实到S4的时候问题已经暴露出来了,不需要阶段e)。这一步是有问题的,因为在S5中最新的entry是term3/index2,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值