Skip to main content

A Relaxed Balanced Lock-Free Binary Search Tree

  • Conference paper
  • First Online:
Parallel and Distributed Computing, Applications and Technologies (PDCAT 2020)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 12606))

  • 1079 Accesses

Abstract

This paper presents a new relaxed balanced concurrent binary search tree using a single word compare and swap primitive, in which all operations are lock-free. Our design separates balancing actions from update operations and includes a lock-free balancing mechanism in addition to the insert, search, and relaxed delete operations. Search in our design is not affected by ongoing concurrent update operations or by the movement of nodes by tree restructuring operations. Our experiments show that our algorithm performs better than other state-of-the-art concurrent BSTs.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    A poster describing the design of RBLFBST was presented in ICPP 2019, Kyoto, Japan.

  2. 2.

    For implementation purpose, the first node to be inserted in the empty tree is kept as the right child of a fixed node root which has key assumed to be infinity.

  3. 3.

    Detailed explanations and full algorithm for tree-maintenance can be found in [13].

References

  1. Afek, Y., Kaplan, H., Korenfeld, B., Morrison, A., Tarjan, R.E.: Cbtree: a practical concurrent self-adjusting search tree. In: Aguilera, M.K. (ed.) Distributed Computing, pp. 1–15. Springer, Berlin, Heidelberg (2012)

    Google Scholar 

  2. Barnes, G.: A method for implementing lock-free shared-data structures. In: Proceedings of the Fifth Annual ACM Symposium on Parallel Algorithms and Architectures, pp. 261–270. SPAA 1993 (1993)

    Google Scholar 

  3. Bougé, L., Vallés, J., Peypoch, X.M., Schabanel, N.: Height-relaxed avl rebalancing: a unified, fine-grained approach to concurrent dictionaries (1998)

    Google Scholar 

  4. Crain, T., Gramoli, V., Raynal, M.: A contention-friendly binary search tree. In: Wolf, F., Mohr, B., an Mey, D. (eds.) Euro-Par 2013. LNCS, vol. 8097, pp. 229–240. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-40047-6_25

    Chapter  Google Scholar 

  5. Drachsler, D., Vechev, M., Yahav, E.: Practical concurrent binary search trees via logical ordering. In: Proceedings of the 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 343–356, PPoPP 2014. Association for Computing Machinery, New York, NY, USA (2014)

    Google Scholar 

  6. Faith Ellen, P., Fatourou, E.R., van Breugel, F.: Non-blocking binary search trees. In: Proceedings of the 29th ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing, PODC 2010, pp. 131–140 (2010)

    Google Scholar 

  7. Fraser, K.: Practical Lock freedom. Ph.D. thesis, King’s College, University of Cambridge September 2003

    Google Scholar 

  8. Guerraoui, R.: Ascylib, July 2020. https://dcl.epfl.ch/site/optik

  9. Harris, T.L.: A pragmatic implementation of non-blocking linked-lists. In: Welch, J. (ed.) DISC 2001. LNCS, vol. 2180, pp. 300–314. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-45414-4_21

    Chapter  Google Scholar 

  10. Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA (2008)

    Google Scholar 

  11. Kessels, J.L.W.: On-the-fly optimization of data structures. Commun. ACM 26(11), 895–901 (1983)

    Article  Google Scholar 

  12. Larsen, K.S.: Avl trees with relaxed balance. J. Comput. Syst. Sci. 61(3), 508–522 (2000)

    Article  MathSciNet  Google Scholar 

  13. Singh, M., Lindsay Groves, A.P.: A relaxed balanced lock-free binary search tree. Tech. rep. (2020). https://ecs.wgtn.ac.nz/Main/TechnicalReportSeries

  14. Natarajan, A., Mittal, N.: Fast concurrent lock-free binary search trees. In: Proceedings of the 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 317–328. PPoPP 2014, New York, NY, USA (2014)

    Google Scholar 

  15. Bronson, N.G., Casper, J., Chafi, H., Olukotun, K.: A practical concurrent binary search tree. In: ACM SIGPLAN Symposium on Principals and Practice of Parallel Programming (2010)

    Google Scholar 

  16. Nurmi, O., Soisalon-Soininen, E.: Uncoupling updating and rebalancing in chromatic binary search trees. In: Proceedings of the Tenth ACM SIGACT-SIGMOD-SIGART, pp. 192–198. PODS 1991, New York, NY, USA (1991)

    Google Scholar 

  17. Shane V. Howley, J.J.: A non blocking internal binary tree. SPAA, June 2012

    Google Scholar 

  18. Brown, T., Ellen, F., Ruppert, E.: A general technique for non-blocking trees. In: Proceedings of the 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP) (2014)

    Google Scholar 

  19. Valois, J.D.: Lock-Free Data Structures. Ph.D. thesis, Rensselaer Polytechnic Institute, Troy, NY, USA (1996)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Manish Singh .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Singh, M., Groves, L., Potanin, A. (2021). A Relaxed Balanced Lock-Free Binary Search Tree. In: Zhang, Y., Xu, Y., Tian, H. (eds) Parallel and Distributed Computing, Applications and Technologies. PDCAT 2020. Lecture Notes in Computer Science(), vol 12606. Springer, Cham. https://doi.org/10.1007/978-3-030-69244-5_27

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-69244-5_27

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-69243-8

  • Online ISBN: 978-3-030-69244-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics