skip to main content
10.1145/3453483.3454067acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

Abstraction for conflict-free replicated data types

Published:18 June 2021Publication History

ABSTRACT

Strong eventual consistency (SEC) has been used as a classic notion of correctness for Conflict-Free Replicated Data Types (CRDTs). However, it does not give proper abstractions of functionality, thus is not helpful for modular verification of client programs using CRDTs. We propose a new correctness formulation for CRDTs, called Abstract Converging Consistency (ACC), to specify both data consistency and functional correctness. ACC gives abstract atomic specifications (as an abstraction) to CRDT operations, and establishes consistency between the concrete execution traces and the execution using the abstract atomic operations. The abstraction allows us to verify the CRDT implementation and its client programs separately, resulting in more modular and elegant proofs than monolithic approaches for whole program verification. We give a generic proof method to verify ACC of CRDT implementations, and a rely-guarantee style program logic to verify client programs. Our Abstraction theorem shows that ACC is equivalent to contextual refinement, linking the verification of CRDT implementations and clients together to derive functional correctness of whole programs.

References

  1. Hagit Attiya, Sebastian Burckhardt, Alexey Gotsman, Adam Morrison, Hongseok Yang, and Marek Zawirski. 2016. Specification and Complexity of Collaborative Text Editing. In PODC 2016. 259–268. https://doi.org/10.1145/2933057.2933090 Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Ahmed Bouajjani, Constantin Enea, Rachid Guerraoui, and Jad Hamza. 2017. On Verifying Causal Consistency. In POPL 2017. 626–638. https://doi.org/10.1145/3009837.3009888 Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Ahmed Bouajjani, Constantin Enea, and Jad Hamza. 2014. Verifying Eventual Consistency of Optimistic Replication Systems. In POPL 2014. 285–296. https://doi.org/10.1145/2535838.2535877 Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Lucas Brutschy, Dimitar Dimitrov, Peter Müller, and Martin Vechev. 2017. Serializability for Eventual Consistency: Criterion, Analysis, and Applications. In POPL 2017. 458–472. https://doi.org/10.1145/3009837.3009895 Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Sebastian Burckhardt. 2014. Principles of Eventual Consistency. Found. Trends Program. Lang., 1, 1-2 (2014), Oct., 1–150. https://doi.org/10.1561/2500000011 Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Sebastian Burckhardt, Alexey Gotsman, Hongseok Yang, and Marek Zawirski. 2014. Replicated Data Types: Specification, Verification, Optimality. In POPL 2014. 271–284. https://doi.org/10.1145/2535838.2535848 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Seth Gilbert and Nancy Lynch. 2002. Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-tolerant Web Services. SIGACT News, 33, 2 (2002), June, 51–59. https://doi.org/10.1145/564585.564601 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Victor B. F. Gomes, Martin Kleppmann, Dominic P. Mulligan, and Alastair R. Beresford. 2017. Verifying strong eventual consistency in distributed systems. PACMPL, 1, OOPSLA (2017), 109:1–109:28. https://doi.org/10.1145/3133933 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Alexey Gotsman, Hongseok Yang, Carla Ferreira, Mahsa Najafzadeh, and Marc Shapiro. 2016. ’Cause I’m Strong Enough: Reasoning About Consistency Choices in Distributed Systems. In POPL 2016. 371–384. https://doi.org/10.1145/2837614.2837625 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Radha Jagadeesan and James Riely. 2018. Eventual Consistency for CRDTs. In ESOP 2018. 968–995. https://doi.org/10.1007/978-3-319-89884-1_34 Google ScholarGoogle ScholarCross RefCross Ref
  11. Cliff B. Jones. 1983. Tentative Steps Toward a Development Method for Interfering Programs. ACM Trans. Program. Lang. Syst., 5, 4 (1983), 596–619. https://doi.org/10.1145/69575.69577 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Gowtham Kaki, Kapil Earanky, KC Sivaramakrishnan, and Suresh Jagannathan. 2018. Safe Replication through Bounded Concurrency Verification. Proc. ACM Program. Lang., 2, OOPSLA (2018), Article 164, https://doi.org/10.1145/3276534 Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Mohsen Lesani, Christian J. Bell, and Adam Chlipala. 2016. Chapar: Certified Causally Consistent Distributed Key-value Stores. In POPL 2016. 357–370. https://doi.org/10.1145/2837614.2837622 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Nicholas V. Lewchenko, Arjun Radhakrishna, Akash Gaonkar, and Pavol Černý. 2019. Sequential Programming for Replicated Data Stores. Proc. ACM Program. Lang., 3, ICFP (2019), Article 106, https://doi.org/10.1145/3341710 Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Hongjin Liang and Xinyu Feng. 2021. Abstraction for Conflict-Free Replicated Data Types (Technical Report). https://plax-lab.github.io/publications/crdt/Google ScholarGoogle Scholar
  16. Kartik Nagar and Suresh Jagannathan. 2019. Automated Parameterized Verification of CRDTs. In CAV 2019. 459–477. https://doi.org/10.1007/978-3-030-25543-5_26 Google ScholarGoogle ScholarCross RefCross Ref
  17. Sreeja S. Nair, Gustavo Petri, and Marc Shapiro. 2020. Proving the Safety of Highly-Available Distributed Objects. In ESOP 2020. 544–571. https://doi.org/10.1007/978-3-030-44914-8_20 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Hyun-Gul Roh, Myeongjae Jeon, Jin-Soo Kim, and Joonwon Lee. 2011. Replicated abstract data types: Building blocks for collaborative applications. J. Parallel and Distrib. Comput., 71, 3 (2011), 354 – 368. https://doi.org/10.1016/j.jpdc.2010.12.006 Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Ilya Sergey, James R. Wilcox, and Zachary Tatlock. 2017. Programming and Proving with Distributed Protocols. Proc. ACM Program. Lang., 2, POPL (2017), Article 28, https://doi.org/10.1145/3158116 Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Marc Shapiro, Nuno Preguiça, Carlos Baquero, and Marek Zawirski. 2011. A comprehensive study of Convergent and Commutative Replicated Data Types. Inria – Centre Paris-Rocquencourt ; INRIA. https://hal.inria.fr/inria-00555588Google ScholarGoogle Scholar
  21. Paolo Viotti and Marko Vukolić. 2016. Consistency in Non-Transactional Distributed Storage Systems. ACM Comput. Surv., 49, 1 (2016), June, 19:1–19:34. https://doi.org/10.1145/2926965 Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Chao Wang, Constantin Enea, Suha Orhun Mutluergil, and Gustavo Petri. 2019. Replication-aware Linearizability. In PLDI 2019. 980–993. https://doi.org/10.1145/3314221.3314617 Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Matthew Weidner, Heather Miller, and Christopher Meiklejohn. 2020. Composing and Decomposing Op-Based CRDTs with Semidirect Products. Proc. ACM Program. Lang., 4, ICFP (2020), Article 94, Aug., https://doi.org/10.1145/3408976 Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. James R. Wilcox, Doug Woos, Pavel Panchekha, Zachary Tatlock, Xi Wang, Michael D. Ernst, and Thomas Anderson. 2015. Verdi: A Framework for Implementing and Formally Verifying Distributed Systems. In PLDI 2015. 357–368. https://doi.org/10.1145/2737924.2737958 Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Peter Zeller, Annette Bieniusa, and Arnd Poetzsch-Heffter. 2014. Formal Specification and Verification of CRDTs. In FORTE 2014. 33–48. https://doi.org/10.1007/978-3-662-43613-4_3 Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Abstraction for conflict-free replicated data types

            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
            • Published in

              cover image ACM Conferences
              PLDI 2021: Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation
              June 2021
              1341 pages
              ISBN:9781450383912
              DOI:10.1145/3453483

              Copyright © 2021 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 18 June 2021

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

              Acceptance Rates

              Overall Acceptance Rate406of2,067submissions,20%

              Upcoming Conference

              PLDI '24

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader