skip to main content
10.1145/2555243.2555267acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
research-article

A general technique for non-blocking trees

Published:06 February 2014Publication History

ABSTRACT

We describe a general technique for obtaining provably correct, non-blocking implementations of a large class of tree data structures where pointers are directed from parents to children. Updates are permitted to modify any contiguous portion of the tree atomically. Our non-blocking algorithms make use of the LLX, SCX and VLX primitives, which are multi-word generalizations of the standard LL, SC and VL primitives and have been implemented from single-word CAS. To illustrate our technique, we describe how it can be used in a fairly straightforward way to obtain a non-blocking implementation of a chromatic tree, which is a relaxed variant of a red-black tree. The height of the tree at any time is O(c + log n), where n is the number of keys and c is the number of updates in progress. We provide an experimental performance analysis which demonstrates that our Java implementation of a chromatic tree rivals, and often significantly outperforms, other leading concurrent dictionaries.

References

  1. Y. Afek, H. Kaplan, B. Korenfeld, A. Morrison, and R. Tarjan. CBTree: A practical concurrent self-adjusting search tree. In Proc. 26th International Symposium on Distributed Computing, volume 7611 of LNCS, pages 1--15, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Z. Aghazadeh, W. Golab, and P. Woelfel. Brief announcement: Resettable objects and efficient memory reclamation for concurrent algorithms. In Proc. 32nd ACM Symposium on Principles of Distributed Computing, pages 322--324, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. J. H. Anderson and M. Moir. Universal constructions for multi-object operations. In Proc. 14th ACM Symposium on Principles of Distributed Computing, pages 184--193, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. G. Barnes. A method for implementing lock-free data structures. In Proc. 5th ACM Symposium on Parallel Algorithms and Architectures, pages 261--270, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. R. Bayer. Symmetric binary B-trees: Data structure and maintenance algorithms. Acta Informatica, 1(4):290--306, 1972.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. L. Bougé, J. Gabarró, X. Messeguer, and N. Schabanel. Height-AVL rebalancing: A unified, fine-grained approach to concurrent dictionaries. Technical Report LSI-98--12-R, Universitat Politècnica de Catalunya, 1998. Available from http://www.lsi.upc.edu/dept/techreps/llistat_detallat.php?id=307.Google ScholarGoogle Scholar
  7. J. Boyar, R. Fagerberg, and K. S. Larsen. Amortization results for chromatic search trees, with an application to priority queues. J. Comput. Syst. Sci., 55(3):504--521, Dec. 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. A. Braginsky and E. Petrank. A lock-free B+ tree. In Proc. 24th ACM Symposium on Parallelism in Algorithms and Architectures, pages 58--67, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. N. G. Bronson, J. Casper, H. Chafi, and K. Olukotun. A practical concurrent binary search tree. In Proc. 15th ACM Symposium on Principles and Practice of Parallel Programming, pages 257--268, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. T. Brown, F. Ellen, and E. Ruppert. Pragmatic primitives for non-blocking data structures. In Proc. 32nd ACM Symposium on Principles of Distributed Computing, 2013. Full version available from http://www.cs.utoronto.ca/ tabrown. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. T. Brown and J. Helga. Non-blocking k-ary search trees. In Proc. 15th International Conf. on Principles of Distributed Systems, volume 7109 of LNCS, pages 207--221, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. T. Crain, V. Gramoli, and M. Raynal. A speculation-friendly binary search tree. In Proc. 17th ACM Symp. on Principles and Practice of Parallel Programming, pages 161--170, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. T. Crain, V. Gramoli, and M. Raynal. A contention-friendly binary search tree. In Euro-Par, pages 229--240, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. D. Drachsler, M. Vechev, and E. Yahav. Practical concurrent binary search trees via logical ordering. Inrm these proceedings, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. F. Ellen, P. Fatourou, E. Ruppert, and F. van Breugel. Non-blocking binary search trees. In Proc. 29th ACM Symposium on Principles of Distributed Computing, pages 131--140, 2010. Full version available as Technical Report CSE-2010-04, York University. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. K. Fraser and T. Harris. Concurrent programming without locks. ACM Trans. on Computer Systems, 25(2):5, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. K. A. Fraser. Practical lock-freedom. PhD thesis, University of Cambridge, 2003.Google ScholarGoogle Scholar
  18. L. J. Guibas and R. Sedgewick. A dichromatic framework for balanced trees. In Proc. 19th IEEE Symposium on Foundations of Computer Science, pages 8--21, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. Herlihy, V. Luchangco, M. Moir, and W. N. Scherer, III. Software transactional memory for dynamic-sized data structures. In Proc. 22nd ACM Symposium on Principles of Distributed Computing, pages 92--101, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. S. V. Howley and J. Jones. A non-blocking internal binary search tree. In Proc. 24th ACM Symposium on Parallelism in Algorithms and Architectures, pages 161--171, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. H. Kung and P. L. Lehman. Concurrent manipulation of binary search trees. ACM Transactions on Database Systems, 5(3):354--382, 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. K. S. Larsen. Amortized constant relaxed rebalancing using standard rotations. Acta Informatica, 35(10):859--874, 1998.Google ScholarGoogle ScholarCross RefCross Ref
  23. K. S. Larsen. AVL trees with relaxed balance. J. Comput. Syst. Sci., 61(3):508--522, Dec. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. K. S. Larsen, T. Ottmann, and E. Soisalon-Soininen. Relaxed balance for search trees with local rebalancing. Acta Informatica, 37(10):743--763, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. A. Natarajan and N. Mittal. Fast concurrent lock-free binary search trees. Inrm these proceedings, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. A. Natarajan, L. Savoie, and N. Mittal. Concurrent wait-free red black trees. In Proc. 15th International Symposium on Stabilization, Safety and Security of Distributed Systems, volume 8255 of LNCS, pages 45--60, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  27. O. Nurmi and E. Soisalon-Soininen. Chromatic binary search trees: A structure for concurrent rebalancing. Acta Informatica, 33(6):547--557, 1996.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. N. Shafiei. Non-blocking Patricia tries with replace operations. In Proc. 33rd International Conference on Distributed Computing Systems, pages 216--225, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. M. Spiegel and P. F. Reynolds, Jr. Lock-free multiway search trees. In Proc. 39th International Conference on Parallel Processing, pages 604--613, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. J.-J. Tsay and H.-C. Li. Lock-free concurrent tree structures for multiprocessor systems. In Proc. International Conference on Parallel and Distributed Systems, pages 544--549, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. J. Turek, D. Shasha, and S. Prakash. Locking without blocking: Making lock based concurrent data structure algorithms nonblocking. In Proc. 11th ACM Symposium on Principles of Database Systems, pages 212--222, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. J. D. Valois. Lock-free linked lists using compare-and-swap. In Proc. 14th ACM Symposium on Principles of Distributed Computing, pages 214--222, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A general technique for non-blocking 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
    • Published in

      cover image ACM Conferences
      PPoPP '14: Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming
      February 2014
      412 pages
      ISBN:9781450326568
      DOI:10.1145/2555243

      Copyright © 2014 ACM

      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 ACM 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]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 6 February 2014

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      PPoPP '14 Paper Acceptance Rate28of184submissions,15%Overall Acceptance Rate230of1,014submissions,23%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader