A General Technique for Non-blocking Trees
Trevor Brown, Faith Ellen, Eric Ruppert

TL;DR
This paper introduces a general method for creating correct, non-blocking tree data structures using multi-word primitives, demonstrated through a non-blocking chromatic tree with competitive performance.
Contribution
The authors present a novel, general technique for non-blocking tree implementations using LLX, SCX, and VLX primitives, applicable to various tree structures.
Findings
Non-blocking chromatic tree implementation with O(c + log n) height.
Java implementation outperforms other concurrent dictionaries.
Technique applicable to a broad class of tree data structures.
Abstract
We describe a general technique for obtaining provably correct, non-blocking implementations of a large class of tree data structures where pointers are directed from parents to children. Updates are permitted to modify any contiguous portion of the tree atomically. Our non-blocking algorithms make use of the LLX, SCX and VLX primitives, which are multi-word generalizations of the standard LL, SC and VL primitives and have been implemented from single-word CAS. To illustrate our technique, we describe how it can be used in a fairly straightforward way to obtain a non-blocking implementation of a chromatic tree, which is a relaxed variant of a red-black tree. The height of the tree at any time is , where is the number of keys and is the number of updates in progress. We provide an experimental performance analysis which demonstrates that our Java implementation of…
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.
