Skip to main content

Formalizing and Checking Multilevel Consistency

  • Conference paper
  • First Online:
Verification, Model Checking, and Abstract Interpretation (VMCAI 2020)

Abstract

Developers of distributed data-stores must trade consistency for performance and availability. Such systems may in fact implement weak consistency models, e.g., causal consistency or eventual consistency, corresponding to different costs and guarantees to the clients. We consider the case of distributed systems that offer not just one level of consistency but multiple levels of consistency to the clients. This corresponds to many practical situations. For instance, popular data-stores such as Amazon DynamoDB and Apache’s Cassandra allow applications to tag each query within the same session with a separate consistency level. In this paper, we provide a formal framework for the specification of multilevel consistency, and we address the problem of checking the conformance of a computation to such a specification. We provide a principled algorithmic approach to this problem and apply it to several instances of models with multilevel consistency.

Partially supported by CEFIPRA DST-Inria-CNRS Project 2014-1, AVeCSo.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 69.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 89.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Available at http://jepsen.io.

References

  1. Amazon DynamoDB Developer Guide (API Version 2012–08-10): DAX and DynamoDB consistency Models (2018). https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.consistency.html. Accessed 26 Sep 2019

  2. Bailis, P., Ghodsi, A., Hellerstein, J.M., Stoica, I.: Bolt-on causal consistency. In: Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data, SIGMOD 2013, pp. 761–772. ACM, New York (2013). https://doi.org/10.1145/2463676.2465279

  3. Biswas, R., Emmi, M., Enea, C.: On the complexity of checking consistency for replicated data types. In: Dillig, I., Tasiran, S. (eds.) CAV 2019. LNCS, vol. 11562, pp. 324–343. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-25543-5_19

    Chapter  Google Scholar 

  4. Biswas, R., Enea, C.: On the complexity of checking transactional consistency. Proc. ACM Program. Lang. 3(OOPSLA), 165:1–165:28 (2019). https://doi.org/10.1145/3360591

    Article  Google Scholar 

  5. Bouajjani, A., Emmi, M.: Analysis of recursively parallel programs. ACM Trans. Program. Lang. Syst. 35(3), 10:1–10:49 (2013). https://doi.org/10.1145/2518188

    Article  MATH  Google Scholar 

  6. Bouajjani, A., Enea, C., Guerraoui, R., Hamza, J.: On verifying causal consistency. In: Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL 2017, pp. 626–638. ACM, New York (2017). https://doi.org/10.1145/3009837.3009888

  7. Bouajjani, A., Enea, C., Hamza, J.: Verifying eventual consistency of optimistic replication systems. In: The 41st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2014, San Diego, CA, USA, January 20–21, 2014, pp. 285–296 (2014). https://doi.org/10.1145/2535838.2535877

  8. Bouajjani, A., Enea, C., Mukund, M., Shenoy, R.G., Suresh, S.P.: Formalizing and checking multilevel consistency. Tech. rep., Chennai Mathematical Institute (2019). http://www.cmi.ac.in/~spsuresh/pdfs/vmcai2020-tr.pdf

  9. Burckhardt, S.: Principles of eventual consistency. Found. Trends Program. Lang. 1(1–2), 1–150 (2014). https://doi.org/10.1561/2500000011

    Article  Google Scholar 

  10. Burkhardt, S., Gotsman, A., Yang, H., Zawirski, M.: Replicated data types: specification, verification, optimality. In: The 41st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2014, San Diego, CA, USA, January 20–21, 2014, pp. 271–284 (2014)

    Google Scholar 

  11. Damien: DynamoDB vs Cassandra (2017). https://www.beyondthelines.net/databases/dynamodb-vs-cassandra/. Accessed 16 Nov 2018

  12. Dongol, B., Hierons, R.M.: Decidability and complexity for quiescent consistency. In: Proceedings of the 31st Annual ACM/IEEE Symposium on Logic in Computer Science, LICS 2016, pp. 116–125. ACM, New York (2016). https://doi.org/10.1145/2933575.2933576

  13. Emmi, M., Enea, C.: Monitoring weak consistency. In: Chockler, H., Weissenbacher, G. (eds.) CAV 2018. LNCS, vol. 10981, pp. 487–506. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-96145-3_26

    Chapter  Google Scholar 

  14. Furbach, F., Meyer, R., Schneider, K., Senftleben, M.: Memory model-aware testing - a unified complexity analysis. In: 14th International Conference on Application of Concurrency to System Design, ACSD 2014, Tunis La Marsa, Tunisia, June 23–27, 2014, pp. 92–101 (2014). https://doi.org/10.1109/ACSD.2014.27

  15. Gilbert, S., Lynch, N.A.: Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant web services. SIGACT News 33(2), 51–59 (2002)

    Article  Google Scholar 

  16. Gotsman, A., Yang, H., Ferreira, C., Najafzadeh, M., Shapiro, M.: ’cause i’m strong enough: reasoning about consistency choices in distributed systems. In: Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2016, St. Petersburg, FL, USA, January 20–22, 2016, pp. 371–384 (2016). https://doi.org/10.1145/2837614.2837625

  17. Guerraoui, R., Pavlovic, M., Seredinschi, D.A.: Incremental consistency guarantees for replicated objects. In: Proceedings of the 12th USENIX Conference on Operating Systems Design and Implementation, OSDI 2016, pp. 169–184. USENIX Association, Berkeley (2016). http://dl.acm.org/citation.cfm?id=3026877.3026891

  18. Kraska, T., Hentschel, M., Alonso, G., Kossmann, D.: Consistency rationing in the cloud: pay only when it matters. PVLDB 2(1), 253–264 (2009). http://www.vldb.org/pvldb/2/vldb09-759.pdf

    Google Scholar 

  19. Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Comput. 28(9), 690–691 (1979)

    Article  Google Scholar 

  20. Li, C., Porto, D., Clement, A., Gehrke, J., Preguiça, N., Rodrigues, R.: Making geo-replicated systems fast as possible, consistent when necessary. In: Proceedings of the 10th USENIX Conference on Operating Systems Design and Implementation, OSDI 2012, pp. 265–278. USENIX Association, Berkeley (2012). http://dl.acm.org/citation.cfm?id=2387880.2387906

  21. Ozkan, B.K., Majumdar, R., Niksic, F., Befrouei, M.T., Weissenbacher, G.: Randomized testing of distributed systems with probabilistic guarantees. PACMPL 2(OOPSLA), 160:1–160:28 (2018). https://doi.org/10.1145/3276530

    Article  Google Scholar 

  22. Perrin, M., Mostefaoui, A., Jard, C.: Causal consistency: beyond memory. In: Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2016, pp. 26:1–26:12. ACM, New York (2016)

    Google Scholar 

  23. Terry, D.B., Theimer, M., Petersen, K., Demers, A.J., Spreitzer, M., Hauser, C.: Managing update conflicts in bayou, a weakly connected replicated storage system. In: Proceedings of the Fifteenth ACM Symposium on Operating System Principles, SOSP 1995, Copper Mountain Resort, Colorado, USA, December 3–6, 1995, pp. 172–183 (1995). https://doi.org/10.1145/224056.224070

  24. Wolper, P.: Expressing interesting properties of programs in propositional temporal logic. In: Conference Record of the Thirteenth Annual ACM Symposium on Principles of Programming Languages, St. Petersburg Beach, Florida, USA, January 1986, pp. 184–193 (1986). https://doi.org/10.1145/512644.512661

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to S. P. Suresh .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Bouajjani, A., Enea, C., Mukund, M., Shenoy R., G., Suresh, S.P. (2020). Formalizing and Checking Multilevel Consistency. In: Beyer, D., Zufferey, D. (eds) Verification, Model Checking, and Abstract Interpretation. VMCAI 2020. Lecture Notes in Computer Science(), vol 11990. Springer, Cham. https://doi.org/10.1007/978-3-030-39322-9_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-39322-9_18

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-39321-2

  • Online ISBN: 978-3-030-39322-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics