skip to main content
research-article

Concurrent tries with efficient non-blocking snapshots

Published:25 February 2012Publication History
Skip Abstract Section

Abstract

We describe a non-blocking concurrent hash trie based on shared-memory single-word compare-and-swap instructions. The hash trie supports standard mutable lock-free operations such as insertion, removal, lookup and their conditional variants. To ensure space-efficiency, removal operations compress the trie when necessary.

We show how to implement an efficient lock-free snapshot operation for concurrent hash tries. The snapshot operation uses a single-word compare-and-swap and avoids copying the data structure eagerly. Snapshots are used to implement consistent iterators and a linearizable size retrieval. We compare concurrent hash trie performance with other concurrent data structures and evaluate the performance of the snapshot operation.

References

  1. O. Agesen, D. L. Detlefs, C. H. Flood, A. Garthwaite, P. A. Martin , N. Shavit , G. L. Steele Jr.: DCAS-Based Concurrent Deques. SPAA, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. P. Bagwell: Ideal Hash Trees. EPFL Technical Report, 2001.Google ScholarGoogle Scholar
  3. R. Brandais: File searching using variable length keys. Proceedings of Western Joint Computer Conference, 1959. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. N. G. Bronson, J. Casper, H. Chafi, K. Olukotun: A Practical Concurrent Binary Search Tree. Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. C. Click: Towards a Scalable Non-Blocking Coding Style. http://www.azulsystems.com/events/javaone_2007/2007_LockFreeHash.pdfGoogle ScholarGoogle Scholar
  6. T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein: Introduction to Algorithms, 2nd Edition. The MIT Press, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. F. Ellen, P. Fatourou, E. Ruppert, F. van Breugel: Non-blocking binary search trees. PODC, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. E. Fredkin: Trie memory. Communications of the ACM, 1960. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. A. Georges, D. Buytaert, L. Eeckhout: Statistically Rigorous Java Performance Evaluation. OOPSLA, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. T. L. Harris, K. Fraser, I. A. Pratt: A Practical Multi-word Compareand-Swap Operation. DISC, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Herlihy: A Methodology for Implementing Highly Concurrent Data Structures. PPOPP, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Herlihy, Y. Lev, V. Luchangco, N. Shavit: A Provably Correct Scalable Concurrent Skip List. OPODIS, 2006.Google ScholarGoogle Scholar
  13. H. Kung, P. Lehman: Concurrent manipulation of binary search trees. ACM Transactions on Database Systems (TODS), vol. 5, issue 3, 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Doug Lea's Home Page: http://gee.cs.oswego.edu/Google ScholarGoogle Scholar
  15. W. Litwin: Trie Hashing. Proceedings of the 1981 ACM SIGMOD international conference on Management of data, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. W. Litwin, Y. Sagiv, K. Vidyasankar: Concurrency and Trie Hashing. Acta Informatica archive, vol. 26, issue 7, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Maged M. Michael: High Performance Dynamic Lock-Free Hash Tables and List-Based Sets. SPAA, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. M. Moir, N. Shavit: Concurrent data structures. Handbook of Data Structures and Applications, Chapman and Hall, 2004.Google ScholarGoogle Scholar
  19. C. Okasaki: Purely Functional Data Structures. Cambridge University Press, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. A. Prokopec, P. Bagwell, M. Odersky: Cache-Aware Lock-Free Concurrent Hash Tries. EPFL Technical Report, 2011.Google ScholarGoogle Scholar
  21. A. Prokopec, P. Bagwell, T. Rompf, M. Odersky, A Generic Parallel Collection Framework. Euro-Par 2011 Parallel Processing, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. William Pugh: Concurrent Maintenance of Skip Lists. UM Technical Report, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. William Pugh: Skip Lists: A Probabilistic Alternative to Balanced Trees. Communications ACM, volume 33, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. The Scala Programming Language Homepage. http://www.scalalang.org/Google ScholarGoogle Scholar
  25. O. Shalev, N. Shavit: Split-Ordered Lists: Lock-Free Extensible Hash Tables. Journal of the ACM, vol. 53., no. 3., 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Concurrent tries with efficient non-blocking snapshots

      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 47, Issue 8
        PPOPP '12
        August 2012
        334 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2370036
        Issue’s Table of Contents
        • cover image ACM Conferences
          PPoPP '12: Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
          February 2012
          352 pages
          ISBN:9781450311601
          DOI:10.1145/2145816

        Copyright © 2012 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: 25 February 2012

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader