Specification and Complexity of Collaborative Text Editing

Collaborative text editing systems allow users to concurrently edit a shared document, inserting and deleting elements (e.g., characters or lines). There are a number of protocols for collaborative text editing, but so far there has been no precise specification of their desired behavior, and several of these protocols have been shown not to satisfy even basic expectations. This paper provides a precise specification of a replicated list object, which models the core functionality of replicated systems for collaborative text editing. We define a strong list specification, which we prove is implemented by an existing protocol, as well as a weak list specification, which admits additional protocol behaviors. A major factor determining the efficiency and practical feasibility of a collaborative text editing protocol is the space overhead of the metadata that the protocol must maintain to ensure correctness. We show that for a large class of list protocols, implementing either the strong or the weak list specification requires a metadata overhead that is at least linear in the number of elements deleted from the list. The class of protocols to which this lower bound applies includes all list protocols that we are aware of, and we show that one of these protocols almost matches the bound.

[1]  Marc Shapiro,et al.  A comprehensive study of Convergent and Commutative Replicated Data Types , 2011 .

[2]  Chengzheng Sun,et al.  Operational transformation in real-time group editors: issues, algorithms, and achievements , 1998, CSCW '98.

[3]  Sameh Elnikety,et al.  Orbe: scalable causal consistency using dependency matrices and physical clocks , 2013, SoCC.

[4]  Ali Ghodsi,et al.  Bolt-on causal consistency , 2013, SIGMOD '13.

[5]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[6]  Willy Zwaenepoel,et al.  Closing The Performance Gap between Causal Consistency and Eventual Consistency , 2014 .

[7]  Joonwon Lee,et al.  Parallel Distrib , 2022 .

[8]  Sérgio Duarte,et al.  Write Fast, Read in the Past: Causal Consistency for Client-Side Applications , 2015, Middleware.

[9]  Rachid Guerraoui,et al.  Introduction to Reliable and Secure Distributed Programming , 2011 .

[10]  Joan Manuel Marquès,et al.  A Commutative Replicated Data Type for Cooperative Editing , 2009, 2009 29th IEEE International Conference on Distributed Computing Systems.

[11]  Clarence A. Ellis,et al.  Concurrency control in groupware systems , 1989, SIGMOD '89.

[12]  Michaël Rusinowitch,et al.  Formal design and verification of operational transformation algorithms for copies convergence , 2006, Theor. Comput. Sci..

[13]  Pascal Molli,et al.  Logoot: A Scalable Optimistic Replication Algorithm for Collaborative Editing on P2P Networks , 2009, 2009 29th IEEE International Conference on Distributed Computing Systems.

[14]  Stéphane Weiss,et al.  Scalable XML Collaborative Editing with Undo - (Short Paper) , 2010, OTM Conferences.

[15]  Faith Ellen,et al.  Limitations of Highly-Available Eventually-Consistent Data Stores , 2015, IEEE Transactions on Parallel and Distributed Systems.

[16]  Bo Leuf,et al.  The Wiki Way: Quick Collaboration on the Web , 2001 .

[17]  Annette Bieniusa,et al.  SwiftCloud: Fault-Tolerant Geo-Replication Integrated all the Way to the Client Machine , 2013, 2014 IEEE 33rd International Symposium on Reliable Distributed Systems Workshops.

[18]  Werner Vogels,et al.  Dynamo: amazon's highly available key-value store , 2007, SOSP.

[19]  Marc Shapiro,et al.  Conflict-Free Replicated Data Types , 2011, SSS.

[20]  Michael Dixon,et al.  High-latency, low-bandwidth windowing in the Jupiter collaboration system , 1995, UIST '95.

[21]  Matthias Ressel,et al.  An integrating, transformation-oriented approach to concurrency control and undo in group editors , 1996, CSCW '96.

[22]  Werner Vogels,et al.  Building reliable distributed systems at a worldwide scale demands trade-offs between consistency and availability. , 2022 .

[23]  Pascal Molli,et al.  Data consistency for P2P collaborative editing , 2006, CSCW '06.

[24]  Yanchun Zhang,et al.  Achieving convergence, causality preservation, and intention preservation in real-time cooperative editing systems , 1998, TCHI.

[25]  Michael J. Freedman,et al.  Don't settle for eventual consistency , 2014, CACM.

[26]  Marvin Theimer,et al.  Managing update conflicts in Bayou, a weakly connected replicated storage system , 1995, SOSP.

[27]  References , 1971 .

[28]  Rui Li,et al.  Preserving operation effects relation in group editors , 2004, CSCW.

[29]  Sebastian Burckhardt,et al.  Replicated data types: specification, verification, optimality , 2014, POPL.