Raft实现日志-同步RPC设计

2022-04-04  本文已影响0人  糖醋沼跃鱼

Raft实现日志-同步RPC设计

今天来介绍一下leader用来复制日志条目,以及发送心跳的RPC如何设计

AppendEntries RPC

Arguments

Results

接收端需要的实现:

  1. 返回false如果请求的term < currentTerm, follower发现请求的RPC的任期小于自己的任期索引,会认为leader已经过期了。
  2. 返回false如果log不包含上条日志,也就是说同步日志的RPC跟follower存的log不匹配。
  3. 如果已经存在的日志条目与新的冲突了(索引一致但任期不一致)则删除已存在的日志
  4. 需要接受所有新的不包含在log里的条目
  5. 如果leaderCommit > commitIndex,commitIndex=min(leaderCommit, index of last new entry)

之后的更新计划

因为之前已经分析了很多种情况,都记录在其他文章里了,RPC为什么要这么实现的理由,之后会添加一下链接,方便查看

上一篇下一篇

猜你喜欢

热点阅读