一句话:提出基于操作 CRDT 的半直积构造,统一处理并发操作冲突,并借此组合与分解 CRDT。
基于操作的无冲突复制数据类型(op-based CRDT)能自动解决并发操作冲突,但通常需要为每种数据类型单独设计,并以特设方式处理不自然交换的并发操作。本文提出 op-based CRDT 的半直积构造:在合并两个 CRDT 操作的同时,以统一方式处理它们并发操作之间的冲突。作者通过该构造设计出新型 CRDT,并将若干已有 CRDT 分解为更简单 CRDT 的半直积,从而展示其效用。该构造能够复现常见 CRDT 语义,同时可视为一种受限的操作变换(operational transformation),因此在 CRDT 与操作变换这两种相对立的复制数据类型构造技术之间建立了桥梁。
Operation-based Conflict-free Replicated Data Types (CRDTs) are eventually consistent replicated data types that automatically resolve conflicts between concurrent operations. Op-based CRDTs must be designed differently for each data type, and current designs use ad-hoc techniques to handle concurrent operations that do not naturally commute. We present a new construction, the semidirect product of op-based CRDTs, which combines the operations of two CRDTs into one while handling conflicts between their concurrent operations in a uniform way. We demonstrate the construction's utility by using it to construct novel CRDTs, as well as decomposing several existing CRDTs as semidirect products of simpler CRDTs. Although it reproduces common CRDT semantics, the semidirect product can be viewed as a restricted kind of operational transformation, thus forming a bridge between these two opposing techniques for constructing replicated data types.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@article{abs-2004-04303,
title = {Composing and decomposing op-based CRDTs with semidirect products},
author = {Matthew Weidner and Heather Miller and Christopher Meiklejohn},
journal = {Proceedings of the ACM on Programming Languages},
volume = {4},
number = {ICFP},
year = {2020},
doi = {10.1145/3408976}
}