|
ABSTRACT
A concurrent object is a data object shared by concurrent processes. Linearizability is a correctness condition for concurrent objects that exploits the semantics of abstract data types. It permits a high degree of concurrency, yet it permits programmers to specify and reason about concurrent objects using known techniques from the sequential domain. Linearizability provides the illusion that each operation applied by concurrent processes takes effect instantaneously at some point between its invocation and its response, implying that the meaning of a concurrent object's operations can be given by pre- and post-conditions. This paper defines linearizability, compares it to other correctness conditions, presents and demonstrates a method for proving the correctness of implementations, and shows how to reason about concurrent objects, given they are linearizable.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
AEADI, M., AND LAMPORT, L. The existence of refinement mappings. Tech. Rep. 29, DEC Systems Research Center, Aug. 1988.
|
| |
2
|
GOGUEN, J. A., THATCHER, J. W., WAGNER, E. G., AND WRIGHT, J.B. Abstract data types as initial algebras and correctness of data representations. In Proceedings of the Conference on Computer Graphics, Pattern Recognition and Data Structures (May 1975). ACM, New York, 1975, 89-93.
|
 |
3
|
|
| |
4
|
BAYER, R., AND SCHKOLNICK, M. Concurrency of operations on B-trees. Acta In{. 1, 1 (1977), 1-21.
|
| |
5
|
BIRKHOFF, G., AND LIPSON, J.D. Heterogeneous algebras. J. Comb. Theor. 8 (1970), 115-133.
|
| |
6
|
BISWAS, Z., AND BROWNE, J.C. Simultaneous update of priority structures. In Proceedings of the 1987 International Conference on Parallel Processing (St. Charles, Ill., 1987). 124-131.
|
| |
7
|
|
| |
8
|
BURSTALL, R. M., AND GOGUEN, J. A. Putting theories together to make specifications. In Fifth International Joint Conference on Artificial Intelligence (Cambridge, Mass., Aug. 1977). 1045-1058. Invited paper.
|
| |
9
|
DEPARTMENT OF DEFENSE. Reference Manual for the ADA Programming Language. ANSI/ MIL-STD-1815A-1983, 1983.
|
| |
10
|
|
| |
11
|
ELLIS, C.S. Concurrent search and insertion in 2-3 trees. Acta Inf. 14 (1980), 63-86.
|
 |
12
|
|
 |
13
|
|
| |
14
|
GERTH, R., AND DEROEVER, W.P. Proving monitors revisited: A first step towards verifying object oriented systems. Fundamental Inf. 9 (1986), 371-400.
|
 |
15
|
|
| |
16
|
GUIBAS, L., AND SEDGEWICK, R. A dichromatic framework for balanced trees. In 19th ACM Symposium on Foundations of Computer Science (Providence, R.I., 1978). ACM, New York, 1978, 8-21.
|
| |
17
|
|
 |
18
|
|
| |
19
|
GUTTAG, J. V., HORNING, J. Z., AND WING, J.M. Larch in five easy pieces. Tech. Rep. 5, DEC Systems Research Center, July 1985.
|
| |
20
|
GUTTAG, J. V., HORNING, J. J., AND WING, J.M. The Larch family of specification languages. IEEE Softw. 2, 5 (Sept. 1985), 24-36.
|
 |
21
|
|
 |
22
|
|
 |
23
|
|
 |
24
|
|
| |
25
|
HOARE, C. A.R. Proof of correctness of data representations. Acta Inf. 1, I (1972), 271-281.
|
 |
26
|
|
 |
27
|
|
 |
28
|
|
| |
29
|
|
 |
30
|
Clyde P Kruskal , Larry Rudolph , Marc Snir, Efficient synchronization of multiprocessors with shared memory, Proceedings of the fifth annual ACM symposium on Principles of distributed computing, p.218-228, August 11-13, 1986, Calgary, Alberta, Canada
[doi> 10.1145/10590.10609]
|
| |
31
|
LAMPORT, L. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Comput. C-28, 9 (Sept. 1979), 690-691.
|
 |
32
|
|
 |
33
|
|
| |
34
|
|
 |
35
|
|
| |
36
|
NAKAJIMA, R., HONDA, M., AND NAKAHARA, H. Hierarchical program specification and verification--A many-sorted logical approach. Acta Inf. 14 (1980), 135-155.
|
 |
37
|
|
| |
38
|
OWICKI, S., AND GRIES, D. An axiomatic proof technique for parallel programs. Acta Inf. 6, 4 (1976), 319-340.
|
 |
39
|
|
 |
40
|
|
 |
41
|
|
 |
42
|
|
| |
43
|
STANDISH, W. A. Data structures: An axiomatic approach. Rep. 2639, Bolt, Beranek, and Newman, Cambridge, Mass., Aug. 1973.
|
| |
44
|
STIRLING, C. A generalization of Owicki-Gries-Hoare logic for a concurrent while language. Tech. Rep., Edinburgh Univ., March 1987.
|
| |
45
|
HERLIHY, M. P., AND WING, J.M. Axioms for concurrent objects. Tech. Rep. CMU-CS-86-154, Computer Science Dept., Carnegie Mellon Univ., 1986.
|
 |
46
|
|
CITED BY 265
|
|
|
|
|
|
|
|
|
|
|
Antonio Fernández , Ernesto Jiménez , Vicent Cholvi, On the interconnection of causal memory systems, Proceedings of the nineteenth annual ACM symposium on Principles of distributed computing, p.163-170, July 16-19, 2000, Portland, Oregon, United States
|
|
|
|
|
|
|
|
|
Yehuda Afek , David S. Greenberg , Michael Merritt , Gadi Taubenfeld, Computing with faulty shared memory, Proceedings of the eleventh annual ACM symposium on Principles of distributed computing, p.47-58, August 10-12, 1992, Vancouver, British Columbia, Canada
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Elizabeth Borowsky , Eli Gafni , Yehuda Afek, Consensus power makes (some) sense! (extended abstract), Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing, p.363-372, August 14-17, 1994, Los Angeles, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
Prasad Jayanti , King Tan , Sam Toueg, Time and space lower bounds for non-blocking implementations (preliminary version), Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing, p.257-266, May 23-26, 1996, Philadelphia, Pennsylvania, United States
|
|
|
Marta Patiño-Martínez , Ricardo Jiménez-Peris , Sergio Arévalo, Synchronizing group transaction with rendezvous in a distributed Ada environment, Proceedings of the 1998 ACM symposium on Applied Computing, p.2-9, February 27-March 01, 1998, Atlanta, Georgia, United States
|
|
|
Yehuda Afek , Eytan Weisberger , Hanan Weisman, A completeness theorem for a class of synchronization objects, Proceedings of the twelfth annual ACM symposium on Principles of distributed computing, p.159-170, August 15-18, 1993, Ithaca, New York, United States
|
|
|
Marios Mavronicolas , Michael Merritt , Gadi Taubenfeld, Sequentially consistent versus linearizable counting networks, Proceedings of the eighteenth annual ACM symposium on Principles of distributed computing, p.133-142, May 04-06, 1999, Atlanta, Georgia, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Eli Gafni , Michael Merritt , Gadi Taubenfeld, The concurrency hierarchy, and algorithms for unbounded concurrency, Proceedings of the twentieth annual ACM symposium on Principles of distributed computing, p.161-169, August 2001, Newport, Rhode Island, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Divyakant Agrawal , Manhoi Choy , Hong Va Leong , Ambuj K. Singh, Mixed consistency: a model for parallel programming (extended abstract), Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing, p.101-110, August 14-17, 1994, Los Angeles, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yehuda Afek , Dalia Dauber , Dan Touitou, Wait-free made fast, Proceedings of the twenty-seventh annual ACM symposium on Theory of computing, p.538-547, May 29-June 01, 1995, Las Vegas, Nevada, United States
|
|
|
Mustaque Ahamad , Rida A. Bazzi , Ranjit John , Prince Kohli , Gil Neiger, The power of processor consistency, Proceedings of the fifth annual ACM symposium on Parallel algorithms and architectures, p.251-260, June 30-July 02, 1993, Velen, Germany
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Maged M. Michael , Michael L. Scott, Simple, fast, and practical non-blocking and blocking concurrent queue algorithms, Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing, p.267-275, May 23-26, 1996, Philadelphia, Pennsylvania, United States
|
|
|
|
|
|
|
|
|
|
|
|
Yehuda Afek , Michael Merritt , Gadi Taubenfeld, The power of multi-objects (extended abstract), Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing, p.213-222, May 23-26, 1996, Philadelphia, Pennsylvania, United States
|
|
|
A. J. Wellings , B. Johnson , B. Sanden , J. Kienzle , T. Wolf , S. Michell, Integrating object-oriented programming and protected objects in Ada 95, ACM SIGAda Ada Letters, v.XXII n.2, p.11-44, June 2002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
François Pacull , Alain Sandoz , André Schiper, Duplex: a distributed collaborative editing environment in large scale, Proceedings of the 1994 ACM conference on Computer supported cooperative work, p.165-173, October 22-26, 1994, Chapel Hill, North Carolina, United States
|
|
|
|
|
|
Nancy Lynch , Nir Shavit , Alex Shvartsman , Dan Touitou, Counting networks are practically linearizable, Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing, p.280-289, May 23-26, 1996, Philadelphia, Pennsylvania, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Francisco J. Torres-Rojas , Mustaque Ahamad , Michel Raynal, Timed consistency for shared distributed objects, Proceedings of the eighteenth annual ACM symposium on Principles of distributed computing, p.163-172, May 04-06, 1999, Atlanta, Georgia, United States
|
|
|
|
|
|
|
|
|
|
|
|
Hagit Attiya , Soma Chaudhuri , Roy Friedman , Jennifer L. Welch, Shared memory consistency conditions for non-sequential execution: definitions and programming strategies, Proceedings of the fifth annual ACM symposium on Parallel algorithms and architectures, p.241-250, June 30-July 02, 1993, Velen, Germany
|
|
|
A. J. Wellings , B. Johnson , B. Sanden , J. Kienzle , T. Wolf , S. Michell, Integrating object-oriented programming and protected objects in Ada 95, ACM Transactions on Programming Languages and Systems (TOPLAS), v.22 n.3, p.506-539, May 2000
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ole Agesen , David L. Detlefs , Christine H. Flood , Alexander T. Garthwaite , Paul A. Martin , Nir N. Shavit , Guy L. Steele, Jr., DCAS-based concurrent deques, Proceedings of the twelfth annual ACM symposium on Parallel algorithms and architectures, p.137-146, July 09-13, 2000, Bar Harbor, Maine, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Manhoi Choy , Hong V. Leong , Man Hon Wong, On distributed object checkpointing and recovery, Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing, p.64-73, August 20-23, 1995, Ottowa, Ontario, Canada
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Faith Fich , Maurice Herlihy , Nir Shavit, On the space complexity of randomized synchronization, Proceedings of the twelfth annual ACM symposium on Principles of distributed computing, p.241-249, August 15-18, 1993, Ithaca, New York, United States
|
|
|
Maurice Herlihy , Victor Luchangco , Mark Moir , William N. Scherer, III, Software transactional memory for dynamic-sized data structures, Proceedings of the twenty-second annual symposium on Principles of distributed computing, p.92-101, July 13-16, 2003, Boston, Massachusetts
|
|
|
|
|
|
Rida A. Bazzi , Gil Neiger , Gary L. Peterson, On the use of registers in achieving wait-free consensus, Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing, p.354-362, August 14-17, 1994, Los Angeles, California, United States
|
|
|
Yehuda Afek , Hagit Attiya , Danny Dolev , Eli Gafni , Michael Merritt , Nir Shavit, Atomic snapshots of shared memory, Journal of the ACM (JACM), v.40 n.4, p.873-890, Sept. 1993
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Simon Doherty , David L. Detlefs , Lindsay Grove , Christine H. Flood , Victor Luchangco , Paul A. Martin , Mark Moir , Nir Shavit , Guy L. Steele, Jr., DCAS is not a silver bullet for nonblocking algorithm design, Proceedings of the sixteenth annual ACM symposium on Parallelism in algorithms and architectures, June 27-30, 2004, Barcelona, Spain
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Partha Dutta , Rachid Guerraoui , Ron R. Levy , Arindam Chakraborty, How fast can a distributed atomic read be?, Proceedings of the twenty-third annual ACM symposium on Principles of distributed computing, July 25-28, 2004, St. John's, Newfoundland, Canada
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Simon Doherty , Maurice Herlihy , Victor Luchangco , Mark Moir, Bringing practical lock-free synchronization to 64-bit applications, Proceedings of the twenty-third annual ACM symposium on Principles of distributed computing, July 25-28, 2004, St. John's, Newfoundland, Canada
|
|
|
|
|
|
Cormac Flanagan , Stephen N. Freund , Marina Lifshin, Type inference for atomicity, Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation, p.47-58, January 10-10, 2005, Long Beach, California, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Carole Delporte-Gallet , Hugues Fauconnier , Rachid Guerraoui , Vassos Hadzilacos , Petr Kouznetsov , Sam Toueg, The weakest failure detectors to solve certain fundamental problems in distributed computing, Proceedings of the twenty-third annual ACM symposium on Principles of distributed computing, July 25-28, 2004, St. John's, Newfoundland, Canada
|
|
|
|
|
|
|
|
|
Virendra J. Marathe , William N. Scherer , Michael L. Scott, Design tradeoffs in modern software transactional memory systems, Proceedings of the 7th workshop on Workshop on languages, compilers, and run-time support for scalable systems, p.1-7, October 22-23, 2004, Houston, Texas
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Michael A. Bender , Jeremy T. Fineman , Seth Gilbert , Bradley C. Kuszmaul, Concurrent cache-oblivious b-trees, Proceedings of the seventeenth annual ACM symposium on Parallelism in algorithms and architectures, July 18-20, 2005, Las Vegas, Nevada, USA
|
|
|
William N. Scherer, III , Doug Lea , Michael L. Scott, Scalable synchronous queues, Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming, March 29-31, 2006, New York, New York, USA
|
|
|
Viktor Vafeiadis , Maurice Herlihy , Tony Hoare , Marc Shapiro, Proving correctness of highly-concurrent linearisable objects, Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming, March 29-31, 2006, New York, New York, USA
|
|
|
Mark Moir , Daniel Nussbaum , Ori Shalev , Nir Shavit, Using elimination to implement scalable and lock-free FIFO queues, Proceedings of the seventeenth annual ACM symposium on Parallelism in algorithms and architectures, July 18-20, 2005, Las Vegas, Nevada, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Jinyuan Li , Maxwell Krohn , David Mazières , Dennis Shasha, Secure untrusted data repository (SUNDR), Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation, p.9-9, December 06-08, 2004, San Francisco, CA
|
|
|
Svend Frølund , Arif Merchant , Yasushi Saito , Susan Spence , Alistair Veitch, FAB: enterprise storage systems on a shoestring, Proceedings of the 9th conference on Hot Topics in Operating Systems, p.29-29, May 18-21, 2003, Lihue, Hawaii
|
|
|
Michael Abd-El-Malek , William V. Courtright, II , Chuck Cranor , Gregory R. Ganger , James Hendricks , Andrew J. Klosterman , Michael Mesnier , Manish Prasad , Brandon Salmon , Raja R. Sambasivan , Shafeeq Sinnamohideen , John D. Strunk , Eno Thereska , Matthew Wachs , Jay J. Wylie, Ursa minor: versatile cluster-based storage, Proceedings of the 4th conference on USENIX Conference on File and Storage Technologies, p.5-5, December 13-16, 2005, San Francisco, CA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
John Maccormick , Chandramohan A. Thekkath , Marcus Jager , Kristof Roomp , Lidong Zhou , Ryan Peterson, Niobe: A practical replication protocol, ACM Transactions on Storage (TOS), v.3 n.4, p.1-43, February 2008
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Rachid Guerraoui , Maurice Herlihy , Petr Kouznetsov , Nancy Lynch , Calvin Newport, On the weakest failure detector ever, Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing, August 12-15, 2007, Portland, Oregon, USA
|
|
|
Alejandro Cornejo , Sergio Rajsbaum , Michel Raynal , Corentin Travers, Failure detectors are schedulers, Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing, August 12-15, 2007, Portland, Oregon, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Faith Ellen , Yossi Lev , Victor Luchangco , Mark Moir, SNZI: scalable NonZero indicators, Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing, August 12-15, 2007, Portland, Oregon, USA
|
|
|
|
|
|
|
|
|
Lidong Zhou , Vijayan Prabhakaran , Venugopalan Ramasubramanian , Roy Levin , Chandramohan A. Thekkath, Graceful degradation via versions: specifications and implementations, Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing, August 12-15, 2007, Portland, Oregon, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hany E. Ramadan , Indrajit Roy , Maurice Herlihy , Emmett Witchel, Committing conflicting transactions in an STM, Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming, February 14-18, 2009, Raleigh, NC, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Atul Singh , Pedro Fonseca , Petr Kuznetsov , Rodrigo Rodrigues , Petros Maniatis, Defining weakly consistent Byzantine fault-tolerant services, Proceedings of the 2nd Workshop on Large-Scale Distributed Systems and Middleware, September 15-17, 2008, Yorktown Heights, New York
|
|
|
|
|
|
|
|
|
|
|
|
Atul Singh , Pedro Fonseca , Petr Kuznetsov , Rodrigo Rodrigues , Petros Maniatis, Zeno: eventually consistent Byzantine-fault tolerance, Proceedings of the 6th USENIX symposium on Networked systems design and implementation, p.169-184, April 22-24, 2009, Boston, Massachusetts
|
|
|
|
|
|
|
|
|
Alexandru Nicolau , Guangqiang Li , Alexander V. Veidenbaum , Arun Kejariwal, Synchronization optimizations for efficient execution on multi-cores, Proceedings of the 23rd international conference on Supercomputing, June 08-12, 2009, Yorktown Heights, NY, USA
|
|
|
Marcos Kawazoe Aguilera , Idit Keidar , Dahlia Malkhi , Alexander Shraer, Dynamic atomic storage without consensus, Proceedings of the 28th ACM symposium on Principles of distributed computing, August 10-12, 2009, Calgary, AB, Canada
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
REVIEW
"Jan Hendrik Jongejan : Reviewer"
Linearizability is a new concept that can be applied when
correctness proofs are needed for operations on data objects that are
shared by concurrent processes. Operations on data objects take place
sometime between a corresponding invocation a
more...
|