diff --git a/ch5.md b/ch5.md index e1a11e8..6a6c30f 100644 --- a/ch5.md +++ b/ch5.md @@ -412,7 +412,7 @@ PostgreSQL 和 Oracle 等使用这种复制方法【16】。主要缺点是日 > > 冲突解决规则可能很快变得复杂,并且自定义代码可能容易出错。亚马逊是一个经常被引用的例子,由于冲突解决处理程序令人意外的效果:一段时间以来,购物车上的冲突解决逻辑将保留添加到购物车的物品,但不包括从购物车中移除的物品。因此,顾客有时会看到物品重新出现在他们的购物车中,即使他们之前已经被移走【37】。 > -> 已经有一些有趣的研究来自动解决由于数据修改引起的冲突。有几行研究值得一提: +> 已经有一些有趣的研究来自动解决由于数据修改引起的冲突。有几项研究值得一提: > > * **无冲突复制数据类型(Conflict-free replicated datatypes,CRDT)**【32,38】是可以由多个用户同时编辑的集合,映射,有序列表,计数器等的一系列数据结构,它们以合理的方式自动解决冲突。一些 CRDT 已经在 Riak 2.0 中实现【39,40】。 > * **可合并的持久数据结构(Mergeable persistent data structures)**【41】显式跟踪历史记录,类似于 Git 版本控制系统,并使用三向合并功能(而 CRDT 使用双向合并)。