Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Checking causal consistency of distributed databases

Published: 01 October 2022 Publication History

Abstract

The CAP Theorem shows that (strong) consistency, availability, and partition tolerance are impossible to be ensured together. Causal consistency is one of the weak consistency models that can be implemented to ensure availability and partition tolerance in distributed systems. In this work, we propose a tool to check automatically the conformance of distributed/concurrent systems executions to causal consistency models. Our approach consists in reducing the problem of checking if an execution is causally consistent to solving datalog queries. The reduction is based on complete characterizations of the executions violating causal consistency in terms of the existence of cycles in suitably defined relations between the operations occurring in these executions. We have implemented the reduction in a testing tool for distributed databases, and carried out several experiments on real case studies, showing the efficiency of the suggested approach.

References

[2]
[4]
Abdulla PA, Atig MF, Jonsson B, Lång M, Ngo TP, Sagonas K (2019) Optimal stateless model checking for reads-from equivalence under sequential consistency. Proc. ACM Program. Lang. 3(OOPSLA) https://doi.org/10.1145/3360576
[5]
Abiteboul S, Hull R, and Vianu V Foundations of databases: the logical level 1995 1 Boston Addison-Wesley Longman Publishing Co., Inc
[6]
Ahamad M, Neiger G, Burns JE, Kohli P, and Hutto PW Causal memory: Definitions, implementation, and programming Distrib Comput 1995 9 1 37-49
[7]
Bailis P, Ghodsi A, Hellerstein JM, Stoica I (2013) Bolt-on causal consistency. In: Proceedings of the 2013 ACM SIGMOD international conference on management of data. SIGMOD ’13, ACM, New York, NY, USA, pp 761–772, http://doi.acm.org/10.1145/2463676.2465279
[8]
Bouajjani A, Enea C, Guerraoui R, Hamza J (2017) On verifying causal consistency. In: Castagna G, Gordon AD (eds) Proceedings of the 44th ACM SIGPLAN symposium on principles of programming languages, POPL 2017, Paris, France, January 18–20. ACM, pp 626–638, http://dl.acm.org/citation.cfm?id=3009888
[9]
Bouajjani A, Enea C, Hamza J (2014) Verifying eventual consistency of optimistic replication systems. In: Proceedings of the 41st ACM SIGPLAN-SIGACT symposium on principles of programming languages. POPL ’14, ACM, New York, NY, USA, pp 285–296, http://doi.acm.org/10.1145/2535838.2535877
[10]
Burckhardt S, Dern C, Musuvathi M, Tan R (2010) Line-up: a complete and automatic linearizability checker. In: Zorn BG, Aiken A (eds) Proceedings of the 2010 ACM SIGPLAN conference on programming language design and implementation, PLDI 2010, Toronto, Ontario, Canada, June 5–10. ACM, pp 330–340, https://doi.org/10.1145/1806596.1806634
[11]
Du J, Elnikety S, Roy A, Zwaenepoel W (2013) Orbe: scalable causal consistency using dependency matrices and physical clocks. In: Proceedings of the 4th annual symposium on cloud computing. SOCC ’13, ACM, New York, NY, USA, pp 11:1–11:14, http://doi.acm.org/10.1145/2523616.2523628
[12]
Emmi M, Enea C (2018) Monitoring weak consistency. In: Chockler H, Weissenbacher G (eds) Computer aided verification - 30th international conference, CAV 2018, held as part of the federated logic conference, FloC 2018, Oxford, UK, July 14–17, 2018, Proceedings, Part I. Lecture notes in computer science, vol 10981. Springer, pp 487–506, https://doi.org/10.1007/978-3-319-96145-3_26
[13]
Emmi M and Enea C Sound, complete, and tractable linearizability monitoring for concurrent collections PACMPL 2018 2 251-2527
[14]
Emmi M, Enea C, Hamza J (2015) Monitoring refinement via symbolic reasoning. In: Grove D, Blackburn S (eds) Proceedings of the 36th ACM SIGPLAN conference on programming language design and implementation, Portland, OR, USA, June 15-17, 2015. ACM, pp 260–269, https://doi.org/10.1145/2737924.2737983
[15]
Gilbert S and Lynch N Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant web services SIGACT News 2002 33 2 51-59
[16]
Herlihy MP and Wing JM Linearizability: a correctness condition for concurrent objects ACM Trans Program Lang Syst 1990 12 3 463-492
[17]
Lamport L How to make a multiprocessor computer that correctly executes multiprocess programs IEEE Trans Comput 1979 28 9 690-691
[18]
Lamport L Time, clocks, and the ordering of events in a distributed system Commun ACM 1978 21 7 558-565
[19]
Lloyd W, Freedman MJ, Kaminsky M, Andersen DG (2011) Don’t settle for eventual: scalable causal consistency for wide-area storage with cops. In: proceedings of the twenty-third ACM symposium on operating systems principles. SOSP ’11, ACM, New York, NY, USA, pp 401–416, http://doi.acm.org/10.1145/2043556.2043593
[20]
Mahajan P, Alvisi L, Dahlin M (2011) Consistency, availability, convergence. Technical report
[21]
Perrin M, Mostefaoui A, Jard C (2016) Causal consistency: beyond memory. In: Proceedings of the 21st ACM SIGPLAN symposium on principles and practice of parallel programming. PPoPP ’16, ACM, New York, NY, USA, pp 26:1–26:12
[22]
Petersen K, Spreitzer MJ, Terry DB, Theimer MM, and Demers AJ Flexible update propagation for weakly consistent replication SIGOPS Oper Syst Rev 1997 31 5 288-301
[23]
Preguiça N, Zawirski M, Bieniusa A, Duarte S, Balegas V, Baquero C, Shapiro M (2014) Swiftcloud: fault-tolerant geo-replication integrated all the way to the client machine. In: Proceedings of the 2014 IEEE 33rd international symposium on reliable distributed systems workshops. SRDSW ’14, IEEE Computer Society, Washington, DC, USA, pp 30–33, https://doi.org/10.1109/SRDSW.2014.33
[24]
Qadeer S Verifying sequential consistency on shared-memory multiprocessors by model checking IEEE Trans Parallel Distrib Syst 2003 14 8 730-741
[25]
Vardi M.Y (1982) The complexity of relational query languages (extended abstract). In: Proceedings of the fourteenth annual ACM symposium on theory of computing. STOC ’82, ACM, New York, NY, USA, pp 137–146, http://doi.acm.org/10.1145/800070.802186
[26]
Warren DS (1999) Programming in tabled prolog. In: Symposium program, pp 62
[27]
Wing JM and Gong C Testing and verifying concurrent objects J Parallel Distrib Comput 1993 17 1–2 164-182
[28]
Zennou R, Atig MF, Biswas R, Bouajjani A, Enea C, Erradi M (2020) Boosting sequential consistency checking using saturation. In: Hung DV, Sokolsky O (eds) Automated technology for verification and analysis. Springer, Cham, pp 360–376. https://doi.org/10.1007/978-3-030-59152-6_20
[29]
Zennou R, Biswas R, Bouajjani A, Enea C, Erradi M (2019) Checking causal consistency of distributed databases. In: Atig MF, Schwarzmann AA (eds) Networked systems. Springer International Publishing, Cham, pp 35–51 https://doi.org/10.1007/978-3-030-31277-0_3
[30]
Zennou R, Biswas R, Bouajjani A, Enea C, Erradi M (2020) Checking causal consistency of distributed databases, https://arxiv.org/abs/2011.09753
[31]
Zennou R, Bouajjani A, Enea C, Erradi M (2019) Gradual consistency checking. In: Dillig I, Tasiran S, (eds) Computer Aided Verification. Springer, Cham, pp 267–285, https://doi.org/10.1007/978-3-030-25543-5_16

