我想知道如何保证从分布式系统读取的客户端收到一致的前缀。
什么是一致的前缀?示例取自here。
一致的前缀-返回的更新是所有前缀的前缀 更新,没有空白如果标题没有意义, “一致前缀”表示所有写入的某些前缀 (假设写入具有全局顺序)被应用为 前缀是一致的(“最新”,直到最后一次写入 前缀,没有空格)。
例如,如果写入的内容是A,B,C,D,E,F,您将能够 从A开始读取这些写操作的一些连续集。请注意, 空集通常也是一个一致的前缀。
这为什么有用?如果您遵循以前的棒球类比 记录了A:1,B:2,A:3,B:6,A:5,B:7和 您没有一致的前缀保证,您可能正在阅读 仅应用了第三次写入和最后一次写入的数据库,为您提供 A:3和B:7实际上,分数的组合永远不会 存在。
关于确保这一点,我唯一的办法就是以某种方式确保对所有关注者进行全局更新(尽管这本身就是一个挑战)。也许可以使用版本向量来实现,该版本向量可以跟踪哪个关注者更新了数据点。