Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3178487.3178503acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
research-article

Practical concurrent traversals in search trees

Published: 10 February 2018 Publication History

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.

References

[1]
Maya Arbel and Hagit Attiya. 2014. Concurrent updates with RCU: search tree as an example. In PODC '14.
[2]
Maya Arbel and Adam Morrison. 2015. Predicate RCU: an RCU for scalable concurrent updates. In PPoPP '15.
[3]
R. Bayer and M. Schkolnick. 1977. Concurrency of operations on B-trees. Acta Informatica 9, 1 (1977).
[4]
Michael A. Bender, Jeremy T. Fineman, Seth Gilbert, and Bradley C. Kuszmaul. 2005. Concurrent cache-oblivious b-trees. In SPAA '05.
[5]
Luc Bougé, Joaquim Gabarró, Xavier Messeguer, and Nicolas Schabanel. 1998. Height-relaxed AVL rebalancing: A unified, fine-grained approach to concurrent dictionaries. (1998).
[6]
Anastasia Braginsky and Erez Petrank. 2012. A lock-free B+tree. In SPAA '12.
[7]
Nathan G. Bronson, Jared Casper, Hassan Chafi, and Kunle Olukotun. 2010. A practical concurrent binary search tree. In PPoPP '10.
[8]
Trevor Brown, Faith Ellen, and Eric Ruppert. 2014. A General Technique for Non-blocking Trees. In PPoPP '14.
[9]
Tyler Crain, Vincent Gramoli, and Michel Raynal. 2013. A Contention-Friendly Binary Search Tree. In Euro-Par '13.
[10]
Tudor David, Rachid Guerraoui, and Vasileios Trigonakis. 2015. Asynchronized Concurrency: The Secret to Scaling Concurrent Search Data Structures. In ASPLOS '15.
[11]
Simon Doherty, David L. Detlefs, Lindsay Groves, Christine H. Flood, Victor Luchangco, Paul A. Martin, Mark Moir, Nir Shavit, and Guy L. Steele, Jr. 2004. DCAS is Not a Silver Bullet for Nonblocking Algorithm Design. In SPAA '04.
[12]
Dana Drachsler, Martin Vechev, and Eran Yahav. 2014. Practical Concurrent Binary Search Trees via Logical Ordering. In PPoPP '14.
[13]
Dana Drachsler-Cohen and Erez Petrank. 2014. LCD: Local Combining on Demand. In OPODIS '14.
[14]
Faith Ellen, Panagiota Fatourou, Eric Ruppert, and Franck van Breugel. 2010. Non-blocking binary search trees. In PODC '10.
[15]
K. P. Eswaran, J. N. Gray, R. A. Lorie, and I. L. Traiger. 1976. The Notions of Consistency and Predicate Locks in a Database System. Commun. ACM 19, 11 (1976).
[16]
Panagiota Fatourou and Nikolaos D. Kallimanis. 2011. A Highly-efficient Wait-free Universal Construction. In SPAA '11.
[17]
Vincent Gramoli. 2015. More Than You Ever Wanted to Know About Synchronization: Synchrobench, Measuring the Impact of the Synchronization on Concurrent Algorithms. In PPoPP 2015.
[18]
Timothy L. Harris. 2001. A Pragmatic Implementation of Non-blocking Linked-Lists. In DISC '01.
[19]
Steve Heller, Maurice Herlihy, Victor Luchangco, Mark Moir, Bill Scherer, and Nir Shavit. 2005. A Lazy Concurrent List-based Set Algorithm. In OPODIS '05.
[20]
Danny Hendler, Itai Incze, Nir Shavit, and Moran Tzafrir. 2010. Scalable Flat-Combining Based Synchronous Queues. In Distributed Computing. LNCS, Vol. 6343.
[21]
Maurice Herlihy. 1991. Wait-free Synchronization. ACM Trans. Program. Lang. Syst. 13 (1991).
[22]
Shane V. Howley and Jeremy Jones. 2012. A non-blocking internal binary search tree. In SPAA '12.
[23]
Saurabh Kalikar and Rupesh Nasre. 2016. DomLock: A New Multi-granularity Locking Technique for Hierarchies. In Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP '16).
[24]
Zvi Kedem and Abraham Silberschatz. 1981. A characterization of database graphs admitting a simple locking protocol. Acta Informatica 16, 1 (1981).
[25]
A. Natarajan and N. Mittal. 2014. Fast Concurrent Lock-Free Binary Search Trees. In PPoPP '14.
[26]
Nir Shavit. 2011. Data structures in the multicore age. Commun. ACM 54, 3 (2011).
[27]
V. Luchangco Y. Lev, M. Herlihy and N. Shavit. 2006. A Provably Correct Scalable Skiplist. In OPODIS '06.

Cited By

View all
  • (2021)Verifying concurrent multicopy search structuresProceedings of the ACM on Programming Languages10.1145/34854905:OOPSLA(1-32)Online publication date: 20-Oct-2021
  • (2021)Verifying concurrent multicopy search structuresProceedings of the ACM on Programming Languages10.1145/34854905:OOPSLA(1-32)Online publication date: 15-Oct-2021

Index Terms

  1. Practical concurrent traversals in search trees

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    PPoPP '18: Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
    February 2018
    442 pages
    ISBN:9781450349826
    DOI:10.1145/3178487
    • cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 53, Issue 1
      PPoPP '18
      January 2018
      426 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/3200691
      Issue’s Table of Contents
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 10 February 2018

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. concurrency
    2. search trees

    Qualifiers

    • Research-article

    Conference

    PPoPP '18

    Acceptance Rates

    Overall Acceptance Rate 230 of 1,014 submissions, 23%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)20
    • Downloads (Last 6 weeks)4
    Reflects downloads up to 18 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2021)Verifying concurrent multicopy search structuresProceedings of the ACM on Programming Languages10.1145/34854905:OOPSLA(1-32)Online publication date: 20-Oct-2021
    • (2021)Verifying concurrent multicopy search structuresProceedings of the ACM on Programming Languages10.1145/34854905:OOPSLA(1-32)Online publication date: 15-Oct-2021

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media