Mounds: Array-Based Concurrent Priority Queues

Yujie Liu,Michael Spear
DOI: https://doi.org/10.1109/ICPP.2012.42
2012-01-01
Abstract:This paper introduces a concurrent data structure called the mound. The mound is a rooted tree of sorted lists that relies on randomization for balance. It supports O(log(log(N))) insert and O(log(N)) extract Min operations, making it suitable for use as a priority queue. We present two mound algorithms: the first achieves lock freedom via the use of a pure-software double-compare-and-swap (DCAS), and the second uses fine grained locks. Mounds perform well in practice, and support novel operations that we expect to be useful in parallel applications, such as extract Many and probabilistic extract Min.
What problem does this paper attempt to address?