对分布式系统非常陌生,刚开始阅读 dynamo 论文4.4 Data Versioning,所以我的理解可能会偏离。
以doc中的例子为例,最后一步是将D3和D4调和到D5,但是如果用户只检索到D3怎么办(IIUC这是可能的,因为系统中有多个版本的数据徘徊,我不保证要检索 D3 和 D4,我什至可以读取 D1/D2),并且在不知道 D4 的存在的情况下,用户将 D3 更新为 D5,巧合的是,D5 也由 Sz(处理 D4)处理。它不是让 D5 看起来像 D4 的后代吗?:
D4([Sx,2],[Sz,1]) 与 D5([Sx,2],[Sy,1],[Sz,1])
但这是错误的,我描述的步骤是不可能的,或者矢量时钟有一些顺序要求?
我看到矢量时钟比线性历史日志携带更少的信息,即 ([Sx,2],[Sy,1]) 没有告诉我发生的动作的顺序,它可以扩展到不同的时间序列像 [Sx,Sy,Sx] 或 [Sy,Sx,Sx] 或 [Sx, Sx, Sy]?