skip to main content
article

Split-ordered lists: Lock-free extensible hash tables

Authors Info & Claims
Published:01 May 2006Publication History
Skip Abstract Section

Abstract

We present the first lock-free implementation of an extensible hash table running on current architectures. Our algorithm provides concurrent insert, delete, and find operations with an expected O(1) cost. It consists of very simple code, easily implementable using only load, store, and compare-and-swap operations. The new mathematical structure at the core of our algorithm is recursive split-ordering, a way of ordering elements in a linked list so that they can be repeatedly “split” using a single compare-and-swap operation. Metaphorically speaking, our algorithm differs from prior known algorithms in that extensibility is derived by “moving the buckets among the items” rather than “the items among the buckets.” Though lock-free algorithms are expected to work best in multiprogrammed environments, empirical tests we conducted on a large shared memory multiprocessor show that even in non-multiprogrammed environments, the new algorithm performs as well as the most efficient known lock-based resizable hash-table algorithm, and in high load cases it significantly outperforms it.

References

  1. Agesen, O., Detlefs, D., Flood, C., Garthwaite, A., Martin, P., Shavit, N., and Steele, G. 2000. DCAS-based concurrent deques. In Proceedings of the 12th Annual ACM Symposium on Parallel Algorithms and Architectures. ACM, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Buttazzo, G., Lipari, G., Abeni, L., and Caccamo, M. 2005. Soft Real-Time Systems: Predictability vs. Efficiency. Series: Series in Computer Science. Springer-Verlag, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Cormen, T. H., Leiserson, C. E., Rivest, R. L., and Stein, C. 2001. Introduction to Algorithms, Second Edition. MIT Press, Cambridge, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Ellis, C. S. 1983. Extendible hashing for concurrent operations and distributed data. In Proceedings of the 2nd ACM SIGACT-SIGMOD Symposium on Principles of Database Systems. ACM, New York, 106--116. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Ellis, C. S. 1987. Concurrency in linear hashing. ACM Trans. Database Syst. 12, 2, 195--217. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Gao, H., Groote, J., and Hesselink, W. 2004. Almost wait-free resizable hashtables. In Proceedings of the 18th International Parallel and Distributed Processing Symposium (IPOPS).Google ScholarGoogle Scholar
  7. Greenwald, M. 1999. Non-blocking synchronization and system design. Ph.D. dissertation. Stanford University Tech. Rep. STAN-CS-TR-99-1624, Palo Alto, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Greenwald, M. 2002. Two-handed emulation: How to build non-blocking implementations of complex data-structures using DCAS. In Proceedings of the 21st ACM Symposium on Principles of Distributed Computing. ACM, New York, 260--269. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Harris, T. L. 2001. A pragmatic implementation of non-blocking linked-lists. In Proceedings of 15th International Symposium on Distributed Computing (DISC 2001). 300--314. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Herlihy, M., Luchangco, V., and Moir, M. 2002. The repeat offender problem: A mechanism for supporting dynamic-sized, lock-free data structures. In Proceedings of 16th International Symposium on Distributed Computing (DISC 2002). 339--353. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Herlihy, M., Luchangco, V., Moir, M., and Scherer, III, W. N. 2003. Software transactional memory for dynamic-sized data structures. In Proceedings of the 22nd Annual Symposium on Principles of Distributed Computing. ACM, New York, 92--101. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Herlihy, M. P., and Wing, J. M. 1990. Linearizability: A correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems (TOPLAS) 12, 3, 463--492. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Hesselink, W., Groote, J., Mauw, S., and Vermeulen, R. 2001. An algorithm for the asynchronous write-all problem based on process collision. Distrib. Comput. 14, 2, 75--81. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Hsu, M., and Yang, W. 1986. Concurrent operations in extendible hashing. In Proceedings of the 12th International Conference on Very Large Data Bases (VLDB'86) (Kyoto, Japan, Aug. 25--28). W. W. Chu, G. Gardarin, S. Ohsuga, and Y. Kambayashi, Eds. Morgan-Kaufmann, San Francisco, CA, 241--247. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Kanellakis, P. C., and Shvartsman, A. 1997. Fault-Tolerant Parallel Computation. Kluwer Academic Publishers. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Lea, D. 2003. Hash table util.concurrent.ConcurrentHashMap, revision 1.3, in JSR-166, the proposed Java Concurrency Package. http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/src/main/java/util/concurrent/.Google ScholarGoogle Scholar
  17. Litwin, W. 1980. Linear hashing: A new tool for file and table addressing. In Proceedings of the 6th International Conference on Very Large Data Bases (VLDB'80) (Montreal, Que., Canada, Oct. 1--3). IEEE Computer Society, Press, Los Alamitos, CA, 212--223.Google ScholarGoogle Scholar
  18. Luchangco, V., Moir, M., and Shavit, N. 2003. Nonblocking k-compare single swap. In Proceedings of the 15th Annual ACM Symposium on Parallel Algorithms and Architectures. ACM, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Mellor-Crummey, J. M., and Scott, M. L. 1991. Scalable reader-writer synchronization for shared-memory multiprocessors. In Proceedings of the 3rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. ACM, 106--113. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Michael, M. M. 2002a. High performance dynamic lock-free hash tables and list-based sets. In Proceedings of the 14th Annual ACM Symposium on Parallel Algorithms and Architectures. ACM, New York, 73--82. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Michael, M. M. 2002b. Safe memory reclamation for dynamic lock-free objects using atomic reads and writes. In Proceedings of the 21st Annual Symposium on Principles of Distributed Computing. ACM, New York, 21--30. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Michael, M. M., and Scott, M. L. 1998. Nonblocking algorithms and preemption-safe locking on multiprogrammed shared-memory multiprocessors. J. Parall. Distrib. Comput. 51, 1, 1--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Moir, M. 1997. Practical implementations of non-blocking synchronization primitives. In Proceedings of the 15th Annual ACM Symposium on the Principles of Distributed Computing. ACM, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Valois, J. D. 1995. Lock-free linked lists using compare-and-swap. In Proceedings of the Symposium on Principles of Distributed Computing. ACM, New York, 214--222. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Split-ordered lists: Lock-free extensible hash tables

        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 Journal of the ACM
          Journal of the ACM  Volume 53, Issue 3
          May 2006
          225 pages
          ISSN:0004-5411
          EISSN:1557-735X
          DOI:10.1145/1147954
          Issue’s Table of Contents

          Copyright © 2006 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: 1 May 2006
          Published in jacm Volume 53, Issue 3

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader