TY - GEN
T1 - Practical concurrent traversals in search trees
AU - Drachsler-Cohen, Dana
AU - Vechev, Martin
AU - Yahav, Eran
N1 - Publisher Copyright: © 2018 Copyright held by the owner/author(s).
PY - 2018/2/10
Y1 - 2018/2/10
N2 - Operations of concurrent objects often employ optimistic concurrency-control schemes that consist of a traversal followed by a validation step. The validation checks if concurrent mutations interfered with the traversal to determine if the operation should proceed or restart. A fundamental challenge is to discover a necessary and sufficient validation check that has to be performed to guarantee correctness. In this paper, we show a necessary and sufficient condition for validating traversals in search trees. The condition relies on a new concept of succinct path snapshots, which are derived from and embedded in the structure of the tree. We leverage the condition to design a general lock-free membership test suitable for any search tree. We then show how to integrate the validation condition in update operations of (non-rebalancing) binary search trees, internal and external, and AVL trees. We experimentally show that our new algorithms outperform existing ones.
AB - Operations of concurrent objects often employ optimistic concurrency-control schemes that consist of a traversal followed by a validation step. The validation checks if concurrent mutations interfered with the traversal to determine if the operation should proceed or restart. A fundamental challenge is to discover a necessary and sufficient validation check that has to be performed to guarantee correctness. In this paper, we show a necessary and sufficient condition for validating traversals in search trees. The condition relies on a new concept of succinct path snapshots, which are derived from and embedded in the structure of the tree. We leverage the condition to design a general lock-free membership test suitable for any search tree. We then show how to integrate the validation condition in update operations of (non-rebalancing) binary search trees, internal and external, and AVL trees. We experimentally show that our new algorithms outperform existing ones.
KW - Concurrency
KW - Search Trees
UR - http://www.scopus.com/inward/record.url?scp=85044274737&partnerID=8YFLogxK
U2 - https://doi.org/10.1145/3178487.3178503
DO - https://doi.org/10.1145/3178487.3178503
M3 - منشور من مؤتمر
T3 - Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP
SP - 207
EP - 218
BT - PPoPP 2018 - Proceedings of the 23rd Principles and Practice of Parallel Programming
T2 - 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2018
Y2 - 24 February 2018 through 28 February 2018
ER -