skip to main content
10.1145/2837614.2837622acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article
Public Access

Chapar: certified causally consistent distributed key-value stores

Published:11 January 2016Publication History

ABSTRACT

Today’s Internet services are often expected to stay available and render high responsiveness even in the face of site crashes and network partitions. Theoretical results state that causal consistency is one of the strongest consistency guarantees that is possible under these requirements, and many practical systems provide causally consistent key-value stores. In this paper, we present a framework called Chapar for modular verification of causal consistency for replicated key-value store implementations and their client programs. Specifically, we formulate separate correctness conditions for key-value store implementations and for their clients. The interface between the two is a novel operational semantics for causal consistency. We have verified the causal consistency of two key-value store implementations from the literature using a novel proof technique. We have also implemented a simple automatic model checker for the correctness of client programs. The two independently verified results for the implementations and clients can be composed to conclude the correctness of any of the programs when executed with any of the implementations. We have developed and checked our framework in Coq, extracted it to OCaml, and built executable stores.

References

  1. LinkedIn’s Voldemort. http://www.project-voldemort.com/.Google ScholarGoogle Scholar
  2. Memcached. http://memcached.org/.Google ScholarGoogle Scholar
  3. D. Abadi. Consistency tradeoffs in modern distributed database system design. Computer, 45(2), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Ahamad, G. Neiger, J. E. Burns, P. Kohli, and P. W. Hutto. Causal memory: Definitions, implementation, and programming. Distributed Computing, 9(1), 1995.Google ScholarGoogle Scholar
  5. H. Attiya and J. L. Welch. Sequential consistency versus linearizability. ACM Trans. Comput. Syst., 12(2), 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. P. Bailis, A. Ghodsi, J. M. Hellerstein, and I. Stoica. Bolt-on causal consistency. In Proc. SIGMOD, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. N. Belaramani, M. Dahlin, L. Gao, A. Nayate, A. Venkataramani, P. Yalagandula, and J. Zheng. PRACTI replication. In Proc. NSDI, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. M. Bickford. Component specification using event classes. In Component-Based Software Engineering, volume 5582 of Lecture Notes in Computer Science. 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. K. P. Birman. Replication and fault-tolerance in the ISIS system. In Proc. SOSP, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. K. P. Birman and T. A. Joseph. Reliable communication in the presence of failures. ACM Trans. Comput. Syst., 5(1), 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. Bishop, M. Fairbairn, M. Norrish, P. Sewell, M. Smith, and K. Wansbrough. Engineering with logic: HOL specification and symbolicevaluation testing for TCP implementations. In Proc. POPL, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. A. Bouajjani, C. Enea, and J. Hamza. Verifying eventual consistency of optimistic replication systems. In Proc. POPL, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. Burckhardt. Principles of Eventual Consistency. Foundations and Trends in Programming Languages. 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. S. Burckhardt, A. Gotsman, H. Yang, and M. Zawirski. Replicated data types: Specification, verification, optimality. In Proc. POPL, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. R. L. Constable, S. F. Allen, H. M. Bromley, W. R. Cleaveland, J. F. Cremer, R. W. Harper, D. J. Howe, T. B. Knoblock, N. P. Mendler, P. Panangaden, J. T. Sasaki, and S. F. Smith. Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1986. ISBN 0-13-451832-2. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. B. F. Cooper, R. Ramakrishnan, U. Srivastava, A. Silberstein, P. Bohannon, H.-A. Jacobsen, N. Puz, D. Weaver, and R. Yerneni. PNUTS: Yahoo!’s hosted data serving platform. Proc. VLDB Endow., 1(2), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. G. DeCandia, D. Hastorun, M. Jampani, G. Kakulapati, A. Lakshman, A. Pilchin, S. Sivasubramanian, P. Vosshall, and W. Vogels. Dynamo: Amazon’s highly available key-value store. In Proc. SOSP, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. Gasc´on and A. Tiwari. Synthesis of a simple self-stabilizing system. In Proc. 3rd Workshop on Synthesis (SYNT), 2014.Google ScholarGoogle ScholarCross RefCross Ref
  19. S. Gilbert and N. Lynch. Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant web services. SIGACT News, 33(2), June 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Z. Guo, S. McDirmid, M. Yang, L. Zhuang, P. Zhang, Y. Luo, T. Bergan, P. Bodik, M. Musuvathi, Z. Zhang, and L. Zhou. Failure recovery: When the cure is worse than the disease. In Proc. HotOS, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. E. Haque, Y. H. Eom, Y. He, S. Elnikety, R. Bianchini, and K. S. McKinley. Few-to-many: Incremental parallelism for reducing tail latency in interactive services. In Proc. ASPLOS, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. J. He, C. A. R. Hoare, and J. W. Sanders. Data refinement refined. In Proc. ESOP, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. A. John, I. Konnov, U. Schmid, H. Veith, and J. Widder. Parameterized model checking of fault-tolerant distributed algorithms by abstraction. In Proc. FMCAD, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  24. C. E. Killian, J. W. Anderson, R. Braud, R. Jhala, and A. M. Vahdat. Mace: Language support for building distributed systems. In Proc. PLDI, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. P. Kufner, U. Nestmann, and C. Rickmann. Formal verification of distributed algorithms. In Theoretical Computer Science, volume 7604 of LNCS. 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. R. Ladin, B. Liskov, L. Shrira, and S. Ghemawat. Providing high availability using lazy replication. ACM Trans. Comput. Syst., 10(4), 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. A. Lakshman and P. Malik. Cassandra: A decentralized structured storage system. SIGOPS Oper. Syst. Rev., 44(2), 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. L. Lamport. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM, 21(7), 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. L. Lamport. Introduction to TLA. Technical report, 1994.Google ScholarGoogle Scholar
  30. L. Lamport. The part-time parliament. ACM Trans. Comput. Syst., 16 (2), 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. W. Lloyd, M. J. Freedman, M. Kaminsky, and D. G. Andersen. Don’t settle for eventual: Scalable causal consistency for wide-area storage with COPS. In Proc. SOSP, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. W. Lloyd, M. J. Freedman, M. Kaminsky, and D. G. Andersen. Stronger semantics for low-latency geo-replicated storage. In Proc. NSDI, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. N. A. Lynch and M. R. Tuttle. An introduction to input/output automata. CWI Quarterly, 2, 1989.Google ScholarGoogle Scholar
  34. P. Mahajan, L. Alvisi, and M. Dahlin. Consistency, availability, and convergence. Technical Report UTCS TR-11-22, The University of Texas at Austin, 2011.Google ScholarGoogle Scholar
  35. P. J. Marandi, S. Benz, F. Pedone, and K. P. Birman. The performance of Paxos in the cloud. In Proc. SRDS, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. M. Musuvathi and D. R. Engler. Model checking large network protocol implementations. In Proc. NSDI, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. K. Petersen, M. J. Spreitzer, D. B. Terry, M. M. Theimer, and A. J. Demers. Flexible update propagation for weakly consistent replication. In Proc. SOSP, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. F. Pfenning and C. Elliot. Higher-order abstract syntax. In Proc. PLDI, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. F. Pfenning and R. J. Simmons. Substructural operational semantics as ordered logic programming. In Proc. LICS, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. G. D. Plotkin. The origins of structural operational semantics. In Proc. Journal of Logic and Algebraic Programming, pages 60–61, 2004.Google ScholarGoogle Scholar
  41. V. Rahli. Interfacing with proof assistants for domain specific programming using EventML. 10th International Workshop on User Interfaces for Theorem Provers, 2012.Google ScholarGoogle Scholar
  42. M. Raynal and A. Schiper. From causal consistency to sequential consistency in shared memory systems. volume 1026 of LNCS. 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. T. Ridge. Verifying distributed systems: the operational approach. In Proc. POPL, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. H.-G. Roh, M. Jeon, J.-S. Kim, and J. Lee. Replicated abstract data types: Building blocks for collaborative applications. J. Parallel Distrib. Comput., 71(3), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. N. Schiper, V. Rahli, R. van Renesse, M. Bickford, and R. Constable. Developing correctly replicated databases using formal tools. In Proc. DSN, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. M. Shapiro, N. Preguica, C. Baquero, and M. Zawirski. A comprehensive study of Convergent and Commutative Replicated Data Types. Technical Report RR-7506, INRIA, 2011.Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. D. B. Terry, M. M. Theimer, K. Petersen, A. J. Demers, M. J. Spreitzer, and C. H. Hauser. Managing update conflicts in Bayou, a weakly connected replicated storage system. In Proc. SOSP, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. W. Vogels. Eventually consistent. Queue, 6(6), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. J. R. Wilcox, D. Woos, P. Panchekha, Z. Tatlock, X. Wang, M. D. Ernst, and T. Anderson. Verdi: A framework for implementing and formally verifying distributed system. In Proc. PLDI, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. M. Yabandeh, N. Knezevic, D. Kostic, and V. Kuncak. CrystalBall: Predicting and preventing inconsistencies in deployed distributed systems. In Proc. NSDI, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. J. Yang, T. Chen, M. Wu, Z. Xu, X. Liu, H. Lin, M. Yang, F. Long, L. Zhang, and L. Zhou. Modist: Transparent model checking of unmodified distributed systems. In Proc. NSDI, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. D. Yuan, Y. Luo, X. Zhuang, G. R. Rodrigues, X. Zhao, Y. Zhang, P. U. Jain, and M. Stumm. Simple testing can prevent most critical failures: An analysis of production failures in distributed data-intensive systems. In Proc. OSDI, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. P. Zave. Using lightweight modeling to understand Chord. SIGCOMM Comput. Commun. Rev., 42(2). Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. P. Zeller, A. Bieniusa, and A. Poetzsch-Heffter. Formal specification and verification of CRDTs. volume 8461 of LNCS. 2014.Google ScholarGoogle Scholar

Index Terms

  1. Chapar: certified causally consistent distributed key-value stores

              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
                POPL '16: Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
                January 2016
                815 pages
                ISBN:9781450335492
                DOI:10.1145/2837614
                • cover image ACM SIGPLAN Notices
                  ACM SIGPLAN Notices  Volume 51, Issue 1
                  POPL '16
                  January 2016
                  815 pages
                  ISSN:0362-1340
                  EISSN:1558-1160
                  DOI:10.1145/2914770
                  • Editor:
                  • Andy Gill
                  Issue’s Table of Contents

                Copyright © 2016 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: 11 January 2016

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • research-article

                Acceptance Rates

                Overall Acceptance Rate824of4,130submissions,20%

                Upcoming Conference

                POPL '25

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader