Advertisement

Formalizing and Checking Multilevel Consistency

  • Ahmed Bouajjani
  • Constantin Enea
  • Madhavan Mukund
  • Gautham Shenoy R.
  • S. P. SureshEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11990)

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.

References

  1. 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. 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. 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_19CrossRefGoogle Scholar
  4. 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/3360591CrossRefGoogle Scholar
  5. 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/2518188CrossRefzbMATHGoogle Scholar
  6. 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. 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. 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. 9.
    Burckhardt, S.: Principles of eventual consistency. Found. Trends Program. Lang. 1(1–2), 1–150 (2014).  https://doi.org/10.1561/2500000011CrossRefGoogle Scholar
  10. 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. 11.
    Damien: DynamoDB vs Cassandra (2017). https://www.beyondthelines.net/databases/dynamodb-vs-cassandra/. Accessed 16 Nov 2018
  12. 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. 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_26CrossRefGoogle Scholar
  14. 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. 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)CrossRefGoogle Scholar
  16. 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. 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. 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.pdfGoogle Scholar
  19. 19.
    Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Comput. 28(9), 690–691 (1979)CrossRefGoogle Scholar
  20. 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. 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/3276530CrossRefGoogle Scholar
  22. 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. 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. 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

Copyright information

© Springer Nature Switzerland AG 2020

Authors and Affiliations

  • Ahmed Bouajjani
    • 1
  • Constantin Enea
    • 1
  • Madhavan Mukund
    • 2
    • 3
  • Gautham Shenoy R.
    • 2
  • S. P. Suresh
    • 2
    • 3
    Email author
  1. 1.Université Paris DiderotParisFrance
  2. 2.Chennai Mathematical InstituteChennaiIndia
  3. 3.CNRS UMI 2000 ReLaXChennaiIndia

Personalised recommendations