gpt4 book ai didi

raft - Raft 可以选举一个没有提交日志的领导者吗?

转载 作者:行者123 更新时间:2023-12-04 06:11:29 26 4
gpt4 key购买 nike

假设一个有5个节点的集群(ABCDE),节点A一开始被选为leader,而leader-A向follower(BCDE)发出AppendEntries RPCs来复制日志条目(log-X),只有节点B接收和返回成功,此时leader-A崩溃。

如果节点 C(或 D 或 E)赢得下一次领导者选举,那么一切都很好,因为只有节点 B 有 log-X,这意味着 log-X 没有提交。

我的问题是,节点 B(拥有最高任期和最长日志)能否赢得下一次领导人选举?如果是这样,节点 B 是否会将 log-X 传播到其他节点?

最佳答案

Yes B could win the election, if it does become leader then the first thing it does it to create a log entry with the new term in its log, and start replicating its log to all the followers.由于 B 的日志包含 log-X,如果一切顺利,最终 log-X 条目将被复制并被视为已提交。

If node C wins the election, then when it becomes leader, it won't have the log-X entry, and it'll end up overwriting that entry on Node B.

参见 raft paper 的第 5.4.2 节更多细节。

这也意味着您不能将失败视为意味着尝试的条目绝对不存在,只是调用者不知道结果。第 8 节有一些处理这个问题的建议。

关于raft - Raft 可以选举一个没有提交日志的领导者吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50856934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com