A Concurrency-Optimal Binary Search Tree
Vitaly Aksenov, Vincent Gramoli, Petr Kuznetsov, Anna Malova, and Srivatsan Ravi

TL;DR
This paper introduces a concurrency-optimal binary search tree that accepts all correct concurrent schedules, outperforming existing BSTs by using a novel locking scheme to maximize concurrency without sacrificing correctness.
Contribution
It presents the first concurrency-optimal BST implementation using a new read-write locking scheme that protects edges, enabling maximum accepted schedules.
Findings
Outperforms state-of-the-art BSTs on common workloads
Uses a novel locking scheme for edges and nodes
Maximizes accepted concurrent schedules
Abstract
The paper presents the first \emph{concurrency-optimal} implementation of a binary search tree (BST). The implementation, based on a standard sequential implementation of an internal tree, ensures that every \emph{schedule} is accepted, i.e., interleaving of steps of the sequential code, unless linearizability is violated. To ensure this property, we use a novel read-write locking scheme that protects tree \emph{edges} in addition to nodes. Our implementation outperforms the state-of-the art BSTs on most basic workloads, which suggests that optimizing the set of accepted schedules of the sequential code can be an adequate design principle for efficient concurrent data structures.
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 · Parallel Computing and Optimization Techniques · Distributed and Parallel Computing Systems
