Skip to main content

Non-blocking k-ary Search Trees

  • Conference paper

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

Abstract

This paper presents the first concurrent non-blocking k-ary search tree. Our data structure generalizes the recent non-blocking binary search tree of Ellen et al. [5] to trees in which each internal node has k children. Larger values of k decrease the depth of the tree, but lead to higher contention among processes performing updates to the tree. Our Java implementation uses single-word compare-and-set operations to coordinate updates to the tree. We present experimental results from a 16-core Sun machine with 128 hardware contexts, which show that our implementation achieves higher throughput than the non-blocking skip list of the Java class library and the leading lock-based concurrent search tree of Bronson et al. [3].

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

Buying options

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Barnes, G.: A method for implementing lock-free data structures. In: Proc. 5th ACM Symposium on Parallel Algorithms and Architectures, pp. 261–270 (1993)

    Google Scholar 

  2. Bender, M.A., Fineman, J.T., Gilbert, S., Kuszmaul, B.C.: Concurrent cache-oblivious B-trees. In: Proc. 17th ACM Symposium on Parallel Algorithms and Architectures, pp. 228–237 (2005)

    Google Scholar 

  3. Bronson, N.G., Casper, J., Chafi, H., Olukotun, K.: A practical concurrent binary search tree. In: Proc. 15th ACM Symposium on Principles and Practice of Parallel Programming, pp. 257–268 (2010)

    Google Scholar 

  4. Brown, T., Helga, J.: Non-blocking k-ary search trees. Technical Report CSE-2011-04, York University (2011), Appendix (with complete proof) and code available at http://www.cs.toronto.edu/~tabrown/ksts/

  5. Ellen, F., Fatourou, P., Ruppert, E., van Breugel, F.: Non-blocking binary search trees. In: Proc. 29th ACM Symposium on Principles of Distributed Computing, pp. 131–140 (2010); Full version in Tech. Report CSE-2010-04, York University

    Google Scholar 

  6. Fomitchev, M., Ruppert, E.: Lock-free linked lists and skip lists. In: Proc. 23rd ACM Symposium on Principles of Distributed Computing, pp. 50–59 (2004)

    Google Scholar 

  7. Fraser, K., Harris, T.: Concurrent programming without locks. ACM Transactions on Computer Systems 25(2), 5 (2007)

    Article  Google Scholar 

  8. Fraser, K.A.: Practical lock-freedom. PhD thesis, University of Cambridge (2003)

    Google Scholar 

  9. Guibas, L.J., Sedgewick, R.: A dichromatic framework for balanced trees. In: Proc. 19th IEEE Symp. on Foundations of Computer Science, pp. 8–21 (1978)

    Google Scholar 

  10. Herlihy, M., Luchangco, V., Moir, M., Scherer III, W.N.: Software transactional memory for dynamic-sized data structures. In: Proc. 22nd ACM Symposium on Principles of Distributed Computing, pp. 92–101 (2003)

    Google Scholar 

  11. Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems 12(3), 463–492 (1990)

    Article  Google Scholar 

  12. Sundell, H., Tsigas, P.: Scalable and lock-free concurrent dictionaries. In: Proc. 19th ACM Symposium on Applied Computing, pp. 1438–1445 (2004)

    Google Scholar 

  13. Valois, J.D.: Lock-free linked lists using compare-and-swap. In: Proc. 14th ACM Symposium on Principles of Distributed Computing, pp. 214–222 (1995)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Brown, T., Helga, J. (2011). Non-blocking k-ary Search Trees. In: Fernàndez Anta, A., Lipari, G., Roy, M. (eds) Principles of Distributed Systems. OPODIS 2011. Lecture Notes in Computer Science, vol 7109. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-25873-2_15

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-25873-2_15

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-25872-5

  • Online ISBN: 978-3-642-25873-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics