考虑三个节点(A,B,C)获取键/值数据。并且发生了以下步骤
此时如何进行日志匹配。节点Bgoing是提交该条目还是要丢弃它。如果它要提交那么会被读取不一致或者如果要丢弃那么在其他情况下可能会丢失数据
答案 0 :(得分:2)
错误在步骤8中。每个读取操作必须复制到其他节点,否则您可能会获得过时的数据,系统应该在将虚拟值写入日志后进行读取。在你的情况下(B
离线),"阅读"必须影响节点A
和C
,因此当节点B
重新联机并且A
死亡时,C
将能够使B
&无效#39; s记录。
这是一个棘手的问题,甚至Etcd过去也遇到过它(现在它是fixed)。