Nested Pure Operation-Based CRDTs

Authors Jim Bauwens, Elisa Gonzalez Boix



PDF
Thumbnail PDF

File

LIPIcs.ECOOP.2023.2.pdf
  • Filesize: 1.01 MB
  • 26 pages

Document Identifiers

Author Details

Jim Bauwens
  • Software Languages Lab, Vrije Universiteit Brussel, Belgium
Elisa Gonzalez Boix
  • Software Languages Lab, Vrije Universiteit Brussel, Belgium

Cite AsGet BibTex

Jim Bauwens and Elisa Gonzalez Boix. Nested Pure Operation-Based CRDTs. In 37th European Conference on Object-Oriented Programming (ECOOP 2023). Leibniz International Proceedings in Informatics (LIPIcs), Volume 263, pp. 2:1-2:26, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2023)
https://doi.org/10.4230/LIPIcs.ECOOP.2023.2

Abstract

Modern distributed applications increasingly replicate data to guarantee high availability and optimal user experience. Conflict-free Replicated Data Types (CRDTs) are a family of data types specially designed for highly available systems that guarantee some form of eventual consistency. Designing CRDTs is very difficult because it requires devising designs that guarantee convergence in the presence of conflicting operations. Even though design patterns and structured frameworks have emerged to aid developers with this problem, they mostly focus on statically structured data; nesting and dynamically changing the structure of a CRDT remains to be an open issue. This paper explores support for nested CRDTs in a structured and systematic way. To this end, we define an approach for building nested CRDTs based on the work of pure operation-based CRDTs, resulting in nested pure operation-based CRDTs. We add constructs to control the nesting of CRDTs into a pure operation-based CRDT framework and show how several well-known CRDT designs can be defined in our framework. We provide an implementation of nested pure operation-based CRDTs as an extension to the Flec, an existing TypeScript-based framework for pure operation-based CRDTs. We validate our approach, 1) by implementing a portfolio of nested data structures, 2) by implementing and verifying our approach in the VeriFx language, and 3) by implementing a real-world application scenario and comparing its network usage against an implementation in the closest related work, Automerge. We show that the framework is general enough to nest well-known CRDT designs like maps and lists, and its performance in terms of network traffic is comparable to the state of the art.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Consistency
  • Computer systems organization → Distributed architectures
  • Software and its engineering → Synchronization
  • Software and its engineering → Middleware
  • Software and its engineering → Reflective middleware
Keywords
  • CRDTs
  • replication
  • pure operation-based CRDTs
  • composition
  • nesting

Metrics

  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    0
    PDF Downloads

