PathCAS: An Efficient Middle Ground for Concurrent Search Data Structures

12/19/2022
by   Trevor Brown, et al.
0

To maximize the performance of concurrent data structures, researchers have often turned to highly complex fine-grained techniques, resulting in efficient and elegant algorithms, which can however be often difficult to understand and prove correct. While simpler techniques exist, such as transactional memory, they can have limited performance or portability relative to their fine-grained counterparts. Approaches at both ends of this complexity-performance spectrum have been extensively explored, but relatively less is known about the middle ground: approaches that are willing to sacrifice some performance for simplicity, while remaining competitive with state-of-the-art handcrafted designs. In this paper, we explore this middle ground, and present PathCAS, a primitive that combines ideas from multi-word CAS (KCAS) and transactional memory approaches, while carefully avoiding overhead. We show how PathCAS can be used to implement efficient search data structures relatively simply, using an internal binary search tree as an example, then extending this to an AVL tree. Our best implementations outperform many handcrafted search trees: in search-heavy workloads, it rivals the BCCO tree [5], the fastest known concurrent binary tree in terms of search performance [3]. Our results suggest that PathCAS can yield concurrent data structures that are relatively easy to build and prove correct, while offering surprisingly high performance.

READ FULL TEXT

page 10

page 26

page 27

page 28

page 29

page 30

page 31

research
07/26/2021

Overview of Bachelors Theses 2021

In this work, we review Bachelors Theses done under the supervision of V...
research
05/18/2023

Benchmark Framework with Skewed Workloads

In this work, we present a new benchmarking suite with new real-life ins...
research
03/16/2020

Adapting Persistent Data Structures for Concurrency and Speculation

This work unifies insights from the systems and functional programming c...
research
05/31/2019

Tracking in Order to Recover: Recoverable Lock-Free Data Structures

We present the tracking approach for deriving recoverable implementation...
research
07/23/2020

Recursive Variable-Length State Compression for Multi-Core Software Model Checking

High-performance multi-core software typically uses concurrent data stru...
research
09/12/2021

Verifying Concurrent Multicopy Search Structures

Multicopy search structures such as log-structured merge (LSM) trees are...
research
12/27/2022

Practically and Theoretically Efficient Garbage Collection for Multiversioning

Multiversioning is widely used in databases, transactional memory, and c...

Please sign up or login with your details

Forgot password? Click here to reset