On Composition and Implementation of Sequential Consistency

  • Matthieu PerrinEmail author
  • Matoula Petrolia
  • Achour Mostéfaoui
  • Claude Jard
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9888)


To implement a linearizable shared memory in synchronous message-passing systems it is necessary to wait for a time linear to the uncertainty in the latency of the network for both read and write operations. Waiting only for one of them suffices for sequential consistency. This paper extends this result to crash-prone asynchronous systems, proposing a distributed algorithm that builds a sequentially consistent shared snapshot memory on top of an asynchronous message-passing system where less than half of the processes may crash. We prove that waiting is needed only when a process invokes a read/snapshot right after a write.

We also show that sequential consistency is composable in some cases commonly encountered: (1) objects that would be linearizable if they were implemented on top of a linearizable memory become sequentially consistent when implemented on top of a sequential memory while remaining composable and (2) in round-based algorithms, where each object is only accessed within one round.


Asynchronous message-passing system Crash-failures Sequential consistency Composability Shared memory Snapshot 



This work has been partially supported by the Franco-German ANR project DISCMAT under grant agreement ANR-14-CE35-0010-01.


  1. 1.
    Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Comput. 100(9), 690–691 (1979)CrossRefzbMATHGoogle Scholar
  2. 2.
    Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. (TOPLAS) 12(3), 463–492 (1990)CrossRefGoogle Scholar
  3. 3.
    Lipton, R.J., Sandberg, J.S.: PRAM: a scalable shared memory. Princeton University, Department of Computer Science (1988)Google Scholar
  4. 4.
    Attiya, H., Welch, J.L.: Sequential consistency versus linearizability. ACM Trans. Comput. Syst. (TOCS) 12(2), 91–122 (1994)CrossRefGoogle Scholar
  5. 5.
    Afek, Y., Attiya, H., Dolev, D., Gafni, E., Merritt, M., Shavit, N.: Atomic snapshots of shared memory. J. ACM 40(4), 873–890 (1993)CrossRefzbMATHGoogle Scholar
  6. 6.
    Attiya, H., Rachman, O.: Atomic snapshots in o(n log n) operations. SIAM J. Comput. 27(2), 319–340 (1998)MathSciNetCrossRefzbMATHGoogle Scholar
  7. 7.
    Gafni, E.: Distributed Computing: a Glimmer of a Theory. In: Handbook of Computer Science. CRC Press (1998)Google Scholar
  8. 8.
    Gafni, E.: Round-by-round fault detectors: Unifying synchrony and asynchrony (extended abstract). In: Proceedings of the 17th ACM Symposium on Principles of Distributed Computing, PODC 1998, pp. 143–152, Puerto Vallarta (1998)Google Scholar
  9. 9.
    Goodman, J.R.: Cache consistency and sequential consistency. University of Wisconsin-Madison, Computer Sciences Department (1991)Google Scholar
  10. 10.
    Perrin, M., Petrolia, M., Mostefaoui, A., Jard, C.: On Composition and implementation of sequential consistency (extended version). Research report, LINA-University of Nantes, July 2016Google Scholar
  11. 11.
    Awerbuch, B.: Complexity of network synchronization. J. ACM 32(4), 804–823 (1985)MathSciNetCrossRefzbMATHGoogle Scholar
  12. 12.
    Charron-Bost, B., Schiper, A.: The heard-of model: computing in distributed systems with benign faults. Distrib. Comput. 22(1), 49–71 (2009)CrossRefzbMATHGoogle Scholar
  13. 13.
    Dwork, C., Lynch, N., Stockmeyer, L.: Consensus in the presence of partial synchrony. J. ACM 35(2), 288–323 (1988)MathSciNetCrossRefGoogle Scholar
  14. 14.
    Birman, K.P., Joseph, T.A.: Reliable communication in the presence of failures. ACM Trans. Comput. Syst. (TOCS) 5(1), 47–76 (1987)CrossRefGoogle Scholar
  15. 15.
    Attiya, H., Bar-Noy, A., Dolev, D.: Sharing memory robustly in message-passing systems. J. ACM (JACM) 42(1), 124–142 (1995)CrossRefzbMATHGoogle Scholar
  16. 16.
    Borowsky, E., Gafni, E.: Immediate atomic snapshots and fast renaming (extended abstract). In: Proceedings of the Twelth Annual ACM Symposium on Principles of Distributed Computing, pp. 41–51, Ithaca (1993)Google Scholar
  17. 17.
    Dwork, C., Herlihy, M., Plotkin, S.A., Waarts, O.: Time-lapse snapshots. In: Dolev, D., Galil, Z., Rodeh, M. (eds.) ISTCS 1992. LNCS, vol. 601, pp. 154–170. Springer, Heidelberg (1992)CrossRefGoogle Scholar
  18. 18.
    Kirousis, L.M., Spirakis, P.G., Tsigas, P.: Reading many variables in one atomic operation: solutions with linear or sublinear complexity. IEEE Trans. Parallel Distrib. Syst. 5(7), 688–696 (1994)CrossRefGoogle Scholar
  19. 19.
    Attiya, H., Herlihy, M., Rachman, O.: Atomic snapshots using lattice agreement. Distrib. Comput. 8(3), 121–132 (1995)CrossRefGoogle Scholar
  20. 20.
    Riany, Y., Shavit, N., Touitou, D.: Towards a practical snapshot algorithm. Theor. Comput. Sci. 269(1–2), 163–201 (2001)MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2016

Authors and Affiliations

  • Matthieu Perrin
    • 1
    Email author
  • Matoula Petrolia
    • 1
  • Achour Mostéfaoui
    • 1
  • Claude Jard
    • 1
  1. 1.LINA – University of NantesNantesFrance

Personalised recommendations