Unifying Concurrent Objects and Distributed Tasks

Tasks and objects are two predominant ways of specifying distributed problems where processes should compute outputs based on their inputs. Roughly speaking, a task specifies, for each set of processes and each possible assignment of input values, their valid outputs. In contrast, an object is defined by a sequential specification. Also, an object can be invoked multiple times by each process, while a task is a one-shot problem. Each one requires its own implementation notion, stating when an execution satisfies the specification. For objects, linearizability is commonly used, while tasks implementation notions are less explored. The article introduces the notion of interval-sequential object, and the corresponding implementation notion of interval-linearizability, to encompass many problems that have no sequential specification as objects. It is shown that interval-sequential specifications are local, namely, one can consider interval-linearizable object implementations in isolation and compose them for free, without sacrificing interval-linearizability of the whole system. The article also introduces the notion of refined tasks and its corresponding satisfiability notion. In contrast to a task, a refined task can be invoked multiple times by each process. Also, objects that cannot be defined using tasks can be defined using refined tasks. In fact, a main result of the article is that interval-sequential objects and refined tasks have the same expressive power and both are complete in the sense that they are able to specify any prefix-closed set of well-formed executions. Interval-linearizability and refined tasks go beyond unifying objects and tasks; they shed new light on both of them. On the one hand, interval-linearizability brings to task the following benefits: an explicit operational semantics, a more precise implementation notion, a notion of state, and a locality property. On the other hand, refined tasks open new possibilities of applying topological techniques to objects.

[1]  William N. Scherer,et al.  Nonblocking Concurrent Data Structures with Condition Synchronization , 2004, DISC.

[2]  Michael E. Saks,et al.  Wait-free k-set agreement is impossible: the topology of public knowledge , 1993, STOC.

[3]  Michel Raynal,et al.  Distributed Algorithms for Message-Passing Systems , 2013, Springer Berlin Heidelberg.

[4]  Maurice Herlihy,et al.  The topological structure of asynchronous computability , 1999, JACM.

[5]  Nir Shavit Data structures in the multicore age , 2011, CACM.

[6]  Maurice Herlihy,et al.  Linearizable counting networks , 1996, Distributed Computing.

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

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

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

[10]  André Schiper,et al.  A suite of definitions for consistency criteria in distributed shared memories , 1997, Ann. des Télécommunications.

[11]  Eli Gafni,et al.  Round-by-Round Fault Detectors: Unifying Synchrony and Asynchrony (Extended Abstract). , 1998, PODC 1998.

[12]  Chao Wang,et al.  Quasi-Linearizability is Undecidable , 2015, APLAS.

[13]  Viktor Vafeiadis,et al.  Modular Verification of Concurrency-Aware Linearizability , 2015, DISC.

[14]  Hagit Attiya,et al.  The Combinatorial Structure of Wait-Free Solvable Tasks , 2002, SIAM J. Comput..

[15]  Krzysztof Ziemianski,et al.  Spaces of directed paths on pre-cubical sets , 2017, Applicable Algebra in Engineering, Communication and Computing.

[16]  Hongseok Yang,et al.  Show No Weakness: Sequentially Consistent Specifications of TSO Libraries , 2012, DISC.

[17]  D. M. Hutton,et al.  The Art of Multiprocessor Programming , 2008 .

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

[19]  Michel Raynal,et al.  Power and limits of distributed computing shared memory models , 2013, Theor. Comput. Sci..

[20]  Michel Raynal,et al.  An impossibility about failure detectors in the iterated immediate snapshot model , 2008, Inf. Process. Lett..

[21]  Eli Gafni,et al.  Round-by-round fault detectors (extended abstract): unifying synchrony and asynchrony , 1998, PODC '98.

[22]  Eli Gafni Snapshot for Time: The One-Shot Case , 2014, ArXiv.

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

[24]  Shmuel Zaks,et al.  A Combinatorial Characterization of the Distributed 1-Solvable Tasks , 1990, J. Algorithms.

[25]  Gadi Taubenfeld Synchronization Algorithms and Concurrent Programming , 2006 .

[26]  Faith Ellen,et al.  Tight Bounds for Adopt-Commit Objects , 2013, Theory of Computing Systems.

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

[28]  Sergio Rajsbaum,et al.  The Complexity Gap between Consensus and Safe-Consensus - (Extended Abstract) , 2014, SIROCCO.

[29]  Michel Raynal,et al.  Concurrent Programming: Algorithms, Principles, and Foundations , 2012, Springer Berlin Heidelberg.

[30]  Soma Chaudhuri,et al.  More Choices Allow More Faults: Set Consensus Problems in Totally Asynchronous Systems , 1993, Inf. Comput..

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

[32]  Maurice Herlihy,et al.  Elements of Combinatorial Topology , 2014 .

[33]  Eli Gafni,et al.  Distributed Programming with Tasks , 2010, OPODIS.

[34]  Sam Toueg,et al.  Generalized Irreducibility of Consensus and the Equivalence of t-Resilient and Wait-Free Implementations of Consensus , 2004, SIAM J. Comput..

[35]  Rob J. van Glabbeek,et al.  On the expressiveness of higher dimensional automata , 2006, Theor. Comput. Sci..

[36]  Constantin Enea,et al.  On Reducing Linearizability to State Reachability , 2015, ICALP.

[37]  Shlomo Moran,et al.  Extended Impossibility Results for Asynchronous Complete Networks , 1987, Inf. Process. Lett..

[38]  Vaughan R. Pratt,et al.  Modeling concurrency with geometry , 1991, POPL '91.

[39]  Rachid Guerraoui,et al.  Speculative linearizability , 2012, PLDI.

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

[41]  Nancy A. Lynch,et al.  The BG distributed simulation algorithm , 2001, Distributed Computing.

[42]  Nir Shavit,et al.  On the Inherent Sequentiality of Concurrent Objects , 2012, SIAM J. Comput..

[43]  Michel Raynal,et al.  Generalized Symmetry Breaking Tasks and Nondeterminism in Concurrent Objects , 2016, SIAM J. Comput..

[44]  Eli Gafni,et al.  Recursion in Distributed Computing , 2010, SSS.

[45]  Seif Haridi,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[46]  Maurice Herlihy,et al.  The future(s) of shared data structures , 2014, PODC '14.

[47]  Yehuda Afek,et al.  Tight Group Renaming on Groups of Size g Is Equivalent to g-Consensus , 2009, DISC.

[48]  Dmytro Dziuma Survey on consistency conditions , 2014 .

[49]  Roy Friedman,et al.  On the composability of consistency conditions , 2003, Inf. Process. Lett..

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

[51]  Michel Raynal,et al.  Long-Lived Tasks , 2017, NETYS.

[52]  Hagit Attiya,et al.  Distributed computing - fundamentals, simulations, and advanced topics (2. ed.) , 2004, Wiley series on parallel and distributed computing.

[53]  Gil Neiger,et al.  Set-linearizability , 1994, PODC '94.

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

[55]  Constantin Enea,et al.  Monitoring refinement via symbolic reasoning , 2015, PLDI.

[56]  Constantin Enea,et al.  Tractable Refinement Checking for Concurrent Objects , 2015, POPL.