TurboHash: A Hash Table for Key-value Store on Persistent Memory

被引:4
作者
Zhao, Xingsheng [1 ]
Zhong, Chen [1 ]
Jiang, Song [1 ]
机构
[1] Univ Texas Arlington, Arlington, TX 76019 USA
来源
PROCEEDINGS OF THE 16TH ACM INTERNATIONAL SYSTEMS AND STORAGE CONFERENCE, SYSTOR 2023 | 2023年
基金
美国国家科学基金会;
关键词
hash table; non-volatile memory; lock-free read;
D O I
10.1145/3579370.3594766
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Major efforts on the design of persistent hash table on a non-volatile byte-addressable memory focus on efficient support of crash consistency with fence/flush primitives as well on non-disruptive table rehashing operations. When a data entry in a hash bucket cannot be updated with one atomic write, out-of-place update, instead of in-place update, is required to avoid data corruption after a failure. This often causes extra fences/flushes. Meanwhile, when open addressing techniques, such as linear probing, are adopted for high load factor, the scope of search for a key can be large. Excessive use of fence/flush and extended key search paths are two major sources of performance degradation with hash tables in persistent memory. To address the issues, we design a persistent hash table, named TurboHash, for building high-performance key-value store. TurboHash has a number of much desired features all in one design. (1) It supports out-of-place update with a cost equivalent to that of an in-place write to provide lock-free reads. (2) Long-distance linear probing is minimized (only when necessary). (3) It conducts only shard resizing for expansion and avoids expensive directory-level rehashing; And (4) it exploits hardware features for high I/O and computation efficiency, including Intel's Optane DC's performance characteristics and Intel AVX instructions. We have implemented TurboHash on the Optane persistent memory and conducted extensive evaluations. Experiment results show that TurboHash improves state-of-the-arts by 2-8 times in terms of throughput and latency.
引用
收藏
页码:35 / 48
页数:14
相关论文
共 47 条
[1]  
[Anonymous], Viking Technology SATADIMM
[2]  
[Anonymous], Diablo Memory Channel Storage
[3]  
[Anonymous], SanDisk ULLtraDIMM
[4]  
Appleby A., 2008, MurmurHash
[5]  
Breslow AD, 2016, PROCEEDINGS OF USENIX ATC '16: 2016 USENIX ANNUAL TECHNICAL CONFERENCE, P281
[6]  
Chen ZY, 2020, PROCEEDINGS OF THE 2020 USENIX ANNUAL TECHNICAL CONFERENCE, P799
[7]  
Cooper Brian F., 2010, 1 ACM S CLOUD COMPUT, P143, DOI [DOI 10.1145/1807128.1807152, 10.1145/1807128.1807152]
[8]  
David T, 2015, ACM SIGPLAN NOTICES, V50, P631, DOI [10.1145/2694344.2694359, 10.1145/2775054.2694359]
[9]   FlashStore: High Throughput Persistent Key-Value Store [J].
Debnath, Biplob ;
Sengupta, Sudipta ;
Li, Jin .
PROCEEDINGS OF THE VLDB ENDOWMENT, 2010, 3 (02) :1414-1425
[10]  
Debnath Biplob, 2015, P 3 WORKSH INT NVM F, DOI [10.1145/2819001.2819002, DOI 10.1145/2819001.2819002]