← 中文资源

简体中文版本

CRDT(无冲突复制数据类型)

CRDT 是并发编辑可确定性合并的数据结构——交换律或格基——让多主复制无需协调也能收敛,不存在“冲突”概念。

阅读英文原文

概念定义

多写者复制通常需要协调:锁、领导者、仲裁。CRDT 把消解移进数据类型本身——合并函数被设计成可交换——副本之间从不谈判,只是收敛。

工作机制

状态型 CRDT 周期性交换全量状态并经半格 join 合并,构造上幂等;操作型 CRDT 广播可交换操作,正确性依赖因果广播。寄存器用最后写者胜或多值格;集合区分 add-wins 与 remove-wins;序列 CRDT 把并发文本插入建模为可排序标识符。

使用场景

协调延迟不可接受的协作与离线优先产品、合并多区写入的缓存、以及“合并语义与领域匹配”的可用性优先状态。

常见误区

CRDT 给的是确定性收敛不是“无冲突的语义正确”:删除与新增同时胜出这类意外状态是设计决策不是事故。只增集合误用于需要删除的场景、序列 CRDT 的交错异常影响编辑体验、墓碑不清理导致元数据无限增长——墓碑 GC 恰是 CRDT 系统重新引入的那一点协调。add-wins 还是 remove-wins 是用户可见的产品策略,应在评审里定而不是吃库默认值。