The 31st ACM Symposium on Parallelism in Algorithms and Architectures 2019
DOI: 10.1145/3323165.3323197
|View full text |Cite
|
Sign up to set email alerts
|

Persistent Non-Blocking Binary Search Trees Supporting Wait-Free Range Queries

Abstract: This paper presents the first implementation of a search tree data structure in an asynchronous shared-memory system that provides a wait-free algorithm for executing range queries on the tree, in addition to non-blocking algorithms for Insert, Delete and Find, using single-word Compareand-Swap (CAS). The implementation is linearizable and tolerates any number of crash failures.Insert and Delete operations that operate on different parts of the tree run fully in parallel (without any interference with one anot… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

0
7
0

Year Published

2019
2019
2024
2024

Publication Types

Select...
5
3
1

Relationship

1
8

Authors

Journals

citations
Cited by 24 publications
(7 citation statements)
references
References 43 publications
(57 reference statements)
0
7
0
Order By: Relevance
“…Fatourou, Papavasileiou and Ruppert [20] used multiversioning to add range queries to a search tree [18]. Wei et al [48] generalized this approach (and made it more efficient) to support wait-free queries on a large class of lock-free data structures.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Fatourou, Papavasileiou and Ruppert [20] used multiversioning to add range queries to a search tree [18]. Wei et al [48] generalized this approach (and made it more efficient) to support wait-free queries on a large class of lock-free data structures.…”
Section: Related Workmentioning
confidence: 99%
“…Supporting multiple "historical" versions of data, often called multiversioning or multiversion concurrency control, is a powerful technique widely used in database systems [41,9,37,31,35,50], transactional memory [39,21,38,30,28], and shared data structures [7,20,34,48]. This approach allows complex queries (read-only transactions) to proceed concurrently with updates while still appearing atomic because they get data views that are consistent with a single point in time.…”
Section: Introductionmentioning
confidence: 99%
“…However, they are not work-efficient, requiring O(m log n) work. There is also previous work focusing on I/O efficiency [15] and concurrent operations [37,57] for parallel trees, and parallel data structures supporting batches [4,64,78]. Some previous algorithms achieve optimal work and polylogarithmic span.…”
Section: Background and Related Workmentioning
confidence: 99%
“…This may also require the programmer to reprove the data structure's progress guarantees [11]. Additionally, it is not clear how HPs could be used with data structures that allow threads to traverse pointers in unlinked records [11], and there are many examples of such data structures, e.g., [1,8,10,19,21,23,27,31,32,34] [opposing P5]. (In such data structures, a search can potentially pass through many unlinked records, and yet end up back in the data structure, at the appropriate location.…”
Section: Related Workmentioning
confidence: 99%