Distributionally Linearizable Data Structures

Relaxed concurrent data structures have become increasingly popular, due to their scalability in graph processing and machine learning applications (\citeNguyen13, gonzalez2012powergraph ). Despite considerable interest, there exist families of natural, high performing randomized relaxed concurrent data structures, such as the popular MultiQueue~\citeMQ pattern for implementing relaxed priority queue data structures, for which no guarantees are known in the concurrent setting~\citeAKLN17. Our main contribution is in showing for the first time that, under a set of analytic assumptions, a family of relaxed concurrent data structures, including variants of MultiQueues, but also a new approximate counting algorithm we call the MultiCounter, provides strong probabilistic guarantees on the degree of relaxation with respect to the sequential specification, in arbitrary concurrent executions. We formalize these guarantees via a new correctness condition called distributional linearizability, tailored to concurrent implementations with randomized relaxations. Our result is based on a new analysis of an asynchronous variant of the classic power-of-two-choices load balancing algorithm, in which placement choices can be based on inconsistent, outdated information (this result may be of independent interest). We validate our results empirically, showing that the MultiCounter algorithm can implement scalable relaxed timestamps.

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

[2]  Richard M. Karp,et al.  Randomized parallel algorithms for backtrack search and branch-and-bound computation , 1993, JACM.

[3]  Peter Sanders,et al.  Randomized Priority Queues for Fast Parallel Access , 1998, J. Parallel Distributed Comput..

[4]  Hagit Attiya,et al.  Distributed Computing: Fundamentals, Simulations and Advanced Topics , 1998 .

[5]  Eli Upfal,et al.  Balanced Allocations , 1999, SIAM J. Comput..

[6]  Michael Mitzenmacher,et al.  How Useful Is Old Information? , 2000, IEEE Trans. Parallel Distributed Syst..

[7]  Nir Shavit,et al.  Skiplist-based concurrent priority queues , 2000, Proceedings 14th International Parallel and Distributed Processing Symposium. IPDPS 2000.

[8]  Berthold Vöcking,et al.  Balanced allocations: the heavily loaded case , 2000, STOC '00.

[9]  Marcin Paprzycki,et al.  Distributed Computing: Fundamentals, Simulations and Advanced Topics , 2001, Scalable Comput. Pract. Exp..

[10]  Ramesh K. Sitaraman,et al.  The power of two random choices: a survey of tech-niques and results , 2001 .

[11]  Narsingh Deo,et al.  Parallel heap: An optimal parallel priority queue , 2004, The Journal of Supercomputing.

[12]  Nir Shavit,et al.  Transactional Locking II , 2006, DISC.

[13]  Kunal Talwar,et al.  Balanced allocations: the weighted case , 2007, STOC '07.

[14]  Zengjian Hu,et al.  On weighted balls-into-bins games , 2005, Theor. Comput. Sci..

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

[16]  Idit Keidar,et al.  CAFÉ: Scalable Task Pools with Adjustable Fairness and Contention , 2011, DISC.

[17]  Artur Czumaj,et al.  Multiple-Choice Balanced Allocation in (Almost) Parallel , 2012, APPROX-RANDOM.

[18]  Joseph Gonzalez,et al.  PowerGraph: Distributed Graph-Parallel Computation on Natural Graphs , 2012, OSDI.

[19]  Keshav Pingali,et al.  A lightweight infrastructure for graph analytics , 2013, SOSP.

[20]  Quantitative relaxation of concurrent data structures , 2013, POPL.

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

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

[23]  Mark Moir,et al.  Scalable statistics counters , 2013, PPoPP '13.

[24]  Christoph Lenzen,et al.  Tight bounds for parallel randomized load balancing , 2011, Distributed Computing.

[25]  Dan Alistarh,et al.  Tight Bounds for Asynchronous Renaming , 2014, J. ACM.

[26]  The SprayList: a scalable relaxed priority queue , 2015, PPOPP.

[27]  Peter Sanders,et al.  MultiQueues: Simple Relaxed Concurrent Priority Queues , 2015, SPAA.

[28]  Jesper Larsson Träff,et al.  The lock-free k-LSM relaxed priority queue , 2015, PPOPP.

[29]  Keshav Pingali,et al.  Priority Queues Are Not Good Concurrent Priority Schedulers , 2015, Euro-Par.

[30]  The lock-free k-LSM relaxed priority queue , 2015, PPOPP.

[31]  Dan Alistarh,et al.  The SprayList: a scalable relaxed priority queue , 2015, PPoPP.

[32]  Kunal Talwar,et al.  Graphical balanced allocations and the (1 + β)‐choice process , 2015, Random Struct. Algorithms.

[33]  Dan Alistarh,et al.  The Power of Choice in Priority Scheduling , 2017, PODC.

[34]  Christoph Lenzen,et al.  Parallel Balanced Allocations: The Heavily Loaded Case , 2019, SPAA.