mit6.824 lab2 RAFT node persist 要点记录

我的6.824 课程 Pass,欢迎STAR

  • commitIndex是volatile的,不需要persist。OMG,这一点会影响之后的一些操作
  • 需要考虑那些状态需要persist,一个node恢复以后,只恢复必要的自身相关的状态就好,然后重新进入循环
  • 既然需要重新进入循环,那样的话对于leader,就不需要没有commit的多余log了。 这样不行啊,前一个term的log可能已经完成replicate的过程了,但是还么有进行commit操作,这时需要保留到下一个term,然后通过新命令或者no-op command进行commit
  • AER中可以添加一些额外的字段帮助leader快速的back up,比如lastLogIndex,然后leader直接从lastLogIndex进行back up(仍然需要使用跨term的方法进行再优化)。commitIndex、TermOfArgsPrevLogIndex,后者由于log backup 的过程中的优化。
  • **对于leader刚开始时,commitIndex当有新的命令过来时再进行更新,这也是figure8所要求的:不通过count replica 的方式对上一个term的log进行commit。**对于follower只有在leader的AE过来时,才更新commit。
  • 论文对follower的log缺失(AER return false)back up 给的优化办法是一次跳到前一个term的log,为什么不直接让AER携带这些信息呢
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值