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 条
[41]  
Yao T, 2020, PROCEEDINGS OF THE 2020 USENIX ANNUAL TECHNICAL CONFERENCE, P17
[42]  
Zhang L, 2019, PROCEEDINGS OF THE 2019 USENIX ANNUAL TECHNICAL CONFERENCE, P897
[43]   ChameleonDB: a Key-value Store for Optane Persistent Memory [J].
Zhang, Wenhui ;
Zhao, Xingsheng ;
Jiang, Song ;
Jiang, Hong .
PROCEEDINGS OF THE SIXTEENTH EUROPEAN CONFERENCE ON COMPUTER SYSTEMS (EUROSYS '21), 2021, :194-209
[44]  
Zuo PF, 2021, PROCEEDINGS OF THE 2021 USENIX ANNUAL TECHNICAL CONFERENCE, P15
[45]  
Zuo PF, 2018, PROCEEDINGS OF THE 13TH USENIX SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION, P461
[46]   A Write-Friendly and Cache-Optimized Hashing Scheme for Non-Volatile Memory Systems [J].
Zuo, Pengfei ;
Hua, Yu .
IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2018, 29 (05) :985-998
[47]   Efficient Lock-Free Durable Sets [J].
Zuriel, Yoav ;
Friedman, Michal ;
Sheffi, Gali ;
Cohen, Nachshon ;
Petrank, Erez .
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2019, 3 (OOPSLA)