我一直在阅读CvRDT,我知道 Riak 已经在 Riak 2 中添加了一些。
gcounter
我的问题是:当听起来vclock
与每个对象关联的底层都记录相同的信息时,为什么 Riak 会实现 a ?结果不是用 agcounter
存储vclock
,每个都包含相同的基本信息吗?
我现在唯一的猜测是,Riak 可能会垃圾收集对vclocks
a 的目的实际上很重要的修剪信息gcounter
(即增量的数量)。
我不能很好地阅读 Erlang,所以我可能错误地认为 Riakvclocks
使用这些特殊数据类型进行存储。然而,这个问题仍然适用于在标准 Riak 之上编写的本土解决方案vclocks
(因此继承每个持久的对象)。
编辑:
从那以后,我写了以下文章来帮助以更实用的方式解释 CvRDT。本文还涉及我上面强调的冗余: