一句话:提出 FlatStore,通过持久日志与易失索引解耦及批量优化,在持久内存上实现高吞吐低延迟 KV 存储。
持久内存(PM)与高速网卡为高效键值存储带来机遇,但 KV 访问粒度小,与 PM 持久化粒度不匹配,导致 PM 带宽利用率低。本文提出 FlatStore 存储引擎,将 KV 存储角色解耦为持久日志结构负责高效存储、易失索引负责快速检索。进一步采用紧凑日志格式以最大化批处理机会,并提出流水线水平批处理,在构建批次时从其他核窃取日志项,从而兼顾低延迟与高吞吐。作者分别用哈希表和 Masstree 作为易失索引实现 FlatStore,并在 Optane DC PM 上评测。实验显示单节点最高达 35 Mops/s,比现有系统快 2.5–6.3 倍。
Emerging hardware like persistent memory (PM) and high-speed NICs are promising to build efficient key-value stores. However, we observe that the small-sized access pattern in key-value stores doesn't match with the persistence granularity in PMs, leaving the PM bandwidth underutilized. This paper proposes an efficient PM-based key-value storage engine named FlatStore. Specifically, it decouples the role of a KV store into a persistent log structure for efficient storage and a volatile index for fast indexing. Upon it, FlatStore further incorporates two techniques: 1) compacted log format to maximize the batching opportunity in the log; 2) pipelined horizontal batching to steal log entries from other cores when creating a batch, thus delivering low-latency and high-throughput performance. We implement FlatStore with the volatile index of both a hash table and Masstree. We deploy FlatStore on Optane DC Persistent Memory, and our experiments show that FlatStore achieves up to 35 Mops/s with a single server node, 2.5 - 6.3 times faster than existing systems.
DOI 原文 ·
@inproceedings{paperbot5425,
title = {FlatStore: An Efficient Log-Structured Key-Value Storage Engine for Persistent Memory},
author = {Youmin Chen and Youyou Lu and Fan Yang and Qing Wang and Yang Wang and Jiwu Shu},
booktitle = {ASPLOS},
year = {2020},
doi = {10.1145/3373376.3378515}
}