imnotteixeira / dissertation

0 stars 0 forks source link

[Paper] Real Differences between OT and CRDT under a General Transformation Framework for Consistency Maintenance in Co-Editors #63

Closed imnotteixeira closed 3 years ago

imnotteixeira commented 3 years ago

https://dl.acm.org/doi/10.1145/3375186

OT (Operational Transformation) was invented for supporting real-time co-editors in the late 1980s and has evolved to become a collection of core techniques widely used in today's working co-editors and adopted in major industrial products. CRDT (Commutative Replicated Data Type) for co-editors was first proposed around 2006, under the name of WOOT (WithOut Operational Transformation). Follow-up CRDT variations are commonly labeled as "post-OT" techniques capable of making concurrent operations natively commutativity in co-editors. On top of that, CRDT solutions have made broad claims of superiority over OT solutions, and routinely portrayed OT as an incorrect, complex and inefficient technique. Over one decade later, however, CRDT is rarely found in working co-editors, and OT remains the choice for building the vast majority of today's co-editors. Contradictions between the reality and CRDT's purported advantages have been the source of much confusion and debate in co-editing research and developer communities. Have the vast majority of co-editors been unfortunate in choosing the faulty and inferior OT, or those CRDT claims are false? What are the real differences between OT and CRDT for co-editors? What are the key factors and underlying reasons behind the choices between OT and CRDT in the real world? A thorough examination of these questions is relevant not only to researchers who are exploring the frontiers of co-editing technologies and systems, but also to practitioners who are seeking viable techniques to build real world applications. To seek truth from facts, we set out to conduct a comprehensive and critical review on representative OT and CRDT solutions and working co-editors based on them. From this work, we have made important discoveries about OT and CRDT, and revealed facts and evidences that refute CRDT claims over OT on all accounts. We report our discoveries in a series of articles and the current article is the first one in this series. In this paper, we present a general transformation framework for consistency maintenance in co-editors, which was distilled from dissecting and examining representative OT and CRDT solutions (and other alternative solutions) during this work, and report our discoveries under the guidance of this framework. In particular, we reveal that CRDT is like OT in following a general transformation approach, but achieves the same transformation indirectly, in contrast to OT direct transformation approach; and CRDT is not natively commutative for concurrent co-editing operations, but has to achieve the same OT commutativity indirectly as well, with consequential correctness and complexity issues. Uncovering the hidden transformation nature and demystifying the commutativity property of CRDT provides much-needed clarity about what CRDT really is and is not to co-editing, and serves as the foundation to explore the real differences between OT and CRDT in correctness, complexity, implementation, and real world applications, which are reported in follow-up articles. We hope discoveries from this work help clear up common misconceptions and confusions surrounding OT and CRDT, and accelerate progress in co-editing technology for real world applications.?

imnotteixeira commented 3 years ago

First mention OT #61 then CRDT #64, then Differential Sync #62

As it can be seen, real-time applications usually apply a replicated architecture, where each client has its own replica, a user may directly edit its own version, realizing its effect immediately. The effects are then propagated to other clients. Propagation can be operation-based (cite
ellis e gibbs OG, Oster, G., Urso, P., Molli, P. and Imine, A. Data consistency for p2p collaborative editing. , Sun, C. and Ellis, C. Operational transformation in real-time group editors: issues, algorithms, and achievements. ACM CSCW (1998), 59 –68., (PROBABLY CITED MULTIPLE TIMES) Sun, C., Jia, X., Zhang, Y., Yang, Y., and Chen, D. Achieving convergence, causality-preservation, and intention-preservation in real-time cooperative editing systems, Weiss, S., Urso, P. and Molli, P. Logoot: A scalable optimistic replication algorithm for collaborative editing on p2p networks. IEEE ICDCS (2009), 404–412. ) or state-based(cite Fraser, N. Differential Synchronization. ACM DocEng (2009), 13-20 ALREADY CITED FOR DIFF SYNC ) (cite this paper) states that most real-time co-editors, including those based on OT and CRDT, have adopted the operation propagation approach for communication efficiency, among others. It continues by comparing both solutions. Most notably:

Also mention https://www.tiny.cloud/blog/real-time-collaboration-ot-vs-crdt/ as a comparison resource