Limon: A Scalable and Stable Key-Value Engine for Fast NVMe Devices

被引:2
作者
Yan, Baoyue [1 ]
Zhu, Jinbin [1 ]
Jiang, Bo [1 ]
机构
[1] Beihang Univ, Sch Comp Sci & Engn, State Key Lab Software Dev Environm, Beijing 100191, Peoples R China
关键词
Computer architecture; storage system; fast NVMe devices; KV store; index; storage layout; I/O processing; STORAGE ENGINE;
D O I
10.1109/TC.2023.3283674
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Modern fast NVMe devices with high throughput and ultra-low latency have brought new opportunities for persistent key-value (KV) engines. In this paper, we propose Limon, a persistent KV engine to exploit the performance potentials of fast NVMe devices. Limon targets three practical design aspects that existing KV engines fail to consider simultaneously: functionality, scalability, and stability. Limon carefully redesigns the index structure, on-disk KV record layout, and I/O processing of a persistent KV engine for these aspects. Specifically, Limon (i) proposes a semi-shared global index to improve scalability and range queries. (ii) employs a fast slab-based record layout with light-weight defragmentation to enable stable performance, and (iii) uses efficient asynchronous per-core I/O processing with two optimizations: DMA-backed buffer pool and page deduplication, to further improve scalability. Our evaluations with the YCSB benchmark and one production workload show that Limon outperforms state-of-the-art persistent key-value engines (i.e., SpanDB, KVell, and uDepot) by up to 1.2x to 3.8x and has the best scalability. Moreover, Limon has stable and predictable performance due to its novel record layout strategy.
引用
收藏
页码:3017 / 3028
页数:12
相关论文
共 41 条
[1]  
Atikoglu Berk, 2012, Performance Evaluation Review, V40, P53, DOI 10.1145/2318857.2254766
[2]  
Balmau O, 2017, 2017 USENIX ANNUAL TECHNICAL CONFERENCE (USENIX ATC '17), P363
[3]   Attack of the Killer Microseconds [J].
Barroso, Luiz ;
Marty, Mike ;
Patterson, David ;
Ranganathan, Parthasarathy .
COMMUNICATIONS OF THE ACM, 2017, 60 (04) :47-54
[4]  
Bendersky E., 2018, Measuring context switching and memory overheads for Linux threads
[5]   Viper: An Efficient Hybrid PMem-DRAM Key-Value Store [J].
Benson, Lawrence ;
Makait, Hendrik ;
Rabl, Tilmann .
PROCEEDINGS OF THE VLDB ENDOWMENT, 2021, 14 (09) :1544-1556
[6]   A bit-parallel search algorithm for allocating free space [J].
Burns, R ;
Hineman, W .
NINTH INTERNATIONAL SYMPOSIUM ON MODELING, ANALYSIS AND SIMULATION OF COMPUTER AND TELECOMMUNICATION SYSTEMS, PROCEEDINGS, 2001, :302-310
[7]  
Cao ZC, 2020, PROCEEDINGS OF THE 18TH USENIX CONFERENCE ON FILE AND STORAGE TECHNOLOGIES, P209
[8]  
Chan HHW, 2018, PROCEEDINGS OF THE 2018 USENIX ANNUAL TECHNICAL CONFERENCE, P1007
[9]   Bigtable: A distributed storage system for structured data [J].
Chang, Fay ;
Dean, Jeffrey ;
Ghemawat, Sanjay ;
Hsieh, Wilson C. ;
Wallach, Deborah A. ;
Burrows, Mike ;
Chandra, Tushar ;
Fikes, Andrew ;
Gruber, Robert E. .
ACM TRANSACTIONS ON COMPUTER SYSTEMS, 2008, 26 (02)
[10]  
Chen H, 2021, PROCEEDINGS OF THE 19TH USENIX CONFERENCE ON FILE AND STORAGE TECHNOLOGIES (FAST '21), P17