Concurrent lock-free unbounded priority queue with mutable priorities
Paper in proceedings, 2018

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.

Linearizability

Priority-queue

Heap

Elimination

Concurrent heap

Lock-free

Author

Ivan Walulya

Chalmers, Computer Science and Engineering (Chalmers), Networks and Systems (Chalmers)

Bapi Chatterjee

IBM India Research Laboratory

Ajoy K. Datta

University of Nevada, Las Vegas

Rashmi Niyolia

University of Nevada, Las Vegas

Philippas Tsigas

Chalmers, Computer Science and Engineering (Chalmers), Networks and Systems (Chalmers)

Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

03029743 (ISSN) 16113349 (eISSN)

Vol. 11201 LNCS 365-380

20th International Symposium on Stabilization, Safety, and Security of Distributed Systems, SSS 2018
Tokyo, Japan,

Subject Categories

Computer Engineering

Signal Processing

Computer Science

DOI

10.1007/978-3-030-03232-6_24

More information

Latest update

1/9/2019 3