1. CRDT 在分布式数据库(Couchbase、Riak)的应用
说明 CRDT 在分布式数据库(如 Couchbase、Riak)中的应用?
- 用 CRDT 实现无冲突的最终一致副本
- 寄存器、计数器、集合等数据类型
- 多活写入的收敛性
Couchbase 与 Riak 等分布式数据库利用 CRDT 实现多活(multi-active)写入下的无冲突最终一致。它们内置多种 CRDT 数据类型(如计数器 G-Counter/PN-Counter、寄存器 LWW-Register、集合 G-Set/OR-Set、地图 Map),每个副本都可以独立更新,合并时通过 CRDT 的交换律/结合律/幂等律保证收敛到一致状态,无需锁定或协调。这样副本间发生网络分区时仍可各自写入,恢复后合并无冲突。Riak 的 conflict resolution 与 Couchbase 的 sync 功能都基于 CRDT 消除冲突。
CRDT 让数据库在"多活 + 分区"下仍能最终一致,代价是数据类型受限(需是可交换/结合/幂等的操作)。它把冲突解决从"运行时协调"转为"数据结构保证",是 AP 数据库实现无冲突最终一致的关键。