skip to main content
research-article

Practical concurrent traversals in search trees

Published:10 February 2018Publication History
Skip Abstract Section

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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Maya Arbel and Adam Morrison. 2015. Predicate RCU: an RCU for scalable concurrent updates. In PPoPP '15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. R. Bayer and M. Schkolnick. 1977. Concurrency of operations on B-trees. Acta Informatica 9, 1 (1977). Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Michael A. Bender, Jeremy T. Fineman, Seth Gilbert, and Bradley C. Kuszmaul. 2005. Concurrent cache-oblivious b-trees. In SPAA '05. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Luc Bougé, Joaquim Gabarró, Xavier Messeguer, and Nicolas Schabanel. 1998. Height-relaxed AVL rebalancing: A unified, fine-grained approach to concurrent dictionaries. (1998).Google ScholarGoogle Scholar
  6. Anastasia Braginsky and Erez Petrank. 2012. A lock-free B+tree. In SPAA '12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Nathan G. Bronson, Jared Casper, Hassan Chafi, and Kunle Olukotun. 2010. A practical concurrent binary search tree. In PPoPP '10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Trevor Brown, Faith Ellen, and Eric Ruppert. 2014. A General Technique for Non-blocking Trees. In PPoPP '14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Tyler Crain, Vincent Gramoli, and Michel Raynal. 2013. A Contention-Friendly Binary Search Tree. In Euro-Par '13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Tudor David, Rachid Guerraoui, and Vasileios Trigonakis. 2015. Asynchronized Concurrency: The Secret to Scaling Concurrent Search Data Structures. In ASPLOS '15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Dana Drachsler, Martin Vechev, and Eran Yahav. 2014. Practical Concurrent Binary Search Trees via Logical Ordering. In PPoPP '14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Dana Drachsler-Cohen and Erez Petrank. 2014. LCD: Local Combining on Demand. In OPODIS '14.Google ScholarGoogle Scholar
  14. Faith Ellen, Panagiota Fatourou, Eric Ruppert, and Franck van Breugel. 2010. Non-blocking binary search trees. In PODC '10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Panagiota Fatourou and Nikolaos D. Kallimanis. 2011. A Highly-efficient Wait-free Universal Construction. In SPAA '11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Timothy L. Harris. 2001. A Pragmatic Implementation of Non-blocking Linked-Lists. In DISC '01. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Danny Hendler, Itai Incze, Nir Shavit, and Moran Tzafrir. 2010. Scalable Flat-Combining Based Synchronous Queues. In Distributed Computing. LNCS, Vol. 6343. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Maurice Herlihy. 1991. Wait-free Synchronization. ACM Trans. Program. Lang. Syst. 13 (1991). Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Shane V. Howley and Jeremy Jones. 2012. A non-blocking internal binary search tree. In SPAA '12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Zvi Kedem and Abraham Silberschatz. 1981. A characterization of database graphs admitting a simple locking protocol. Acta Informatica 16, 1 (1981). Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. A. Natarajan and N. Mittal. 2014. Fast Concurrent Lock-Free Binary Search Trees. In PPoPP '14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Nir Shavit. 2011. Data structures in the multicore age. Commun. ACM 54, 3 (2011). Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. V. Luchangco Y. Lev, M. Herlihy and N. Shavit. 2006. A Provably Correct Scalable Skiplist. In OPODIS '06.Google ScholarGoogle Scholar

Index Terms

  1. Practical concurrent traversals in search trees

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      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
      • 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

      Copyright © 2018 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 10 February 2018

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!