vlambda博客
学习文章列表

Raft. 图2.一份紧凑的算法总结

 Raft其实并不容易理解,也不容易实现...



图2是整篇论文里最重要的部分。在复现的过程中,我大概看了无数遍。(但依旧总写出bug。)

既然是最重要的部分,图2应当作为知识内化在自己的脑子里,任何翻译都会破坏原来的含义,因此水平有限,图2就不翻译了。

单纯贴在下面,以供参考。





图2



一份Raft算法总结



Raft. 图2.一份紧凑的算法总结




P.S.


额外的话


目前已经做到了lab2b,通过了BasicAgree2B、RPCBytes2B、FailAgree2B

三个测试。

其中遇到的bug有:根据raft的协议,leader收到了AppendEntries的Reply之后,如果Success为True,leader需要更新相应follower的nextIndex和matchIndex。但是图2中,并没有明确指出根据哪个字段去更新nextIndex和matchIndex。去看raft的演示模型,发现follower的AppendEntriesReply可以增加一个字段matchIndex,由follower来设置这个字段的值,leader收到之后,根据这个字段来更新它的状态。


目前fail在FailNoAgree2B测试上。这三个周,每天都在被raft吊打,tnnd怎么这么难。