On the correctness of a lock-free compression-based elastic mechanism for a hash trie design

被引:1
作者
Areias, Miguel [1 ]
Rocha, Ricardo [1 ]
机构
[1] Univ Porto, Fac Sci, Porto, Portugal
关键词
Data structures; Lock-freedom; Hash tries; CONCURRENT; EFFICIENT;
D O I
10.1007/s00607-022-01085-2
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
A key aspect of any hash map design is the problem of dynamically resizing it in order to deal with hash collisions. Compression in tree-based hash maps is the ability of reducing the depth of the internal hash levels that support the hash map. In this context, elasticity refers to the ability of automatically resizing the internal data structures that support the hash map operations in order to meet varying workloads, thus optimizing the overall memory consumption of the hash map. This work extends a previous lock-free hash trie map design to support elastic hashing, i.e., expand saturated hash levels and compress unused hash levels, such that, at each point in time, the number of levels in a path is adjusted, as closely as possible, to the set of keys that is stored in the data structure. To materialize our design, we introduce a new compress operation for hash levels, which requires redesigning the existing search, insert, remove and expand operations in order to maintain the lock-freedom property of the data structure. Experimental results show that elasticity effectively improves the search operation and, in doing so, our design becomes very competitive when compared to other state-of-the-art designs implemented in Java.
引用
收藏
页码:2279 / 2305
页数:27
相关论文
共 33 条
[1]  
[Anonymous], 1998, Sorting and Searching
[2]  
[Anonymous], JSR166
[3]   On Extending a Fixed Size, Persistent and Lock-Free Hash Map Design to Store Sorted Keys [J].
Areias, Miguel ;
Rocha, Ricardo .
2018 IEEE INT CONF ON PARALLEL & DISTRIBUTED PROCESSING WITH APPLICATIONS, UBIQUITOUS COMPUTING & COMMUNICATIONS, BIG DATA & CLOUD COMPUTING, SOCIAL COMPUTING & NETWORKING, SUSTAINABLE COMPUTING & COMMUNICATIONS, 2018, :415-422
[4]   An Efficient and Scalable Memory Allocator for Multithreaded Tabled Evaluation of Logic Programs [J].
Areias, Miguel ;
Rocha, Ricardo .
PROCEEDINGS OF THE 2012 IEEE 18TH INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED SYSTEMS (ICPADS 2012), 2012, :636-643
[5]  
Bagwell P., 2001, Es Grands Champs, P1195
[6]  
Bayer R., 1972, Acta Informatica, V1, P173, DOI 10.1007/BF00288683
[7]   Non-Blocking Interpolation Search Trees with Doubly-Logarithmic Running Time [J].
Brown, Trevor ;
Prokopec, Aleksandar ;
Alistarh, Dan .
PROCEEDINGS OF THE 25TH ACM SIGPLAN SYMPOSIUM ON PRINCIPLES AND PRACTICE OF PARALLEL PROGRAMMING (PPOPP '20), 2020, :276-291
[8]   A Template for Implementing Fast Lock-free Trees Using HTM [J].
Brown, Trevor .
PROCEEDINGS OF THE ACM SYMPOSIUM ON PRINCIPLES OF DISTRIBUTED COMPUTING (PODC'17), 2017, :293-302
[9]  
Brown Trevor, 2017, PhD thesis
[10]   Adaptive Lock-Free Data Structures in Haskell: A General Method for Concurrent Implementation Swapping [J].
Chen, Chao-Hong ;
Choudhury, Vikraman ;
Newton, Ryan R. .
ACM SIGPLAN NOTICES, 2017, 52 (10) :197-211