【发布时间】:2017-10-11 06:48:25
【问题描述】:
考虑三个节点(A、B、C)获取键/值数据。并且发生了以下步骤
- 节点 A 接收键:值 (1:15)。它是一个领导者
- 它复制到节点 B 和节点 C
- 预提交日志中节点 B 的条目
- 节点 C 输入失败
- 来自节点 B 的确认丢失。
- Nod A 输入失败并将失败发送给客户端
- 节点 A 仍然是领导者,而 B 不在仲裁中
- 客户端从节点 A 读取键 1 并返回旧值。
- 节点 A 已关闭
- 节点 B 和节点 C 已启动
- 现在节点 B 在预提交日志中有一个条目,而节点 C 没有。
此时日志匹配是如何发生的。节点 B 是要提交该条目还是要丢弃它。如果要提交,则读取不一致或要丢弃,则在其他情况下可能会丢失数据
【问题讨论】: