skip to main content
research-article
Public Access

Improving efficacy of internal binary search trees using local recovery

Published:27 February 2016Publication History
Skip Abstract Section

Abstract

Binary Search Tree (BST) is an important data structure for managing ordered data. Many algorithms---blocking as well as non-blocking---have been proposed for concurrent manipulation of a binary search tree in an asynchronous shared memory system that supports search, insert and delete operations based on both external and internal representations of a search tree.

An important step in executing an operation on a tree is to traverse the tree from top-to-down in order to locate the operation's window. A process may need to perform this traversal several times to handle any failures occurring due to other processes performing conflicting actions on the tree. Most concurrent algorithms that have proposed so far use a naïve approach and simply restart the traversal from the root of the tree.

In this work, we present a new approach to recover from such failures more efficiently in a concurrent binary search tree based on internal representation using local recovery by restarting the traversal from the "middle" of the tree in order to locate an operation's window. Our approach is sufficiently general in the sense that it can be applied to a variety of concurrent binary search trees based on both blocking and non-blocking approaches.

Using experimental evaluation, we demonstrate that our local recovery approach can yield significant speed-ups of up to 69% for many concurrent algorithms.

References

  1. M. Arbel and H. Attiya. Concurrent Updates with RCU: Search Tree as an Example. In Proceedings of the 33rd ACM Symposium on Principles of Distributed Computing (PODC), pages 196--205, July 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. D. Drachsler, M. Vechev, and E. Yahav. Practical Concurrent Binary Search Trees via Logical Ordering. In Proceedings of the 19th ACM Symposium on Principles and Practice of Parallel Programming (PPoPP), pages 343--356, Feb. 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. S. V. Howley and J. Jones. A Non-Blocking Internal Binary Search Tree. In Proceedings of the 24th ACM Symposium on Parallelism in Algorithms and Architectures (SPAA), pages 161--171, June 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. A. Ramachandran and N. Mittal. CASTLE: Fast Concurrent Internal Binary Search Tree using Edge-Based Locking. In Proceedings of the 20th ACM Symposium on Principles and Practice of Parallel Programming (PPoPP), pages 281--282, Feb. 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. A. Ramachandran and N. Mittal. Improving Efficacy of Internal Binary Search Trees using Local Recovery. Technical Report UTDCS-13-15, Department of Computer Science, The University of Texas at Dallas, Dec. 2015.Google ScholarGoogle Scholar

Index Terms

  1. Improving efficacy of internal binary search trees using local recovery

            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

            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!