Non-blocking Hashtables with Open Addressing
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.
Unable to display preview. Download preview PDF.
- 1.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)Google Scholar
- 2.Fraser, K.: Practical Lock-Freedom. University of Cambridge Computer Laboratory, Technical Report number 579 (February 2004)Google Scholar
- 3.Knuth, D.: The Art of Computer Programming. Part 3, Sorting and Searching. Addison-Wesley, Reading (1973)Google Scholar
- 4.Lamport, L.: Concurrent Reading and Writing. Communications of the ACM, 806–811 (1977)Google Scholar
- 5.Martin, D., Davis, R.: A Scalable Non-Blocking Concurrent Hash Table Implementation with Incremental Rehashing (1997) (unpublished manuscript)Google Scholar
- 7.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)Google Scholar
- 8.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)Google Scholar
- 9.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)Google Scholar
- 10.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)Google Scholar
- 11.Purcell, C., Harris, T.: Non-blocking Hashtables with Open Addressing. University of Cambridge Computer Laboratory, Technical Report number 639 (September 2005)Google Scholar