Concurrent Double-Ended Priority Queues
Panagiota Fatourou (1, 2), Eric Ruppert (3), Ioannis Xiradakis (1, 2) ((1) FORTH ICS, Greece, (2) University of Crete, Greece, (3) York University, Canada)

TL;DR
This paper introduces the first concurrent double-ended priority queue implementation, combining existing priority queues with a novel approach to support concurrent max and min extractions while maintaining lock-freedom.
Contribution
It presents a general method to add ExtractMax to concurrent priority queues and demonstrates a lock-free, dual-consumer DEPQ construction using linearizable single-consumer queues.
Findings
First concurrent DEPQ implementation.
Supports concurrent ExtractMax and ExtractMin operations.
Maintains lock-freedom in the construction.
Abstract
This work provides the first concurrent implementation specifically designed for a double-ended priority queue (DEPQ). We do this by describing a general way to add an ExtractMax operation to any concurrent priority queue that already supports Insert and ExtractMin operations. The construction uses two linearizable single-consumer priority queues to build a linearizable dual-consumer DEPQ (only one process can perform Extract operations at each end). This construction preserves lock-freedom. We then describe how to use a lock-based combining scheme to allow multiple consumers at each end of the DEPQ. To illustrate the technique, we apply it to a list-based priority queue.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
