skip to main content
research-article
Open Access

Composing and decomposing op-based CRDTs with semidirect products

Published:03 August 2020Publication History
Skip Abstract Section

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.

Skip Supplemental Material Section

Supplemental Material

Presentation at ICFP '20

References

  1. AntidoteDB. 2019. Datatypes in Antidote. https://antidotedb.gitbook.io/documentation/architecture/datatypes.Google ScholarGoogle Scholar
  2. Carlos Baquero, Paulo Sérgio Almeida, Alcino Cunha, and Carla Ferreira. 2015. Composition of State-based CRDTs. ( 05 /25 2015).Google ScholarGoogle Scholar
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle Scholar
  5. Basho. 2015. Riak datatypes. http://github.com/basho.Google ScholarGoogle Scholar
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. David S. Dummit and Richard M. Foote. 2004. Abstract Algebra (3rd ed.). Wiley.Google ScholarGoogle Scholar
  10. 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 ScholarGoogle Scholar
  11. 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 ScholarGoogle Scholar
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle Scholar
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. Friedemann Mattern. 1989. Virtual Time and Global States of Distributed Systems. In Parallel and Distributed Algorithms. North-Holland, 215-226.Google ScholarGoogle Scholar
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. MirageOS Project. 2020. Irmin. https://irmin.org/.Google ScholarGoogle Scholar
  20. 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 ScholarGoogle ScholarCross RefCross Ref
  21. 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 ScholarGoogle Scholar
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. André dos Reis Martins Rijo. 2018. Building Tunable CRDTs. Master's thesis. Universidade NOVA de Lisboa. http://hdl.handle.net/10362/55171.Google ScholarGoogle Scholar
  25. Azriel Rosenfeld. 1968. An introduction to algebraic structures. Holden-Day, San Francisco.Google ScholarGoogle Scholar
  26. 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 ScholarGoogle Scholar
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Composing and decomposing op-based CRDTs with semidirect products

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image Proceedings of the ACM on Programming Languages
        Proceedings of the ACM on Programming Languages  Volume 4, Issue ICFP
        August 2020
        1070 pages
        EISSN:2475-1421
        DOI:10.1145/3415018
        Issue’s Table of Contents

        Copyright © 2020 Owner/Author

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 3 August 2020
        Published in pacmpl Volume 4, Issue ICFP

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!