Scalable and lock-free concurrent dictionaries

@inproceedings{Sundell2004ScalableAL,
  title={Scalable and lock-free concurrent dictionaries},
  author={H{\aa}kan Sundell and Philippas Tsigas},
  booktitle={SAC '04},
  year={2004}
}
We present an efficient and practical lock-free implementation of a concurrent dictionary that is suitable for both fully concurrent (large multi-processor) systems as well as pre-emptive (multi-process) systems. Many algorithms for concurrent dictionaries are based on mutual exclusion. However, mutual exclusion causes blocking which has several drawbacks and degrades the system's overall performance. Non-blocking algorithms avoid blocking, and are either lockfree or wait-free. Our algorithm is… 

Figures from this paper

Fast and lock-free concurrent priority queues for multi-thread systems
  • Håkan Sundell, P. Tsigas
  • Computer Science
    Proceedings International Parallel and Distributed Processing Symposium
  • 2003
We present an efficient and practical lock-free implementation of a concurrent priority queue that is suitable for both fully concurrent (large multi-processor) systems as well as pre-emptive
Lock-free deques and doubly linked lists
Lock-free dynamic hash tables with open addressing
TLDR
An efficient lock-free algorithm for parallel accessible hash tables with open addressing, which promises more robust performance and reliability than conventional lock-based implementations and turned to the interactive theorem prover PVS for mechanical support.
Fast concurrent lock-free binary search trees
TLDR
A new lock-free algorithm for concurrent manipulation of a binary search tree in an asynchronous shared memory system that supports search, insert and delete operations and significantly outperforms all other algorithms for a concurrent binarysearch tree in many cases.
Lock-free linked lists and skip lists
TLDR
This work presents a new lock-free implementation of singly-linked lists that uses backlinks that are set when a node is deleted so that concurrent operations visiting the deleted node can recover and proves that the worst-case amortized cost of the operations is linear in the length of the list plus the contention.
Concurrent programming without locks
TLDR
This article presents three APIs which make it easier to develop nonblocking implementations of arbitrary data structures, and compares the performance of the resulting implementations against one another and against high-performance lock-based systems.
Ju l 2 00 4 Non-blocking Dynamic Hash Tables – 1 Non-blocking Dynamic Hash Tables with Open Addressing
  • Gao
  • Computer Science
  • 2004
TLDR
An efficient non-blocking algorithm for parallel accessible hash tables with open addressing, which promises more robust performance and reliability than conventional lock-based implementations and turns to the interactive theorem prover PVS for mechanical support.
Analysis of Amortized Time Complexity of Concurrent Binary Search Tree
TLDR
A modification to the non-blocking BST implementation of Ellen et al. and an analysis of the modified implementation’s amortized time complexity are presented.
Lock-Free Red-Black Trees Using CAS
TLDR
This paper describes the implementation of efficient lock-free algorithms for operating on a type of balanced binary search tree — red-black trees that require only the widely available CAS (Compare And Swap) synchronization primitive.
A Contention-Friendly, Non-Blocking Skip List
This paper presents a new non-blocking skip list algorithm. The algorithm alleviates contention by localizing synchronization at the least contended part of the structure without altering consistency
...
...

References

SHOWING 1-10 OF 22 REFERENCES
Fast and lock-free concurrent priority queues for multi-thread systems
  • Håkan Sundell, P. Tsigas
  • Computer Science
    Proceedings International Parallel and Distributed Processing Symposium
  • 2003
We present an efficient and practical lock-free implementation of a concurrent priority queue that is suitable for both fully concurrent (large multi-processor) systems as well as pre-emptive
High performance dynamic lock-free hash tables and list-based sets
TLDR
The experimental results show that the new algorithm outperforms the best known lock-free as well as lock-based hash table implementations by significant margins, and indicate that it is the algorithm of choice for implementing shared hash tables.
Practical lock-freedom
TLDR
This dissertation introduces and evaluates practical abstractions and data structures that facilitate the development of large-scale lock-free systems and presents an implementation of two useful abstractions that make it easier to develop arbitrary lock- free data structures.
Lock-free linked lists and skip lists
TLDR
This work presents a new lock-free implementation of singly-linked lists that uses backlinks that are set when a node is deleted so that concurrent operations visiting the deleted node can recover and proves that the worst-case amortized cost of the operations is linear in the length of the list plus the contention.
Lock-free data structures
TLDR
This thesis presents lock-free data structures, algorithms, and memory management techniques for several common abstract data types that are as efficient, if not more so, than conventional approaches, and thus provide a practical alternative to using spin locks.
Wait-free data structures in the asynchronous PRAM model
TLDR
This paper gives an algebraic characterization of a large class of objects that do have wait-free implementations in asynchronous PRAM, as well as a general algorithm for implementing them.
Wait-free synchronization
TLDR
A hierarchy of objects is derived such that no object at one level has a wait-free implementation in terms of objects at lower levels, and it is shown that atomic read/write registers, which have been the focus of much recent attention, are at the bottom of the hierarchy.
Evaluating the performance of non-blocking synchronization on shared-memory multiprocessors
TLDR
The goal of this work was to provide an in depth understanding of how non-blocking can improve the performance of modern parallel applications by using the general translations that are provided in this paper.
Correction of a Memory Management Method for Lock-Free Data Structures
TLDR
There are race conditions that may corrupt data structure that use Valois' memory management method, which solves the ABA problem for acyclic link-based data structures, and allows lock-free algorithms more flexibility as nodes are not required to be freed immediately after a delete operation.
Integrating non-blocking synchronisation in parallel applications: performance advantages and methodologies
TLDR
The results obtained show that for many applications, non-blocking synchronisation lead to significant speedups for a fairly large number of processors, while it never slows the applications down.
...
...