我有一个问题想请教一下:no-op 操作只在 raft 论文中的 8.客户端的交互 中的优化部分进行提到,所以我认为只有考虑读优化的时候需要用到 no-op 操作(此时 no-op 操作只用来保证 commitIndex 的新鲜度),若不做读优化则不用考虑 no-op 。但是这篇文章中又提到了 no-op 日志可以防止幽灵复现问题,但是作者论文中没有提到这点(作者考虑不周?)。那么我的疑问是,不做读优化,即也不做 no-op ,raft 还能保证正确性吗?
不知道我是否表达清楚了我的疑问。
1
qianxi0410 OP 大概知道了,先说结论:不做读优化,不提交 no-op ,raft 依然可以正确运行。
“幽灵复现”背景是做了读优化却不提交 no-op ,所以出现。 |