skip to main content
10.1145/2851141.2851170acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
research-article

Causal consistency: beyond memory

Published:27 February 2016Publication History

ABSTRACT

In distributed systems where strong consistency is costly when not impossible, causal consistency provides a valuable abstraction to represent program executions as partial orders. In addition to the sequential program order of each computing entity, causal order also contains the semantic links between the events that affect the shared objects -- messages emission and reception in a communication channel, reads and writes on a shared register. Usual approaches based on semantic links are very difficult to adapt to other data types such as queues or counters because they require a specific analysis of causal dependencies for each data type. This paper presents a new approach to define causal consistency for any abstract data type based on sequential specifications. It explores, formalizes and studies the differences between three variations of causal consistency and highlights them in the light of PRAM, eventual consistency and sequential consistency: weak causal consistency, that captures the notion of causality preservation when focusing on convergence; causal convergence that mixes weak causal consistency and convergence; and causal consistency, that coincides with causal memory when applied to shared memory.

References

  1. Sarita V Adve and Kourosh Gharachorloo. Shared memory consistency models: A tutorial. computer, 29(12):66--76, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Mustaque Ahamad, Gil Neiger, James E Burns, Prince Kohli, and Phillip W Hutto. Causal memory: Definitions, implementation, and programming. Distributed Computing, 9(1):37--49, 1995.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Hagit Attiya and Jennifer L Welch. Sequential consistency versus linearizability. ACM Transactions on Computer Systems (TOCS), 12(2):91--122, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Kenneth P Birman and Thomas A Joseph. Reliable communication in the presence of failures. ACM Transactions on Computer Systems (TOCS), 5(1):47--76, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Hans-Juergen Boehm and Sarita V. Adve. Foundations of the C++ concurrency memory model. In Proc. of the ACM SIGPLAN 2008 Conf. on Programming Language Design and Implementation (PLDI08), Tucson, AZ, USA, June, pages 68--78, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Sebastian Burckhardt, Alexey Gotsman, Hongseok Yang, and Marek Zawirski. Replicated data types: specification, verification, optimality. In The 41st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL '14, San Diego, CA, USA, January 20-21, 2014, pages 271--284, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Michael J Fischer, Nancy A Lynch, and Michael S Paterson. Impossibility of distributed consensus with one faulty process. Journal of the ACM (JACM), 32(2):374--382, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Pranav Gambhire and Ajay D Kshemkalyani. Reducing false causality in causal message ordering. In High Performance ComputingHiPC 2000, pages 61--72. Springer, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Seth Gilbert and Nancy Lynch. Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services. ACM SIGACT News, 33(2):51--59, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Vassos Hadzilacos and Toueg Sam. Reliable Broadcast and Related Problems. In Distributed Systems (S. Mullender Ed.). ACM Press, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Maurice Herlihy. Wait-free synchronization. ACM Transactions on Programming Languages and Systems (TOPLAS), 13(1):124--149, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Maurice Herlihy. Technical perspective - highly concurrent data structures. Communications of the ACM, 52(5):99, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Maurice P Herlihy and Jeannette M Wing. Linearizability: A correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems (TOPLAS), 12(3):463--492, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Leslie Lamport. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM, 21(7):558--565, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Leslie Lamport. How to make a multiprocessor computer that correctly executes multiprocess programs. Computers, IEEE Transactions on, 100(9):690--691, 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Richard J Lipton and Jonathan S Sandberg. PRAM: A scalable shared memory. Princeton University, Department of Computer Science, 1988.Google ScholarGoogle Scholar
  17. George H Mealy. A method for synthesizing sequential circuits. Bell System Technical Journal, 34(5):1045--1079, 1955.Google ScholarGoogle ScholarCross RefCross Ref
  18. Jayadev Misra. Axioms for memory access in asynchronous hardware systems. ACM Transactions on Programming Languages and Systems (TOPLAS), 8(1):142--153, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Matthieu Perrin, Achour Mostéfaoui, and Claude Jard. Update consistency for wait-free concurrent objects. In Proceedings of the 29th IEEE International Parallel and Distributed Processing Symposium. IEEE, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Michel Raynal, André Schiper, and Sam Toueg. The causal ordering abstraction and a simple way to implement it. Information processing letters, 39(6):343--350, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Jaroslav Sevcík, Viktor Vafeiadis, Francesco Zappa Nardelli, Suresh Jagannathan, and Peter Sewell. Relaxed-memory concurrency and verified compilation. In Proc. of the 38th ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, POPL 2011, Austin, TX, USA, January, pages 43--54, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Marc Shapiro, Nuno M. Preguiça, Carlos Baquero, and Marek Zawirski. Conflict-free replicated data types. In Stabilization, Safety, and Security of Distributed Systems - 13th International Symposium, SSS 2011, Grenoble, France, October 10-12, 2011. Proceedings, pages 386--400, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Chengzheng Sun, Xiaohua Jia, Yanchun Zhang, Yun Yang, and David Chen. Achieving convergence, causality preservation, and intention preservation in real-time cooperative editing systems. ACM Transactions on Computer-Human Interaction (TOCHI), 5(1):63--108, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Douglas B Terry, Alan J Demers, Karin Petersen, Mike J Spreitzer, Marvin M Theimer, and Brent B Welch. Session guarantees for weakly consistent replicated data. In Parallel and Distributed Information Systems, 1994., Proceedings of the Third International Conference on, pages 140--149. IEEE, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Werner Vogels. Eventually consistent. Queue, 6(6):14--19, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Causal consistency: beyond memory

            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
              PPoPP '16: Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
              February 2016
              420 pages
              ISBN:9781450340922
              DOI:10.1145/2851141

              Copyright © 2016 ACM

              Publication rights licensed to ACM. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 27 February 2016

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

              Acceptance Rates

              Overall Acceptance Rate230of1,014submissions,23%

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader