协同编辑中 OT 与 CRDT 在正确性与复杂度上的真实差异
摘要
OT(Operational Transformation,操作变换)发明于 20 世纪 80 年代末,用于支持实时协同编辑器,并已发展为被广泛用于当今可用协同编辑器并采用于工业产品中的核心技术。用于协同编辑器的 CRDT(Commutative Replicated Data Type,交换复制数据类型)约于 2006 年首次提出,名为 WOOT(WithOut Operational Transformation,无操作变换)。后续的 CRDT 变体通常被标榜为“后 OT”技术,能够使并发操作在协同编辑器中天然可交换。在此基础上,CRDT 方案广泛宣称优于 OT 方案,并常将 OT 描绘为不正确且低效的技术。然而十余年后,CRDT 在可用协同编辑器中极少出现;OT 仍是构建当今绝大多数协同编辑器的选择。现实与 CRDT 所谓优势之间的矛盾,一直是协同编辑研究者和开发者中诸多困惑与争论的根源。为实事求是,我们着手对基于代表性 OT 与 CRDT 方案及其协同编辑器进行详尽而批判性的回顾。从本工作中,我们获得了关于 OT 与 CRDT 的重要发现,并揭示了在各方面驳斥 CRDT 对 OT 之宣称的事实与证据。这些发现有助于解释现实世界中 OT 与 CRDT 之间取舍的深层原因。我们以三部曲系列文章报道这些结果。在本系列的第二篇中,我们揭示了 OT 与 CRDT 在实现同一通用变换的基本路径上的差异,以及此类差异如何导致不同的挑战及随之而来的正确性与复杂度问题。此外,我们揭示了代表性 CRDT 方案中隐藏的复杂度与算法缺陷,并讨论了有关 OT 与 CRDT 正确性与复杂度的常见误解与事实。
引用
@article{arxiv.1905.01302,
title = {Real Differences between OT and CRDT in Correctness and Complexity for Consistency Maintenance in Co-Editors},
author = {David Sun and Chengzheng Sun and Agustina Ng and Weiwei Cai},
journal= {arXiv preprint arXiv:1905.01302},
year = {2020}
}
备注
30 pages. arXiv admin note: substantial text overlap with arXiv:1810.02137