Cited By

View all
  • (2024)Plume: Efficient and Complete Black-Box Checking of Weak Isolation LevelsProceedings of the ACM on Programming Languages10.1145/36897428:OOPSLA2(876-904)Online publication date: 8-Oct-2024
  • (2024)IsoPredict: Dynamic Predictive Analysis for Detecting Unserializable Behaviors in Weakly Isolated Data Store ApplicationsProceedings of the ACM on Programming Languages10.1145/36563918:PLDI(343-367)Online publication date: 20-Jun-2024

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Computing
Computing  Volume 104, Issue 10
Oct 2022
183 pages

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 01 October 2022
Accepted: 20 January 2021
Received: 30 April 2020

Author Tags

  1. Causal consistency
  2. Causal memory
  3. Causal convergence
  4. Distributed databases
  5. Formal verification
  6. Testing

Author Tag

  1. 68Q60

Qualifiers

  • Research-article

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Plume: Efficient and Complete Black-Box Checking of Weak Isolation LevelsProceedings of the ACM on Programming Languages10.1145/36897428:OOPSLA2(876-904)Online publication date: 8-Oct-2024
  • (2024)IsoPredict: Dynamic Predictive Analysis for Detecting Unserializable Behaviors in Weakly Isolated Data Store ApplicationsProceedings of the ACM on Programming Languages10.1145/36563918:PLDI(343-367)Online publication date: 20-Jun-2024

View Options

View options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media