A Commutative Replicated Data Type for Cooperative Editing

Nuno Preguiça, Joan Manuel Marquès, Marc Shapiro, Mihai Leţia

2009 · 222 citations · 25 references

DOIFull text

Open access

Concepts

Abstract

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 data and meta-data, and mechanisms for compacting the tree. In the best case, Treedoc incurs no overhead with respect to a linear text buffer. We validate the results with traces from existing edit histories.

References

25