A Commutative Replicated Data Type for Cooperative Editing

  title={A Commutative Replicated Data Type for Cooperative Editing},
  author={Nuno M. Preguiça and Joan Manuel Marqu{\`e}s and Marc Shapiro and Mihai Letia},
  journal={2009 29th IEEE International Conference on Distributed Computing Systems},
A Commutative Replicated Data Type (CRDT) is one where all concurrent operations commute. The replicas of a CRDT converge automatically, without complex concurrency control. This paper describes Treedoc, a novel CRDT design for cooperative text editing. An essential property is that the identifiers of Treedoc atoms are selected from a dense space. We discuss practical alternatives for implementing the identifier space based on an extended binary tree. We also discuss storage alternatives for… 

Figures and Tables from this paper

A comprehensive study of Convergent and Commutative Replicated Data Types

This paper formalises asynchronous object replication, either state based or operation based, and provides a sufficient condition appropriate for each case, and describes several useful CRDTs, including container data types supporting bothadd and remove operations with clean semantics, and more complex types such as graphs, montonic DAGs, and sequences.

Scalable XML Collaborative Editing with Undo - (Short Paper)

Compared to existing approaches for XML collaborative editing, this approach is more scalable and handles all the XML editing aspects: elements, contents, attributes and undo.

Convergent and Commutative Replicated Data Types

This paper formalises asynchronous object replication, either state based or oper- ation based, and provides a sufficient condition appropriate for each case, and describes several useful CRDTs, including container data types supporting both add and remove operations with clean semantics, and more complex types such as graphs and monotonic DAGs.

Strong eventual consistency of the collaborative editing framework WOOT

A novel approach is used identifying a previously unknown sort-key based protocol that simulates the WOOT framework to show its consistency and formalizes the proof using the Isabelle/HOL proof assistant to machine-check its correctness.

A Scalable Conflict-Free Replicated Set Data Type

  • Andrei DeftuJ. Griebsch
  • Computer Science
    2013 IEEE 33rd International Conference on Distributed Computing Systems
  • 2013
This work improves the original CRDT specification by introducing an efficient algorithm for sending deltas of updates between replicas and by partitioning a set replica into disjunctive subsets, and adds support for limited-lifetime elements to enable simple garbage collection strategies to address the problem of unbounded database growth.

A highly-available move operation for replicated trees

A CRDT algorithm that handles arbitrary concurrent modifications on trees, while ensuring that the tree structure remains valid (in particular, no cycles are introduced), and guaranteeing that all replicas converge towards the same consistent state is presented.

Ordering operations for generic replicated data types using version trees

This work proposes a different perspective on the divergence of data, whereby it treats data divergences as versions of the data, and uses version trees for maintaining order and append-only logs for storage to ensure convergence of arbitrary data types, while maintaining information related to the evolution of data.

Abstract unordered and ordered trees CRDT

This report designs a collection of tree CRDT using existing set CRDTs, and proposes to order these trees by adding a positioning layer which is also independent to obtain aCollection of ordered treeCRDTs.

Replicated abstract data types: Building blocks for collaborative applications

A Conflict-Free Replicated JSON Datatype

This paper presents an algorithm and formal semantics for a JSON data structure that automatically resolves concurrent modifications such that no updates are lost, and such that all replicas converge towards the same state (a conflict-free replicated datatype or CRDT).



Designing a commutative replicated data type

It is shown that the replicas of any data type for which concurrent operations commute converges to a correct value, under some simple and standard assumptions.

A New Operational Transformation Framework for Real-Time Group Editors

  • Rui LiDu Li
  • Computer Science
    IEEE Transactions on Parallel and Distributed Systems
  • 2007
This paper analyzes the root of correctness problems in OT and establishes a novel operational transformation framework for developing OT algorithms and proving their correctness.

How to Design Optimistic Operations for Peer-to-Peer Replication

This paper introduces operation commutativity as a key principle in designing operations in order to manage distributed replicas consistent, and suggests effective schemes that make operations commutative using the relations of objects and operations.

An integrating, transformation-oriented approach to concurrency control and undo in group editors

An improved version of an existing distributed algorithm for concurrency control that is based on operation transformations is presented and a set of necessary and sufficient conditions to be satisfied in order to ensure consistency in a replicated architecture is presented.

Semantics-Based Reconciliation for Collaborative and Mobile Environments

Application experience indicates that IceCube simplifies application design, supports a wide variety of application semantics, and seamlessly integrates diverse applications.

Logoot: A Scalable Optimistic Replication Algorithm for Collaborative Editing on P2P Networks

The Logoot approach is evaluated and compared to others using a corpus of all the edits applied on a set of the most edited and the biggest pages of Wikipedia to provide a peer-to-peer collaborative editing system.

Commutativity-based concurrency control for abstract data types

  • W. Weihl
  • Computer Science
    [1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track
  • 1988
Two novel concurrency control algorithms for abstract data types are presented and it is proved that both algorithms ensure a local atomicity property called dynamic atomicity, which means that they can be used in combination with any other algorithms that also ensureynamic atomicity.

Preserving operation effects relation in group editors

A novel approach to solving divergence and operation effects relation violation in the same framework is proposed, which preserves the effects relation of concurrent operations so that convergence is achieved automatically.

Tombstone Transformation Functions for Ensuring Consistency in Collaborative Editing Systems

This paper addresses the correctness issue by proposing a new way to model shared state by retaining tombstones when elements are removed and an instantiation of the proposed model for a linear data structure and the related transformation functions are provided.

Concurrency control in groupware systems

An algorithm for concurrency control in real-time groupware systems is presented and its advantages are its simplicity of use and its responsiveness: users can operate directly on the data without obtaining locks.