Linearizable Read/Write Objects

We study the cost of using message passing to implement linearizable read/write objects for shared-memory multiprocessors under various assumptions on the available timing information. We take as cost measures the worst-case response times for performing read and write operations in distributed implementations of virtual shared memory consisting of such objects, and the sum of these response times. It is assumed that processes have clocks that run at the same rate as real time and are within δ of each other, for some known precision constant δ ⩾ 0. All messages incur a delay in the range [d−u, d] for some known constants u and d, 0 ⩽ u ⩽ d. For the perfect clocks model, where clocks are perfectly synchronized, i.e., δ = 0, and every message incurs a delay of exactly d, we present a linearizable implementation which achieves worst-case response times for read and write operations of βd and (1 − β)d, respectively; β is a trade-off parameter, 0 ⩽ β ⩽ 1, which may be tuned to account for the relative frequencies of read and write operations. This implementation is optimal with respect to the sum of the worst-case response times for read and write operations. We next turn to the approximately synchronized clocks model, where clocks are only approximately synchronized, i.e., β > 0, and message delays can vary, i.e., u > 0. Our first major result is the first known linearizable implementation for this model which achieves worst-case response times of less than βd + 3u + min {δ, u} + e, and (l − β)d + 3u for read and write operations, respectively, under a mild restriction on the trade-off parameter β, 0 ⩽ β < 1− ud; e is any arbitrary constant such that 0 ⩽ e ⩽ min {2u, d − u}. This implementation employs a novel use of approximately synchronized clocks in order to utilize the lower bound on message delay time and achieve bounds on worst-case response times that depend on the message delay uncertainty u. For a wide range of values of u, these bounds improve upon previously known ones for implementations that supports consistency conditions even weaker than linearizability. Our next major result is a lower bound of d + min {δ, u}2 on the sum of the worst-case response times for read and write operations, for the approximately synchronized clocks model. This bound applies to linearizable implementations possessing some natural symmetry properties; the bound is shown using the technique of “shifting” executions. Corresponding lower bounds, but with no symmetry assumptions, are shown on the individual worst-case response times for read and write operations. Our bounds for the approximately synchronized clocks model extend naturally to the imperfect clocks model, where clocks may be arbitrarily far from each other, i.e., δ = ∞.

[1]  Kourosh Gharachorloo,et al.  Detecting violations of sequential consistency , 1991, SPAA '91.

[2]  Nancy A. Lynch,et al.  An Overview of Clock Synchronization , 1986, Fault-Tolerant Distributed Computing.

[3]  Martha J. Kosa Making operations of concurrent data types fast , 1994, PODC '94.

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

[5]  Nancy A. Lynch,et al.  Implementing sequentially consistent shared objects using broadcast and point-to-point communication , 1998, JACM.

[6]  Joseph Y. Halpern,et al.  Optimal precision in the presence of uncertainty , 1985, J. Complex..

[7]  Nancy A. Lynch,et al.  An introduction to input/output automata , 1989 .

[8]  Dan Roth,et al.  Efficient, Strongly Consistent Implementations of Shared Memory (Extended Abstract) , 1992, WDAG.

[9]  Hermann Kopetz,et al.  Clock Synchronization in Distributed Real-Time Systems , 1987, IEEE Transactions on Computers.

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

[11]  Jayadev Misra Axioms for memory access in asynchronous hardware systems , 1986, TOPL.

[12]  Proceedings of the 5th Annual ACM Symposium on Parallel Algorithms and Architectures, SPAA '93, Velen, Germany, June 30 - July 2, 1993 , 1993, SPAA.

[13]  Christos H. Papadimitriou,et al.  The serializability of concurrent database updates , 1979, JACM.

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

[15]  Roy Friedman,et al.  Shared Memory Consistency Conditions for Nonsequential Execution: Definitions and Programming Strategies , 1998, SIAM J. Comput..

[16]  Ambuj K. Singh,et al.  Fault Tolerance Bounds for Memory Consistency , 1997, WDAG.

[17]  Roy Friedman,et al.  Limitations of Fast Consistency Conditions for Distributed Shared Memories , 1996, Inf. Process. Lett..

[18]  Jean-Loup Baer,et al.  A performance study of memory consistency models , 1992, ISCA '92.

[19]  Kourosh Gharachorloo,et al.  Proving sequential consistency of high-performance shared memories (extended abstract) , 1991, SPAA '91.

[20]  Leslie Lamport,et al.  How to Make a Correct Multiprocess Program Execute Correctly on a Multiprocessor , 1997, IEEE Trans. Computers.

[21]  Kenneth P. Birman,et al.  Reliable communication in the presence of failures , 1987, TOCS.

[22]  Victor Luchangco,et al.  Precedence-Based Memory Models , 1997, WDAG.

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

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

[25]  Brian A. Coan,et al.  Agreeing on a Leader in Real-Time. , 1990, RTSS 1990.

[26]  Phillip B. Gibbons,et al.  On testing cache-coherent shared memories , 1994, SPAA '94.

[27]  Nancy A. Lynch,et al.  Designing algorithms for distributed systems with partially synchronized clocks , 1993, PODC '93.

[28]  Rida A. Bazzi,et al.  The power of processor consistency , 1993, SPAA '93.

[29]  Mark D. Hill,et al.  A Unified Formalization of Four Shared-Memory Models , 1993, IEEE Trans. Parallel Distributed Syst..

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

[31]  Marcin Paprzycki,et al.  Distributed Computing: Fundamentals, Simulations and Advanced Topics , 2001, Scalable Comput. Pract. Exp..

[32]  Nancy A. Lynch,et al.  An Upper and Lower Bound for Clock Synchronization , 1984, Inf. Control..

[33]  Michel Dubois,et al.  The verification of cache coherence protocols , 1993, SPAA '93.

[34]  Barbara Liskov,et al.  Practical uses of synchronized clocks in distributed systems , 1991, PODC '91.

[35]  Nir Shavit,et al.  Atomic snapshots of shared memory , 1990, JACM.

[36]  Hagit Attiya,et al.  Implementing FIFO Queus and Stacks (Extended Abstract) , 1991, WDAG.

[37]  Mustaque Ahamad,et al.  Slow memory: weakening consistency to enhance concurrency in distributed shared memories , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[38]  Roy Friedman,et al.  Programming DEC-Alpha based multiprocessors the easy way (extended abstract) , 1994, SPAA '94.

[39]  Roy Friedman,et al.  A Correctness Condition for High-Performance Multiprocessors , 1998, SIAM J. Comput..

[40]  Flaviu Cristian,et al.  New latency bounds for atomic broadcast , 1990, [1990] Proceedings 11th Real-Time Systems Symposium.

[41]  Mustaque Ahamad,et al.  Implementing and programming causal distributed shared memory , 1991, [1991] Proceedings. 11th International Conference on Distributed Computing Systems.

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

[43]  Hagit Attiya,et al.  Distributed Computing: Fundamentals, Simulations and Advanced Topics , 1998 .

[44]  Roy Friedman,et al.  Shared memory consistency conditions for non-sequential execution: definitions and programming strategies , 1993, SPAA '93.

[45]  Rajeev Alur,et al.  Model-Checking of Correctness Conditions for Concurrent Objects , 2000, Inf. Comput..