Concurrent Hash Tables: Fast and General(?)!

被引:24
作者
Maier, Tobias [1 ]
Sanders, Peter [1 ]
Dementiev, Roman [2 ]
机构
[1] Karlsruhe Inst Technol, Kaiserstr 12, D-76131 Karlsruhe, Germany
[2] Intel Deutschland GmbH, Campeon 10-12, D-85579 Neubiberg, Germany
关键词
Concurrency; dynamic data structures; experimental analysis; hash table; lock-freedom; transactional memory;
D O I
10.1145/3309206
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Concurrent hash tables are one of the most important concurrent data structures, which are used in numerous applications. For some applications, it is common that hash table accesses dominate the execution time. To efficiently solve these problems in parallel, we need implementations that achieve speedups in highly concurrent scenarios. Unfortunately, currently available concurrent hashing libraries are far away from this requirement, in particular, when adaptively sized tables are necessary or contention on some elements occurs. Our starting point for better performing data structures is a fast and simple lock-free concurrent hash table based on linear probing that is, however, limited to word-sized key-value types and does not support dynamic size adaptation. We explain how to lift these limitations in a provably scalable way and demonstrate that dynamic growing has a performance overhead comparable to the same generalization in sequential hash tables. We perform extensive experiments comparing the performance of our implementations with six of the most widely used concurrent hash tables. Ours are considerably faster than the best algorithms with similar restrictions and an order of magnitude faster than the best more general tables. In some extreme cases, the difference even approaches four orders of magnitude. All our implementations discussed in this publication can be found on github [17].
引用
收藏
页数:32
相关论文
共 39 条
[1]  
Adamic L. A., 2002, Glottometrics, V3, P143
[2]  
[Anonymous], 2008, Algorithms and data structures: the basic toolbox
[3]  
[Anonymous], 2004, 6 WORKSHOP ALGORITHM
[4]   Zipf distribution of US firm sizes [J].
Axtell, RL .
SCIENCE, 2001, 293 (5536) :1818-1820
[5]  
Bast H, 2007, SIAM PROC S, P46
[6]  
Breslau L, 1999, IEEE INFOCOM SER, P126, DOI 10.1109/INFCOM.1999.749260
[7]   Improving hash join performance through prefetching [J].
Chen, Shimin ;
Ailamaki, Anastassia ;
Gibbons, Phillip B. ;
Mowry, Todd C. .
ACM TRANSACTIONS ON DATABASE SYSTEMS, 2007, 32 (03)
[8]   A reliable randomized algorithm for the closest-pair problem [J].
Dietzfelbinger, M ;
Hagerup, T ;
Katajainen, J ;
Penttonen, M .
JOURNAL OF ALGORITHMS, 1997, 25 (01) :19-51
[9]   Lock-free dynamic hash tables with open addressing [J].
Gao, H ;
Groote, JF ;
Hesselink, WH .
DISTRIBUTED COMPUTING, 2005, 18 (01) :21-42
[10]   OPTIMAL MERGING AND SORTING ON THE EREW PRAM [J].
HAGERUP, T ;
RUB, C .
INFORMATION PROCESSING LETTERS, 1989, 33 (04) :181-185