Abstract
Operation-based Conflict-free Replicated Data Types (CRDTs) are eventually consistent replicated data types that automatically resolve conflicts between concurrent operations. Op-based CRDTs must be designed differently for each data type, and current designs use ad-hoc techniques to handle concurrent operations that do not naturally commute. We present a new construction, the semidirect product of op-based CRDTs, which combines the operations of two CRDTs into one while handling conflicts between their concurrent operations in a uniform way. We demonstrate the construction's utility by using it to construct novel CRDTs, as well as decomposing several existing CRDTs as semidirect products of simpler CRDTs. Although it reproduces common CRDT semantics, the semidirect product can be viewed as a restricted kind of operational transformation, thus forming a bridge between these two opposing techniques for constructing replicated data types.
Supplemental Material
- AntidoteDB. 2019. Datatypes in Antidote. https://antidotedb.gitbook.io/documentation/architecture/datatypes.Google Scholar
- Carlos Baquero, Paulo Sérgio Almeida, Alcino Cunha, and Carla Ferreira. 2015. Composition of State-based CRDTs. ( 05 /25 2015).Google Scholar
- Carlos Baquero, Paulo Sérgio Almeida, and Carl Lerche. 2016. The Problem with Embedded CRDT Counters and a Solution. In Proceedings of the 2nd Workshop on the Principles and Practice of Consistency for Distributed Data (London, United Kingdom) (PaPoC '16). Association for Computing Machinery, New York, NY, USA, Article 10, 3 pages. https: //doi.org/10.1145/2911151.2911159 Google Scholar
Digital Library
- Carlos Baquero, Paulo Sérgio Almeida, and Ali Shoker. 2017. Pure Operation-Based Replicated Data Types. CoRR abs/1710.04469 ( 2017 ). arXiv: 1710.04469 http://arxiv.org/abs/1710.04469Google Scholar
- Basho. 2015. Riak datatypes. http://github.com/basho.Google Scholar
- Neil Conway, William R. Marczak, Peter Alvaro, Joseph M. Hellerstein, and David Maier. 2012. Logic and Lattices for Distributed Programming. In Proceedings of the Third ACM Symposium on Cloud Computing (San Jose, California) (SoCC '12). Association for Computing Machinery, New York, NY, USA, Article 1, 14 pages. https://doi.org/10.1145/2391229. 2391230 Google Scholar
Digital Library
- Kevin De Porre, Florian Myter, Christophe De Troyer, Christophe Scholliers, Wolfgang De Meuter, and Elisa Gonzalez Boix. 2019. A Generic Replicated Data Type for Strong Eventual Consistency. In Proceedings of the 6th Workshop on Principles and Practice of Consistency for Distributed Data (Dresden, Germany) (PaPoC '19). Association for Computing Machinery, New York, NY, USA, Article 8, 3 pages. https://doi.org/10.1145/3301419.3323974 Google Scholar
Digital Library
- Xavier Défago, André Schiper, and Péter Urbán. 2004. Total Order Broadcast and Multicast Algorithms: Taxonomy and Survey. ACM Comput. Surv. 36, 4 (Dec. 2004 ), 372-421. https://doi.org/10.1145/1041680.1041682 Google Scholar
Digital Library
- David S. Dummit and Richard M. Foote. 2004. Abstract Algebra (3rd ed.). Wiley.Google Scholar
- Colin J. Fidge. 1988. Timestamps in message-passing systems that preserve the partial ordering. Proceedings of the 11th Australian Computer Science Conference 10, 1 ( 1988 ), 56-66.Google Scholar
- Abdessamad Imine, Pascal Molli, Gérald Oster, and Michaël Rusinowitch. 2003. Proving Correctness of Transformation Functions in Real-Time Groupware. In ECSCW 2003, Kari Kuutti, Eija Helena Karsten, Geraldine Fitzpatrick, Paul Dourish, and Kjeld Schmidt (Eds.). Springer Netherlands, Dordrecht, 277-293.Google Scholar
- Gowtham Kaki, Swarn Priya, KC Sivaramakrishnan, and Suresh Jagannathan. 2019. Mergeable Replicated Data Types. Proc. ACM Program. Lang. 3, OOPSLA, Article 154 (Oct. 2019 ), 29 pages. https://doi.org/10.1145/3360580 Google Scholar
Digital Library
- Martin Kleppmann and Alastair R. Beresford. 2016. A Conflict-Free Replicated JSON Datatype. CoRR abs/1608.03960 ( 2016 ). arXiv: 1608.03960 http://arxiv.org/abs/1608.03960Google Scholar
- Martin Kleppmann, Victor B. F. Gomes, Dominic P. Mulligan, and Alastair R. Beresford. 2018. OpSets: Sequential Specifications for Replicated Datatypes (Extended Version). CoRR abs/1805.04263 ( 2018 ). arXiv: 1805.04263 http://arxiv.org/abs/ 1805. 04263Google Scholar
- Lindsey Kuper and Ryan R. Newton. 2013. LVars: Lattice-Based Data Structures for Deterministic Parallelism. In Proceedings of the 2nd ACM SIGPLAN Workshop on Functional High-Performance Computing (Boston, Massachusetts, USA) ( FHPC '13). Association for Computing Machinery, New York, NY, USA, 71-84. https://doi.org/10.1145/2502323.2502326 Google Scholar
Digital Library
- Adriaan Leijnse, Paulo Sérgio Almeida, and Carlos Baquero. 2019. Higher-Order Patterns in Replicated Data Types. In Proceedings of the 6th Workshop on Principles and Practice of Consistency for Distributed Data (Dresden, Germany) (PaPoC '19). Association for Computing Machinery, New York, NY, USA, Article 5, 6 pages. https://doi.org/10.1145/3301419. 3323971 Google Scholar
Digital Library
- Friedemann Mattern. 1989. Virtual Time and Global States of Distributed Systems. In Parallel and Distributed Algorithms. North-Holland, 215-226.Google Scholar
- Christopher Meiklejohn and Peter Van Roy. 2015. Lasp: A Language for Distributed, Coordination-Free Programming. In Proceedings of the 17th International Symposium on Principles and Practice of Declarative Programming (Siena, Italy) (PPDP '15). Association for Computing Machinery, New York, NY, USA, 184-195. https://doi.org/10.1145/2790449.2790525 Google Scholar
Digital Library
- MirageOS Project. 2020. Irmin. https://irmin.org/.Google Scholar
- Nuno Preguiça, Carlos Baquero, and Marc Shapiro. 2018. Conflict-Free Replicated Data Types CRDTs. Springer International Publishing, Cham, 1-10. https://doi.org/10.1007/978-3-319-63962-8_185-1 Google Scholar
Cross Ref
- Nuno M. Preguiça. 2018. Conflict-free Replicated Data Types: An Overview. CoRR abs/ 1806.10254 ( 2018 ). arXiv: 1806.10254 http://arxiv.org/abs/ 1806.10254Google Scholar
- Nuno Preguiça, Joan M. Marquès, Marc Shapiro, and Mihai Leţia. 2009. A Commutative Replicated Data Type for Cooperative Editing. In 2009 29th IEEE International Conference on Distributed Computing Systems. 395-403. https://doi.org/10.1109/ ICDCS. 2009.20 Google Scholar
Digital Library
- Matthias Ressel, Doris Nitsche-Ruhland, and Rul Gunzenhäuser. 1996. An Integrating, Transformation-Oriented Approach to Concurrency Control and Undo in Group Editors. In Proceedings of the 1996 ACM Conference on Computer Supported Cooperative Work (Boston, Massachusetts, USA) ( CSCW '96). Association for Computing Machinery, New York, NY, USA, 288-297. https://doi.org/10.1145/240080.240305 Google Scholar
Digital Library
- André dos Reis Martins Rijo. 2018. Building Tunable CRDTs. Master's thesis. Universidade NOVA de Lisboa. http://hdl.handle.net/10362/55171.Google Scholar
- Azriel Rosenfeld. 1968. An introduction to algebraic structures. Holden-Day, San Francisco.Google Scholar
- Marc Shapiro, Nuno Preguiça, Carlos Baquero, and Marek Zawirski. 2011. A comprehensive study of Convergent and Commutative Replicated Data Types. Research Report RR-7506. Inria-Centre Paris-Rocquencourt ; INRIA. 50 pages. https://hal.inria.fr/inria-00555588Google Scholar
- Matthew Weidner, Heather Miller, and Christopher Meiklejohn. 2020. Composing and Decomposing Op-Based CRDTs with Semidirect Products: (Summary). In Proceedings of the 7th Workshop on Principles and Practice of Consistency for Distributed Data (Heraklion, Greece) (PaPoC '20). Association for Computing Machinery, New York, NY, USA, Article 14, 2 pages. https://doi.org/10.1145/3380787.3393687 Google Scholar
Digital Library
Index Terms
Composing and decomposing op-based CRDTs with semidirect products
Recommendations
Composing and decomposing op-based CRDTs with semidirect products: (summary)
PaPoC '20: Proceedings of the 7th Workshop on Principles and Practice of Consistency for Distributed DataOperation-based Conflict-free Replicated Data Types (CRDTs) are eventually consistent replicated data types that automatically resolve conflicts between concurrent operations. Opbased CRDTs must be designed differently for each data type, and current ...
Making CRDTs Byzantine fault tolerant
PaPoC '22: Proceedings of the 9th Workshop on Principles and Practice of Consistency for Distributed DataIt is often claimed that Conflict-free Replicated Data Types (CRDTs) ensure consistency of replicated data in peer-to-peer systems. However, peer-to-peer systems usually consist of untrusted nodes that may deviate from the specified protocol (i.e. ...
Improving the Reactivity of Pure Operation-Based CRDTs
PaPoC '21: Proceedings of the 8th Workshop on Principles and Practice of Consistency for Distributed DataModern distributed applications increasingly replicate data to guarantee both high availability of the system and an optimal user experience. Conflict-Free Replicated Data Types (CRDTs) are a family of data types specially designed for highly available ...






Comments