Abstract
We present the first non-blocking hashtable based on open addressing that provides the following benefits: it combines good cache locality, accessing a single cacheline if there are no collisions, with short straight-line code; it needs no storage overhead for pointers and memory allocator schemes, having instead an overhead of two words per bucket; it does not need to periodically reorganise or replicate the table; and it does not need garbage collection, even with arbitrary-sized keys. Open problems include resizing the table and replacing, rather than erasing, entries. The result is a highly-concurrent set algorithm that approaches or outperforms the best externally-chained implementations we tested, with fixed memory costs and no need to select or fine-tune a garbage collector or locking strategy.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Gao, H., Groote, J., Hesselink, W.: Almost Wait-Free Resizable Hashtables. In: Proceedings of the 18th International Parallel and Distributed Processing Symposium, April 2004, p. 50a (2004)
Fraser, K.: Practical Lock-Freedom. University of Cambridge Computer Laboratory, Technical Report number 579 (February 2004)
Knuth, D.: The Art of Computer Programming. Part 3, Sorting and Searching. Addison-Wesley, Reading (1973)
Lamport, L.: Concurrent Reading and Writing. Communications of the ACM, 806–811 (1977)
Martin, D., Davis, R.: A Scalable Non-Blocking Concurrent Hash Table Implementation with Incremental Rehashing (1997) (unpublished manuscript)
Mellor-Crummey, J., Scott, M.: Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors. ACM Transactions on Computer Systems 9(1), 21–65 (1991)
Michael, M.: 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, July 2002, pp. 21–30 (2002)
Michael, M.: High performance dynamic lock-free hash tables and list-based sets. In: Proceedings of the 14th Annual Symposium on Parallel Algorithms and Architectures, August 2002, pp. 73–82 (2002)
Shalev, O., Shavit, N.: Split-Ordered Lists: Lock-free Extensible Hash Tables. In: Proceedings of the 22nd Annual Symposium on Principles of Distributed Computing, July 2003, pp. 102–111 (2003)
Scherer, W., Scott, M.: Contention Management in Dynamic Software Transactional Memory. In: PODC Workshop on Concurrency and Synchronization in Java Programs, July 2004, pp. 70–79 (2004)
Purcell, C., Harris, T.: Non-blocking Hashtables with Open Addressing. University of Cambridge Computer Laboratory, Technical Report number 639 (September 2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Purcell, C., Harris, T. (2005). Non-blocking Hashtables with Open Addressing. In: Fraigniaud, P. (eds) Distributed Computing. DISC 2005. Lecture Notes in Computer Science, vol 3724. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11561927_10
Download citation
DOI: https://doi.org/10.1007/11561927_10
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-29163-3
Online ISBN: 978-3-540-32075-3
eBook Packages: Computer ScienceComputer Science (R0)