Practical Concurrent Priority Queues
Jakob Gruber

TL;DR
This paper reviews practical approaches to implementing concurrent priority queues, focusing on lock-free, fine-grained locking, SkipLists, and relaxed data structures to improve scalability in multiprocessor environments.
Contribution
It provides an overview of three major ideas—fine-grained locking, SkipLists, and relaxed data structures—for designing scalable concurrent priority queues.
Findings
Lock-free structures avoid blocking and improve scalability.
SkipLists enable efficient search without complex reorganization.
Relaxed data structures trade accuracy for performance.
Abstract
Priority queues are abstract data structures which store a set of key/value pairs and allow efficient access to the item with the minimal (maximal) key. Such queues are an important element in various areas of computer science such as algorithmics (i.e. Dijkstra's shortest path algorithm) and operating system (i.e. priority schedulers). The recent trend towards multiprocessor computing requires new implementations of basic data structures which are able to be used concurrently and scale well to a large number of threads. In particular, lock-free structures promise superior scalability by avoiding the use of blocking synchronization primitives. Concurrent priority queues have been extensively researched over the past decades. In this paper, we discuss three major ideas within the field: fine-grained locking employs multiple locks to avoid a single bottleneck within the 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.
Taxonomy
TopicsDistributed systems and fault tolerance · Real-Time Systems Scheduling · Advanced Queuing Theory Analysis
