gpt4 book ai didi

consensus - raft 协议(protocol)中复制但未提交的日志会发生什么

转载 作者:行者123 更新时间:2023-12-02 22:24:23 28 4
gpt4 key购买 nike

假设有一个 3 成员 raft 集群 a[master],b,c

客户端将日志发送到a,a将其复制到b和c,a将日志应用到状态机并响应客户端。然后,在 b 和 c 有机会将提交的状态复制到 b 和 c 之前,a 就崩溃了。

b 取代 a 作为集群领导者。当日志已经响应到客户端时,未提交的日志会发生什么?

它会被b再次复制还是直接丢弃?

然后假设有一个 4 成员的 raft 集群 a[master],b,c,d

客户端发送日志到a,a将其复制到b和c(而不是d),a将日志应用到状态机并响应客户端,然后a在将提交的状态复制到b和c之前崩溃,并且d.

d 取代 a 成为集群领导者。那么当日志已经响应到客户端时,未提交的日志会发生什么情况呢?会被丢弃吗?

最佳答案

我认为您混淆了“ promise ”和“应用”。该条目被视为已提交,因为它已保存在大多数服务器中,但尚未应用。 B 成为领导者是因为它的日志是最新的,并且当它设法应用自己术语中的一个条目时,也将应用 A 中的该条目。

在第二种情况下,D 不能成为领导者,因为它的日志不是最新的,并且 B 和 C 不会投票。

关于consensus - raft 协议(protocol)中复制但未提交的日志会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34672331/

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