Concurrent Access Algorithms for Different Data Structures: A Research Review

Algorithms for concurrent data structure have gained attention in recent years as multi-core processors have become ubiquitous. Several features of shared-memory multiprocessors make concurrent data structures significantly more difficult to design and to verify as correct than their sequential counterparts. The primary source of this additional difficulty is concurrency. This paper provides an overview of the some concurrent access algorithms for different data structures.

[1]  Maurice Herlihy,et al.  A Methodology for Implementing Highly Concurrent Data Objects , 1992, OPSR.

[2]  James C. Browne,et al.  Simultaneous Update of Priority Structures , 1987, ICPP.

[3]  S. B. Yao,et al.  Efficient locking for concurrent operations on B-trees , 1981, TODS.

[4]  Maged M. Michael,et al.  High performance dynamic lock-free hash tables and list-based sets , 2002, SPAA '02.

[5]  Nir Shavit,et al.  Elimination Trees and the Construction of Pools and Stacks , 1997, Theory of Computing Systems.

[6]  John D. Valois Lock-free linked lists using compare-and-swap , 1995, PODC '95.

[7]  Dennis Shasha,et al.  Locking without blocking: making lock based concurrent data structure algorithms nonblocking , 1992, PODS '92.

[8]  Mark Moir,et al.  Using elimination to implement scalable and lock-free FIFO queues , 2005, SPAA '05.

[9]  H. T. Kung,et al.  Concurrent manipulation of binary search trees , 1980, TODS.

[10]  Theodore Johnson,et al.  A Highly Concurrent Priority Queue Based on the B-link Tree , 1991 .

[11]  Maurice Herlihy,et al.  A methodology for implementing highly concurrent data objects , 1993, TOPL.

[12]  William Pugh,et al.  Skip Lists: A Probabilistic Alternative to Balanced Trees , 1989, WADS.

[13]  Philippas Tsigas,et al.  NOBLE : A Non-Blocking Inter-Process Communication Library , 2002 .

[14]  Dennis Shasha,et al.  A Symmetric Concurrent B-Tree Algorithm , 2011, Fall Joint Computer Conference.

[15]  Rassul Ayani,et al.  LR-algorithm: concurrent operations on priority queues , 1990, Proceedings of the Second IEEE Symposium on Parallel and Distributed Processing 1990.

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

[17]  John D. Valois Implementing Lock-Free Queues , 1994 .

[18]  Michael L. Scott,et al.  Algorithms for scalable synchronization on shared-memory multiprocessors , 1991, TOCS.

[19]  Yehoshua Sagiv Concurrent Operations on B*-Trees with Overtaking , 1986, J. Comput. Syst. Sci..

[20]  W. E. Weihl,et al.  An evaluation of concurrent priority queue algorithms , 1991, Proceedings of the Third IEEE Symposium on Parallel and Distributed Processing.

[21]  Yi Zhang,et al.  Integrating non-blocking synchronisation in parallel applications: performance advantages and methodologies , 2002, WOSP '02.

[22]  David R. Cheriton,et al.  Non-blocking synchronization and system design , 1999 .

[23]  Timothy L. Harris,et al.  A Pragmatic Implementation of Non-blocking Linked-Lists , 2001, DISC.

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

[25]  Srinivasan Parthasarathy,et al.  An Efficient Algorithm for Concurrent Priority Queue Heaps , 1996, Inf. Process. Lett..

[26]  William Pugh,et al.  Concurrent maintenance of skip lists , 1990 .

[27]  Vipin Kumar,et al.  Concurrent Access of Priority Queues , 1988, IEEE Trans. Computers.

[28]  Maged M. Michael,et al.  Simple, fast, and practical non-blocking and blocking concurrent queue algorithms , 1996, PODC '96.

[29]  Nir Shavit,et al.  A scalable lock-free stack algorithm , 2010, J. Parallel Distributed Comput..