Concurrent Lock-Free Unbounded Priority Queue with Mutable Priorities
International Symposium on Stabilizing, Safety, and Security of Distributed Systems
First page number:
Last page number:
The priority queue with DELETEMIN and INSERT operations is a classical interface for ordering items associated with priorities. Some important algorithms, such as Dijkstra’s single-source-shortest-path, Adaptive Huffman Trees, etc. also require changing the priorities of items in the runtime. Existing lock-free priority queues do not directly support the dynamic mutation of the priorities. This paper presents the first concurrent lock-free unbounded binary heap that implements a priority queue with mutable priorities. The operations are provably linearizable. We also designed an optimized version of the algorithm by combining the concurrent operations that substantially improves the performance. For experimental evaluation, we implemented the algorithm in both C/C++ and Java. A number of micro-benchmarks show that our algorithm performs well in comparison to existing implementations.
Datta, A. K.,
Concurrent Lock-Free Unbounded Priority Queue with Mutable Priorities.
International Symposium on Stabilizing, Safety, and Security of Distributed Systems, 2018