Scalable and Lock-Free Concurrent Dictionaries
Paper in proceedings, 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 lock-free or wait-free. Our algorithm is based on the randomized sequential list structure called Skiplist, and implements the full set of operations on a dictionary that is suitable for practical settings. In our performance evaluation we compare our algorithm with the most efficient non-blocking implementation of dictionaries known. The experimental results clearly show that our algorithm outperforms the other lock-free algorithm for dictionaries with realistic sizes, both on fully concurrent as well as pre-emptive systems.

shared memory

skip list

non-blocking

Concurrent

dictionary

Author

Håkan Sundell

Chalmers, Department of Computing Science, Distributed Computing and Systems

Philippas Tsigas

Chalmers, Department of Computing Science, Distributed Computing and Systems

Proceedings of the 19th ACM Symposium on Applied Computing

1438-1445

Subject Categories

Computer and Information Science

More information

Created

10/7/2017