Conflict-free Replicated Data Types (CRDTs) allow optimistic replication in a principled way. Different replicas can proceed independently, being available even under network partitions, and always converging deterministically: replicas that have received the same updates will have equivalent state, even if received in different orders. After a historical tour of the evolution from sequential data types to CRDTs, we present in detail the two main approaches to CRDTs, operation-based and state-based, including two important variations, the pure operation-based and the delta-state based. Intended as a tutorial for prospective CRDT researchers and designers, it provides solid coverage of the essential concepts, clarifying some misconceptions which frequently occur, but also presents some novel insights gained from considerable experience in designing both specific CRDTs and approaches to CRDTs.
翻译:冲突无关复制数据类型(CRDTs)以规范化的方式支持乐观复制。不同的副本可以独立运行,即使在网络分区的情况下也能保持可用性,并始终确定性收敛:接收过相同更新的副本将具有等价状态,即使更新接收顺序不同。在回顾从顺序数据类型到CRDTs的演变历程后,我们详细介绍了CRDTs的两种主要方法——基于操作的方法和基于状态的方法,包括两种重要变体:纯基于操作的方法和基于增量状态的方法。本文旨在为未来的CRDT研究人员和设计者提供教程,不仅系统覆盖核心概念并澄清常见误解,还基于我们在设计具体CRDTs及CRDT方法中积累的丰富经验,提出了若干新颖见解。