Split-ordered lists: lock-free extensible hash tables

  • Authors:
  • Ori Shalev;Nir Shavit

  • Affiliations:
  • Tel-Aviv University;Tel-Aviv University

  • Venue:
  • Proceedings of the twenty-second annual symposium on Principles of distributed computing
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present the first lock-free implementation of an extensible hash table running on current architectures. It provides concurrent insert, delete, and search operations with an expected O(1) cost. It consists of very simple code, easily implementable using only load, store, and compare-and-swap operations. The new mathematical structure at the core of our algorithm is recursive split-ordering, a way of ordering elements in a linked list so that they can be repeatedly "split" using a single compare-and-swap operation. Empirical tests conducted on a large shared memory multiprocessor show that even in non-multiprogrammed environments, the new algorithm significantly outperforms the most efficient known lock-based algorithm at all concurrency levels, exhibiting up to four times higher throughput at peak load. The incremental nature of our algorithm makes it well suited for real-time applications, as it offers predictable performance without unexpected breaks for resizing.