当领导者在所有追随者更新提交索引之前崩溃时会发生什么?
例如,节点 A、B、C 构成集群:
只有 A 和 B 活着,A 是领导者
A 将一个条目(假设它是 entry1)复制到 B 并从 B 获得成功的结果
A 提交 entry1,并在向 B 发送心跳消息之前崩溃(这将导致 B 更新其提交索引)
C现在上线
我的问题是:
- C会被选为新的领导者吗?如果是这样,那么 entry1 丢失了吗?而且,如果A以后重新加入,它的数据会不会和其他人不一致?
我知道筏规范说:
Raft 使用一种更简单的方法,它保证从选举的那一刻起,每个新领导者上都存在之前任期内所有已提交的条目,而无需将这些条目转移给领导者。
但是这里的entry1可能不被认为是committent entry?因为B没有得到老leader的确认(leader的心跳)。那么C有机会成为新的领导者吗?
- 如果B成为新的leader,那么它应该如何处理entry1?