A Methodological Construction of an Efficient Sequentially Consistent Distributed Shared Memory

The paper proposes a simple protocol that ensures sequential consistency. The protocol assumes that the shared memory abstraction is supported by the local memories of nodes that can communicate only by exchanging messages through reliable channels. Unlike other sequential consistency protocols, the one proposed here does not rely on a strong synchronization mechanism, such as an atomic broadcast primitive or a central node managing a copy of every shared object. From a methodological point of view, the protocol is built incrementally starting from the very definition of sequential consistency. It has the noteworthy property that a process that issues a write operation never has to wait for other processes. Depending on the current local state, most read operations issued also have the same property.

[1]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[2]  Michel Raynal,et al.  Sequential Consistency in Distributed Systems , 1994, Dagstuhl Seminar on Distributed Systems.

[3]  José M. Bernabéu-Aubán,et al.  Relationships between memory models , 2004, Inf. Process. Lett..

[4]  Selim G. Akl,et al.  Design and analysis of parallel algorithms , 1985 .

[5]  Jalal Kawash,et al.  Specifying memory consistency of write buffer multiprocessors , 2007, TOCS.

[6]  Michel Raynal,et al.  Sequential consistency as lazy linearizability , 2002, SPAA '02.

[7]  Hagit Attiya,et al.  Sequential consistency versus linearizability , 1994, TOCS.

[8]  Friedemann Mattern,et al.  Algorithms for distributed termination detection , 1987, Distributed Computing.

[9]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[10]  Sudheendra Hangal,et al.  Efficient algorithms for verifying memory consistency , 2005, SPAA '05.

[11]  André Schiper,et al.  From Causal Consistency to Sequential Consistency in Shared Memory Systems , 1995, FSTTCS.

[12]  Maurice Herlihy,et al.  Wait-free synchronization , 1991, TOPL.

[13]  Michel Raynal Token-based sequential consistency , 2002, Comput. Syst. Sci. Eng..

[14]  Michel Raynal,et al.  An adaptive protocol for implementing causally consistent distributed services , 1998, Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183).

[15]  Gil Neiger,et al.  Causal Memory , 1991, WDAG.

[16]  Jayadev Misra Axioms for Memory Access in Asynchronous Hardware Systems , 1984, Seminar on Concurrency.

[17]  Michel Raynal,et al.  An Optimistic Protocol for a Linearizable Distributed Shared Memory System , 1996, Parallel Process. Lett..

[18]  Michael Allen,et al.  Parallel programming: techniques and applications using networked workstations and parallel computers , 1998 .

[19]  Antonio Fernández,et al.  A parametrized algorithm that implements sequential, causal, and cache memory consistencies , 2008, J. Syst. Softw..

[20]  Gil Neiger,et al.  Causal memory: definitions, implementation, and programming , 1995, Distributed Computing.

[21]  M. Raynal,et al.  A Suite of Formal Definitions for Consistency Criteria in Distributed Shared Memories , 1996 .

[22]  Ronald H. Perrott,et al.  Parallel programming , 1988, International computer science series.

[23]  Gary J. Nutt,et al.  A unified theory of shared memory consistency , 2002, JACM.

[24]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1986, PODC '86.

[25]  Mustaque Ahamad,et al.  Scalable Consistency Protocols for Distributed Services , 1999, IEEE Trans. Parallel Distributed Syst..

[26]  Sarita V. Adve,et al.  Shared Memory Consistency Models: A Tutorial , 1996, Computer.

[27]  C. Q. Lee,et al.  The Computer Journal , 1958, Nature.

[28]  Michel Raynal,et al.  A methodological construction of an efficient sequential consistency protocol , 2004, Third IEEE International Symposium on Network Computing and Applications, 2004. (NCA 2004). Proceedings..

[29]  Henri E. Bal,et al.  Orca: A Language For Parallel Programming of Distributed Systems , 1992, IEEE Trans. Software Eng..

[30]  Yehuda Afek,et al.  Lazy caching , 1993, TOPL.

[31]  Krishnamurthy Vidyasankar,et al.  On specification of Read/Write shared variables , 2007, JACM.