在构建协同编辑系统与真实应用中 OT 与 CRDT 的真实差异
摘要
OT(Operational Transformation,操作变换)于 1980 年代末为支持实时协同编辑器而发明,现已发展成为当今可用协同编辑器的核心技术,并被主要工业产品所采用。用于协同编辑器的 CRDT(Commutative Replicated Data Type,交换复制数据类型)约于 2006 年首次提出,当时名为 WOOT(WithOut Operational Transformation)。后续的 CRDT 变体通常被标榜为“后 OT”技术,并在正确性、时间与空间复杂度、简洁性等方面广泛宣称优于 OT 方案。然而十余年过去,OT 仍是构建绝大多数协同编辑器的选择,而 CRDT 在可用协同编辑器中却鲜有出现。为何如此?为了实事求是,我们对具有代表性的 OT 与 CRDT 方案以及基于它们的可用协同编辑器进行了全面而批判性的审视。通过这项工作,我们对 OT 和 CRDT 有了重要发现,并揭示了在各方面驳斥 CRDT 对 OT 之宣称的事实与证据。我们将发现发表于三篇相关且互补的文章中。在前两篇文章中,我们揭示了 OT 与 CRDT 在协同编辑器中遵循相同通用变换方法的相似性,以及它们在正确性与复杂度上的真实差异。在本文中,我们考察构建可用协同编辑器在塑造 OT 与 CRDT 研究及方案中的作用,以及由此导致的在真实世界协同编辑器和工业产品中选择 OT 与 CRDT 的差异。特别地,我们回顾了协同编辑器从研究载体到真实世界应用的演进,并讨论了基于 OT 的代表性协同编辑器以及工业产品与开源项目中的替代方案。此外,我们结合已发表的 CRDT 方案评估了基于 CRDT 的协同编辑器,并澄清了围绕“点对点”协同编辑的一些迷思。
引用
@article{arxiv.1905.01517,
title = {Real Differences between OT and CRDT in Building Co-Editing Systems and Real World Applications},
author = {David Sun and Chengzheng Sun and Agustina Ng and Weiwei Cai},
journal= {arXiv preprint arXiv:1905.01517},
year = {2020}
}
备注
16 pages. This article has been revised in accordance to the other two companion articles, which have been recently published at PACMHCI (https://doi.org/10.1145/3375186; and https://doi.org/10.1145/3392825, respectively). arXiv admin note: substantial text overlap with arXiv:1810.02137, arXiv:1905.01302