木筏:状态未确定
raft: state is not determined
- 假设一个集群有 7 个节点 N1, N2, ...N7,状态为
x=2
- 假设N1是领导节点
- 然后客户端将
x=5
发送到领导节点N1,然后N1将x=5
复制到节点N6和N7(未提交),但是N2~N5没有收到这个RPC
此刻,N1崩溃,于是,触发了新的选举,我的问题如下:
- 如果 N6 赢得这次选举,集群中的状态将是
x=5
(未提交将变为已提交)
- 如果N2赢得这次选举,集群中的状态将是
x=2
(N6/N7中未提交的将被丢弃)
我是不是误会了什么?谢谢!
是的,你是对的,根据谁成为领导者,飞行中未提交的条目可能会被提交,也可能会被丢弃。
- 假设一个集群有 7 个节点 N1, N2, ...N7,状态为
x=2
- 假设N1是领导节点
- 然后客户端将
x=5
发送到领导节点N1,然后N1将x=5
复制到节点N6和N7(未提交),但是N2~N5没有收到这个RPC 此刻,N1崩溃,于是,触发了新的选举,我的问题如下:
- 如果 N6 赢得这次选举,集群中的状态将是
x=5
(未提交将变为已提交) - 如果N2赢得这次选举,集群中的状态将是
x=2
(N6/N7中未提交的将被丢弃)
- 如果 N6 赢得这次选举,集群中的状态将是
我是不是误会了什么?谢谢!
是的,你是对的,根据谁成为领导者,飞行中未提交的条目可能会被提交,也可能会被丢弃。