Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

5 Raft 一致性算法: 接受者实现的第5点 翻译 #93

Open
Cyberlin opened this issue May 22, 2022 · 0 comments
Open

5 Raft 一致性算法: 接受者实现的第5点 翻译 #93

Cyberlin opened this issue May 22, 2022 · 0 comments

Comments

@Cyberlin
Copy link

翻译原文

如果领导人的已知已提交的最高日志条目的索引大于接收者的已知已提交最高日志条目的索引(leaderCommit > commitIndex),则把 接收者的已知已经提交的最高的日志条目的索引commitIndex 重置为 领导人的已知已经提交的最高的日志条目的索引 leaderCommit 或者是 上一个新条目的索引 取两者的最小值

我觉得最后一句上一个新条目的索引 直接翻成最后的新条目索引就行, 就我的阅读感受来说, 上一个 把我带到了一个误区,举个例子(如图1)
截图_20220522124612
图1: 黑框代表已提交
在s4 马上要接受到leader的附加日志时, 对于上一个新日志的索引的表述,很自然的我就想到了,相对于马上要接受的这次附加日志,上一次的新日志是在索引1,如果对于s4来说,上一个新日志的索引是1,收到的附加日志中的leaderCommit是3,那么s4的commitIndex 就应当等于1,但实际上,当收到附加日志的时候, commitIndex 应该是2(如图2)
截图_20220522125121
图2: 黑框代表已提交
这是因为当收到s4附加日志的时候, 收到的新日志自然加到最后的位置, 对应上了英文原文index of last new entry,而最后的新日志的索引在这里是2,因为 2<leaderCommit(3), 所以s4的commitIndex 更新为2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant