Summary
In recent years, there is a growing tendency to support high-level synchronization operations, such as read-modify-write, FIFO queues and stacks, as part of the programmer’s shared memory model. This paper examines the problem of implementing hybrid consistency with high-level synchronization operations. It is shown that for any implementation of weak consistency, the time required to execute a read-modify-write, a dequeue or a pop operation is Ω(d), where d is the network delay. Following this, an efficient and simple algorithm for providing hybrid consistency that supports most types of high-level synchronization operations and weak read and weak write operations is presented. Weak read and weak write operations are executed instantaneously, while the time required to execute strong operations is O(d). This is within a constant factor of the lower bounds for most of the commonly used types of operations.
Similar content being viewed by others
References
Adve S, Hill M: Weak ordering—a new definition. In: Proc 17th International Symposium on Computer Architecture, pp 2–14, May 1990
Adve S, Hill M: A unified formalization of four shared-memory models. Tech Rep 1051, Computer Science Department, University of Wisconsin, Wisconsin-Madison, September 1991
Afek Y, Brown G, Merritt M: A lazy cache algorithm. ACM Trans Program Lang Syst 15(1): 182–205 (1993)
Agarwel A, et al: The MIT alewife machine: a large-scale distributed memory multiprocessor. In: Proc Workshop on Scalable Shared Memory Multiprocessors. Kluwer, 1991
Ahamad M, Burns J, Hutto P, Neiger G: Causal memory. In: 5th International Workshop on Distributed Algorithms, Greece, October 1991
Ahamad M, Hutto P, John R: Implementing and programming causal distributed shared memory. Tech Rep TR GIT-CC-90-49, Georgia Institute of Technology, December 1990
Ahamad M, Neiger G, Kohli P, Burns J, Hutto P: Causal memory: definitions, implementation, and programming. Distrib Comput 9(1): 37–49 (1995)
Alvarez G, Cristian F, Mishra S: On-demand asynchronous atomic broadcast. Tech Rep CS95-416, Department of Computer Science, University of California, San Diego, 1995
Amir Y, Dolev D, Kramer S, Malki D: Total ordering of messages in broadcast domains. Tech Rep CS92-9, Department of Computer Science, the Hebrew University of Jerusalem, 1992
Attiya H: Implementing FIFO queues and stacks. In: Proc 5th International Workshop on Distributed Algorithms, pp 80–94, October 1991
Attiya H, Chaudhuri S, Friedman R, Welch J: Shared memory consistency conditions for non-sequential execution: definitions and programming strategies. In: Proc 5th ACM Symposium On Parallel Algorithms and Architectures, pp 241-250, June/July 1993. Also: Tech Rep LPCR #9306, Department of Computer Science, The Technion (submitted for publication)
Attiya H, Friedman R: A correctness condition for high performance multiprocessors. In: Proc 24th ACM Symposium on the Theory Of Computing, pp 679-690, May 1992. Revised version: Tech Rep #767, Department of Computer Science, The Technion (submitted for publication)
Attiya H, Welch J: Sequential consistency versus linearizability. ACM Trans Comput Syst 12(2): 91–122 (1994)
Birman K: The process group approach to reliable distributed computing. Commun ACM 36(12): 37–53 (1993)
Birman K, Joseph T: Exploiting virtual synchrony in distributed systems. In: Proc 11th ACM Symposium on Operating Systems Principles, pp 123–138, December 1987
Birman K, Joseph T: Reliable communication in the presence of failures. ACM Trans Comput Syst 5(1): 47–76 (1987)
Birman K, Schiper A, Stephenson P: Lightweight causal and atomic group multicast. ACM Trans Comput Syst 9(3): 272–314 (1991)
Bisiani R, Nowatzyk A, Ravishankar M: Coherent shared memory on a distributed memory machine. In: Proc International Conference on Parallel Processing, pp 1–133–141, 1989
Brantley W, McAuliffe K, Weiss J: RP3 processor-memory element. In: Proc International Conference on Parallel Processing, pp 782–789, 1985
Chang J, Maxemchuk N: Reliable broadcast protocols. ACM Trans Comput Syst 2(3): 251–273 (1984)
Corella F, Stone J, Barton C: A formal specification of the power PC shared memory architecture. Tech Rep Research Report #RC18638, IBM, 1994
Cristian F, Beijen R, Mishra S: A performance comparison of asynchronous atomic broadcast protocols. Distrib Syst Eng J 1(4): 177–201 (1994)
Dubois M, Scheurich C, Briggs FA: Synchronization, coherence and event ordering in multiprocessors. IEEE Comput 21(2): 9–21 (1988)
Friedman R: Implementing hybrid consistency with high-level synchronization operations. In: Proc 12th Annual ACM Symposium on the Principles of Distributed Computing, pp 229-240, August 1993. Also: Tech Rep #781, Department of Computer Science, The Technion (submitted for publication)
Gharachorloo K, Lenoski D, Laudon J, Gibbon SP, Gupta A, Hennessy J: Memory consistency and event ordering in scalable shared memory multiprocessors. In: Proc 17th International Symposium on Computer Architecture, pp 15–26, May 1990
Gibbons P, Merritt M: Specifying non-blocking shared memories. In Proc 4th ACM Symposium on Parallel Algorithms and Architectures, pp 306–315, July 1992
Gibbons P, Merritt M, Gharachorloo K: Proving sequential consistency of high performance shared memories. In: Proc 3rd ACM Symposium on Parallel Algorithms and Architectures, pp 292–303, July 1991
Goodman RJ: Cache consistency and sequential consistency. Tech Rep 1006, Computer Science Department, University of Wisconsin, Wisconsin, Madison, February 1991
Herlihy M, Wing J: Linearizability: a correctness condition for concurrent objects. ACM Trans Program Lang Syst 12(3): 463–492 (1990)
Hutto P, Ahamad M: Slow memory: weakening consistency to enhance concurrency in distributed shared memories. Tech Rep TR GIT-ICS-89/39, Georgia Institute of Technology, October 1989
Kaashoek F, Tanenbaum A, Hummel S, Bal H: An efficient reliable broadcast protocol. Operating Syst Rev 23(4): 5–19 (1989)
Kosa M: Making operations of concurrent data types fast. In: Proc 13th ACM Symposium on Principles of Distributed Computing, August 1994
Lamport L: How to make multiprocessor computer that correctly executes multiprocess programs. IEEE Trans Comput C-28(9): 690–691 (1979)
Lipton R, Sandberg J: PRAM: a scalable shared memory. Tech Rep CS-TR-180-88, Computer Science Department, Princeton University, September 1988
Marzullo K, Cooper R, Wood M, Birman K: Tools for distributed applications management. IEEE Comput 24(8): 42–51 (1991)
Mavronicolas M, Roth D: Efficient, strongly-consistent implementations of shared memory. In: Proc 6th International Workshop on Distributed Algorithms, pp 346–361, Haifa, Israel, November 1992
Siegel A, Birman K, Marzullo K: Deceit: a flexible distributed file system. Tech Rep TR 89-1042, Department of Computer Science, Cornell University, November 1989
Site R (ed) Alpha architecture reference manual. Digital Equipment Corporation, 1992
Author information
Authors and Affiliations
Additional information
Partially supported by Technion V.P.R. — Argentinian Research Fund and the US-Israel Binational Science Foundation. An extended abstract of a preliminary version of this work appears in proceedings of the 13th ACM Symposium on Principles of Distributed Computing, August 1993, pp 229 240
Rights and permissions
About this article
Cite this article
Friedman, R. Implementing hybrid consistency with high-level synchronization operations. Distrib Comput 9, 119–129 (1995). https://doi.org/10.1007/s004460050014
Received:
Accepted:
Issue Date:
DOI: https://doi.org/10.1007/s004460050014