2020
DOI: 10.1145/3428196
|View full text |Cite
|
Sign up to set email alerts
|

Proving highly-concurrent traversals correct

Abstract: Modern highly-concurrent search data structures, such as search trees, obtain multi-core scalability and performance by having operations traverse the data structure without any synchronization. As a result, however, these algorithms are notoriously difficult to prove linearizable, which requires identifying a point in time in which the traversal's result is correct. The problem is that traversing the data structure as it undergoes modifications leads to complex behaviors, necessitating intricate reasoning abo… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1

Citation Types

0
4
0

Year Published

2021
2021
2023
2023

Publication Types

Select...
3
2
1
1

Relationship

0
7

Authors

Journals

citations
Cited by 9 publications
(4 citation statements)
references
References 67 publications
0
4
0
Order By: Relevance
“…We assume that it is abstracted with the postcondition at line 3 in insert stating that y is the successor of x, the input k is in between x.key and y.key, and that at some point between the invocation of the operation and "now", x resides on a valid search path for k that starts at the head of the list, denoted as ⋅ head k → x. Recent work [9,10] shows that this postcondition can be derived easily by showing that roughly, list nodes are never updated once they become unreachable. Therefore, the implementations of insert and delete are as follows:…”
Section: E Layers Of the List Setmentioning
confidence: 99%
“…We assume that it is abstracted with the postcondition at line 3 in insert stating that y is the successor of x, the input k is in between x.key and y.key, and that at some point between the invocation of the operation and "now", x resides on a valid search path for k that starts at the head of the list, denoted as ⋅ head k → x. Recent work [9,10] shows that this postcondition can be derived easily by showing that roughly, list nodes are never updated once they become unreachable. Therefore, the implementations of insert and delete are as follows:…”
Section: E Layers Of the List Setmentioning
confidence: 99%
“…There has been a great deal of work on linearizability verification [15][16][17][18][19][20][21][22][23][24][25][26][27][28][29][30][31][32][33][34]. However, proving linearizability of sophisticated concurrent data structures is still challenging.…”
Section: Related Work and Conclusionmentioning
confidence: 99%
“…Moreover, searches have fixed linearization points. This structure can therefore be handled, in principle, using the single-copy framework of Krishna et al [2020a] (by building on the formalization of the RCU semantics developed in [Gotsman et al 2013] and the high-level proof idea for the Citrus tree of Feldman et al [2020]).…”
Section: Related Workmentioning
confidence: 99%
“…Several other works present generic proof arguments for verifying concurrent traversals of search structures that involve dynamic linearization points [Drachsler-Cohen et al 2018;Feldman et al 2018Feldman et al , 2020O'Hearn et al 2010]. However, these approaches focus on single-copy structures and rely on global reasoning based on graph reachability.…”
Section: Related Workmentioning
confidence: 99%