References

  1. P. S. Almeida, A. Shoker, and C. Baquero. Efficient state-based crdts by delta-mutation. CoRR, abs/1410.2803, 2014. URL: https://arxiv.org/abs/1410.2803.
  2. C. Baquero, P. S. Almeida, and A. Shoker. Making operation-based crdts operation-based. In Kostas Magoutis and Peter Pietzuch, editors, Distributed Applications and Interoperable Systems, pages 126-140, Berlin, Heidelberg, 2014. Springer Berlin Heidelberg. Google Scholar
  3. C. Baquero, P. S. Almeida, and A. Shoker. Pure operation-based replicated data types. CoRR, abs/1710.04469, 2017. URL: https://arxiv.org/abs/1710.04469.
  4. J. Bauwens and E. Gonzalez Boix. Improving the reactivity of pure operation-based crdts. In Proceedings of the 8th Workshop on Principles and Practice of Consistency for Distributed Data, PaPoC '21, New York, NY, USA, 2021. Association for Computing Machinery. URL: https://doi.org/10.1145/3447865.3457968.
  5. J. Bauwens and E. Gonzalez Boix. Flec: A versatile programming framework for eventually consistent systems. In Proceedings of the 7th Workshop on Principles and Practice of Consistency for Distributed Data, PaPoC ’20, New York, NY, USA, 2020. Association for Computing Machinery. URL: https://doi.org/10.1145/3380787.3393685.
  6. J. Bauwens and E. Gonzalez Boix. From causality to stability: Understanding and reducing meta-data in crdts. In Proceedings of the 17th International Conference on Managed Programming Languages and Runtimes, MPLR '20, pages 3-14, New York, NY, USA, 2020. Association for Computing Machinery. URL: https://doi.org/10.1145/3426182.3426183.
  7. Annette Bieniusa, Marek Zawirski, Nuno Preguiça, Marc Shapiro, Carlos Baquero, Valter Balegas, and Sérgio Duarte. An optimized conflict-free replicated set. arXiv preprint, 2012. URL: https://arxiv.org/abs/1210.3368.
  8. K. P. Birman and T. A. Joseph. Reliable communication in the presence of failures. ACM Trans. Comput. Syst., 5(1):47-76, January 1987. URL: https://doi.org/10.1145/7351.7478.
  9. S. Burckhardt, M. Fähndrich, D. Leijen, and B. P. Wood. Cloud types for eventual consistency. In Proceedings of the 26th European Conference on Object-Oriented Programming, ECOOP’12, pages 283-307, Berlin, Heidelberg, 2012. Springer-Verlag. URL: https://doi.org/10.1007/978-3-642-31057-7_14.
  10. T. Van Cutsem, S. Mostinckx, E. Gonzalez Boix., J. Dedecker, and W. De Meuter. Ambienttalk: Object-oriented event-driven programming in mobile ad hoc networks. In XXVI International Conference of the Chilean Society of Computer Science (SCCC'07), pages 3-12, Iquique, Chile, 2007. URL: https://doi.org/10.1109/SCCC.2007.12.
  11. Kevin De Porre, Carla Ferreira, and Elisa Gonzalez Boix. Verifx: Correct replicated data types for the masses, 2022. URL: https://doi.org/10.48550/ARXIV.2207.02502.
  12. J. Dedecker, T. Van Cutsem, S. Mostinckx, T. D'Hondt, and W. De Meuter. Ambient-oriented programming in ambienttalk. In Dave Thomas, editor, ECOOP 2006 - Object-Oriented Programming, pages 230-254, Berlin, Heidelberg, 2006. Springer Berlin Heidelberg. Google Scholar
  13. R. Hyun-Gul, J. Myeongjae, K. Jin-Soo, and L. Joonwon. Replicated abstract data types: Building blocks for collaborative applications. Journal of Parallel and Distributed Computing, 71(3):354-368, 2011. Google Scholar
  14. G. Kaki, S. Priya, KC Sivaramakrishnan, and S. Jagannathan. Mergeable replicated data types. Proc. ACM Program. Lang., 3(OOPSLA), October 2019. URL: https://doi.org/10.1145/3360580.
  15. M. Kleppmann and A. R. Beresford. A conflict-free replicated json datatype. IEEE Transactions on Parallel & Distributed Systems, 28(10):2733-2746, October 2017. URL: https://doi.org/10.1109/TPDS.2017.2697382.
  16. R. Klophaus. Riak core: Building distributed applications without shared state. In ACM SIGPLAN Commercial Users of Functional Programming, CUFP '10, pages 14:1-14:1, New York, NY, USA, 2010. ACM. URL: https://doi.org/10.1145/1900160.1900176.
  17. Christopher Meiklejohn and Peter Van Roy. Lasp: A Language for Distributed, Coordination-free Programming. In 17th Int. Symp. on Principles and Practice of Declarative Programming, PPDP '15, pages 184-195, 2015. Google Scholar
  18. Petru Nicolaescu, Kevin Jahns, Michael Derntl, and Ralf Klamma. Near real-time peer-to-peer shared editing on extensible data types. In Proceedings of the 2016 ACM International Conference on Supporting Group Work, GROUP '16, pages 39-49, New York, NY, USA, 2016. Association for Computing Machinery. URL: https://doi.org/10.1145/2957276.2957310.
  19. N. Preguiça. Conflict-free replicated data types: An overview, 2018. URL: https://arxiv.org/abs/1806.10254.
  20. Hyun-Gul Roh, Myeongjae Jeon, Jin-Soo Kim, and Joonwon Lee. Replicated Abstract Data Types: Building Blocks for Collaborative Applications. Journal of Parallel and Distributed Computing, 71(3):354-368, 2011. Google Scholar
  21. M. Shapiro. Replicated Data Types. In Ling Liu and M. Tamer Özsu, editors, Encyclopedia Of Database Systems, volume Replicated Data Types, pages 1-5. Springer-Verlag, July 2017. URL: https://doi.org/10.1007/978-1-4899-7993-3_80813-1.
  22. M. Shapiro, N Preguiça, C. Baquero, and M. Zawirski. A comprehensive study of Convergent and Commutative Replicated Data Types. Technical Report 7506, INRIA, 2011. Google Scholar
  23. Matthew Weidner, Heather Miller, and Christopher Meiklejohn. Composing and decomposing op-based crdts with semidirect products. Proc. ACM Program. Lang., 4(ICFP), August 2020. URL: https://doi.org/10.1145/3408976.
  24. Stephane Weiss, Pascal Urso, and Pascal Molli. Logoot-Undo: Distributed Collaborative Editing System on P2P Networks. IEEE Trans. on Parallel and Distributed Systems, 21(8):1162-1174, August 2010. Google Scholar
  25. Elena Yanakieva, Michael Youssef, Ahmad Hussein Rezae, and Annette Bieniusa. Access control conflict resolution in distributed file systems using crdts. In Proceedings of the 8th Workshop on Principles and Practice of Consistency for Distributed Data, PaPoC '21, New York, NY, USA, 2021. Association for Computing Machinery. URL: https://doi.org/10.1145/3447865.3457970.
Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail