版本

在中心化环境中,我们常用线性版本号来表示版本,例如递增整数或时间戳。而 CRDT 面向去中心化场景,版本表示方式也随之改变。

在 Loro 中,可以通过 版本向量Frontiers 表达文档版本。

const  = new ();
.(); // 当前状态的版本向量
.(); // 操作日志的版本向量
.(); // 当前状态的 Frontiers
.(); // 操作日志的 Frontiers

大多数场景下,只需使用版本向量即可完成数据同步与版本比较。

延伸阅读

  • 版本向量——用于同步的完整 peer 状态追踪
  • Frontiers——用于检查点的紧凑版本表示
  • 版本深潜——关于 DAG、因果关系与版本实现的技术细节