# A Concurrency-Optimal Binary Search Tree

@article{Aksenov2017ACB,
title={A Concurrency-Optimal Binary Search Tree},
author={Vitaly Aksenov and Vincent Gramoli and Petr Kuznetsov and Anna Malova and Srivatsan Ravi},
journal={ArXiv},
year={2017},
volume={abs/1702.04441}
}
• Published 15 February 2017
• Computer Science
• ArXiv
The paper presents the first concurrency-optimal implementation of a binary search tree (BST). The implementation, based on a standard sequential implementation of a partially-external tree, ensures that every schedule, i.e., interleaving of steps of the sequential code, is accepted unless linearizability is violated. To ensure this property, we use a novel read-write locking protocol that protects tree edges in addition to its nodes.
5 Citations
Optimal Concurrency for List-Based Sets
• Computer Science
PaCT
• 2021
A new algorithm for the list-based set based on a value-aware try-lock is proposed that shows to achieve optimal concurrency: it only rejects concurrent schedules that violate correctness of the implemented set type.
Lock-Free Binary Search Tree Based on Leaf Search
• Computer Science
Int. J. Open Source Softw. Process.
• 2017
This article proposes a Binary Search Tree, CAS, Concurrent Data Structure, Lock-Free, and shows which can beeffectively reduced and reduced and the contention between between﻿the-update-of-the-systems and the-algorithm.
A Scalable and Energy-Efficient Concurrent Binary Search Tree With Fatnodes
• Computer Science
IEEE Transactions on Sustainable Computing
• 2020
A scalable and energy-efficient concurrent binary search tree with fatnodes (namely, FatCBST), and algorithms to perform basic operations on it, which scales well and also provides high performance-per-watt values as compared to the state-of-the-art implementations.
Dynamic Adaptations of Synchronization Granularity in Concurrent Data Structures
This dissertation proposes concurrent data structures that dynamically adapt their synchronization granularity and organization based on usage statistics collected at run-time and proposes a concurrent priority queue that dynamically changes its precision based on detected contention.
PaC-trees: supporting parallel and compressed purely-functional collections
• Computer Science
PLDI
• 2022
This paper presents PaC-trees, a purely-functional data structure supporting functional interfaces for sets, maps, and sequences that provides a significant reduction in space over existing approaches and designed CPAM, a C++ library that implements the full functionality of PAM, while offering significant extra functionality for compression.

## References

SHOWING 1-10 OF 34 REFERENCES
A Concurrency-Optimal List-Based Set
• Computer Science
ArXiv
• 2015
This paper proposes a new algorithm based on a versioned try-lock that shows to achieve optimal concurrency: it only rejects concurrent schedules that violate correctness of the implemented type and empirically shows that reaching optimality does not induce a signicant overhead.
Non-blocking binary search trees
• Computer Science
PODC
• 2010
This paper describes the first complete implementation of a non-blocking binary search tree in an asynchronous shared-memory system using single-word compare-and-swap operations. The implementation
A Contention-Friendly Binary Search Tree
• Computer Science
Euro-Par
• 2013
This paper proposes a new lock-based concurrent binary tree using a methodology for writing concurrent data structures. This methodology limits the high contention induced by today's multicore
Brief Announcement: A Concurrency-Optimal List-Based Set
• Computer Science
• 2015
Multicore applications require highly concurrent data structures and the algorithm that accepts all correct schedules would then be considered concurrency-optimal.
A practical concurrent binary search tree
• Computer Science
PPoPP '10
• 2010
Experimental evidence shows that the proposed concurrent relaxed balance AVL tree algorithm outperforms a highly tuned concurrent skip list for many access patterns, with an average of 39% higher single- threaded throughput and 32% higher multi-threaded throughput over a range of contention levels and operation mixes.
In the Search for Optimal Concurrency
• Computer Science
SIROCCO
• 2016
The concurrency properties of \emph{search} data structures which can be represented in the form of directed acyclic graphs exporting insert, delete and search operations are explored and it is proved, for the first time, that pessimistic andoptimistic implementations of search data-structures are incomparable in terms of concurrency.
A non-blocking internal binary search tree
• Computer Science
SPAA '12
• 2012
Experimental evidence shows this parallel binary search tree algorithm built using single-word reads, writes, and compare-and-swap to be fast when compared with alternative solutions and scalable to large numbers of concurrently executing threads.
Efficient lock-free binary search trees
• Computer Science
PODC '14
• 2014
This is the first algorithm for any concurrent tree data-structure in which the modify operations are performed with an additive term of contention measure, and it is proved that the presented algorithm is linearizable.
Practical concurrent binary search trees via logical ordering
• Computer Science
PPoPP '14
• 2014
The experimental results show that the algorithms with lock-free contains and on-time deletion are practical and often comparable to the state-of-the-art.
Brief announcement: From sequential to concurrent: correctness and relative efficiency
• Computer Science
PODC '12
• 2012
This work defines the meaning of a correct transformation of a sequential program into a concurrent one and model an execution of this transformation, which promises to make use of the hardware concurrency at low intellectual cost.