Concurrent Specifications Beyond Linearizability

With the advent of parallel architectures, distributed programs are used intensively and the question of how to formally specify the behaviors expected from such programs becomes crucial. A very general way to specify concurrent objects is to simply give the set of all the execution traces that we consider correct for the object. In many cases, one is only interested in studying a subclass of these concurrent specifications, and more convenient tools such as linearizability can be used to describe them. In this paper, what we call a concurrent specification will be a set of execution traces that moreover satisfies a number of axioms. As we argue, these are actually the only concurrent specifications of interest: we prove that, in a reasonable computational model, every program satisfies all of our axioms. Restricting to this class of concurrent specifications allows us to formally relate our concurrent specifications with the ones obtained by linearizability, as well as its more recent variants (set-and interval-linearizability).

[1]  Samuel Mimram,et al.  Asynchronous Games: Innocence Without Alternation , 2007, CONCUR.

[2]  Robert Colvin,et al.  A sound and complete definition of linearizability on weak memory models , 2018, ArXiv.

[3]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[4]  Michel Raynal,et al.  From serializable to causal transactions for collaborative applications , 1997, EUROMICRO 97. Proceedings of the 23rd EUROMICRO Conference: New Frontiers of Information Technology (Cat. No.97TB100167).

[5]  Peter W. O'Hearn,et al.  Abstraction for concurrent objects , 2009, Theor. Comput. Sci..

[6]  Michel Raynal,et al.  Specifying Concurrent Problems: Beyond Linearizability and up to Tasks - (Extended Abstract) , 2015, DISC.

[7]  Leslie Lamport,et al.  On interprocess communication , 1986, Distributed Computing.

[8]  Richard J. Lipton,et al.  Reduction: a method of proving properties of parallel programs , 1975, CACM.

[9]  Eli Gafni,et al.  Immediate atomic snapshots and fast renaming , 1993, PODC '93.

[10]  Glynn Winskel,et al.  Models for Concurrency , 1994 .

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

[12]  Maurice Herlihy,et al.  Distributed Computing Through Combinatorial Topology , 2013 .

[13]  C.-H. Luke Ong,et al.  On Full Abstraction for PCF: I, II, and III , 2000, Inf. Comput..

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

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

[16]  Wojciech M. Golab,et al.  Making Sense of Relativistic Distributed Systems , 2014, DISC.

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