Practical concurrent traversals in search trees

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

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.

Original languageEnglish
Title of host publicationPPoPP 2018 - Proceedings of the 23rd Principles and Practice of Parallel Programming
Pages207-218
Number of pages12
ISBN (Electronic)9781450349826
DOIs
StatePublished - 10 Feb 2018
Event23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2018 - Vienna, Austria
Duration: 24 Feb 201828 Feb 2018

Publication series

NameProceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP

Conference

Conference23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2018
Country/TerritoryAustria
CityVienna
Period24/02/1828/02/18

Keywords

  • Concurrency
  • Search Trees

All Science Journal Classification (ASJC) codes

  • Software

Fingerprint

Dive into the research topics of 'Practical concurrent traversals in search trees'. Together they form a unique fingerprint.

Cite this