raft算法中,5.4.2节一疑问( 四 )



■网友
\u0026lt;del\u0026gt;我看到这一节的时候也是读了好几遍才理解论文的意思。实际上作者表达的意思是图 (d)是正确的,而(e)是错误的。\u0026lt;/del\u0026gt;
\u0026lt;del\u0026gt;因为 2 号日志没有commited,但是由于一系列操作,造成了 2 号日志没有提交,但是高任期的leader 却认为 2 号日志被提交了。\u0026lt;/del\u0026gt;
应该是说,如果高term的leader,可以操作低任期的 log 的话,会造成 d 和 e 情况错误。且 d 造成了 2 号日志的丢失。所以加上限制以后,就不会出现这种问题了。
为了解决这个问题。Raft 限制,只有当前任期的 leader 可以决定一条日志是否 commited,而不能由高任期的 leader 通过计算某条日志(例子中的 2号日志)超过半数节点持有,就确定日志被commited。
【raft算法中,5.4.2节一疑问】 换句话说,就是 Raft 限制每个leader 只能确定自己任期内的日志是否commited。而不能由高任期的 leader确定。


推荐阅读