Decidability of linearizabilities for relaxed data structures

Many recent implementations of concurrent data structures relaxed their linearizability requirements for better performance and scalability. Quasi-linearizability, k-linearizability and regular-relaxed linearizability are three quantitative relaxation variants of linearizability that have been proposed as correctness conditions of relaxed data structures, yet preserving the intuition of linearizability. Quasi-linearizability has been proved undecidable. In this paper, we first show that k-linearizability is undecidable for a bounded number of processes, by reducing quasi-linearizability into it. We then show that regular-relaxed linearizability is decidable for a bounded number of processes. We also find that the number of the states of a relaxed specification is exponential to the number of the states of the underlying specification automaton (representing its relaxation strategy), and polynomial to the number of the states of the underlying quantitative sequential specification and the number of operations.

[1]  Yanhong A. Liu,et al.  Verifying Linearizability via Optimized Refinement Checking , 2013, IEEE Transactions on Software Engineering.

[2]  Chao Wang,et al.  Bounded TSO-to-SC Linearizability Is Decidable , 2016, SOFSEM.

[3]  Ana Sokolova,et al.  Distributed queues in shared memory: multicore performance and scalability through quantitative relaxation , 2013, CF '13.

[4]  Sebastian Burckhardt,et al.  Line-up: a complete and automatic linearizability checker , 2010, PLDI '10.

[5]  Viktor Vafeiadis Automatically Proving Linearizability , 2010, CAV.

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

[7]  Yehuda Afek,et al.  Quasi-Linearizability: Relaxed Consistency for Improved Concurrency , 2010, OPODIS.

[8]  Chao Wang,et al.  Round-up: Runtime checking quasi linearizability of concurrent data structures , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[9]  Chao Wang,et al.  Decomposable Relaxation for Concurrent Data Structures , 2017, SOFSEM.

[10]  Ana Sokolova,et al.  Performance, Scalability, and Semantics of Concurrent FIFO Queues , 2012, ICA3PP.

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

[12]  Yang Liu,et al.  Verifying a quantitative relaxation of linearizability via refinement , 2015, International Journal on Software Tools for Technology Transfer.

[13]  Jad Hamza On the complexity of linearizability , 2018, Computing.

[14]  Swarat Chaudhuri,et al.  Model Checking of Linearizability of Concurrent List Implementations , 2010, CAV.

[15]  Constantin Enea,et al.  Verifying Concurrent Programs against Sequential Specifications , 2013, ESOP.

[16]  Jesper Larsson Träff,et al.  Data structures for task-based priority scheduling , 2013, PPoPP '14.

[17]  Eran Yahav,et al.  Comparison Under Abstraction for Verifying Linearizability , 2007, CAV.

[18]  Roman Manevich,et al.  Thread Quantification for Concurrent Shape Analysis , 2008, CAV.

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

[20]  Ana Sokolova,et al.  Quantitative relaxation of concurrent data structures , 2013, POPL.

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

[22]  Christoph M. Kirsch,et al.  Fast and Scalable, Lock-Free k-FIFO Queues , 2013, PaCT.