RAIL: Predictable, Low Tail Latency for NVMe Flash

RAIL: Predictable, Low Tail Latency for NVMe Flash
复制标题

DOI:
10.1145/3465406
复制
发表时间:
2022-01
期刊:
ACM Transactions on Storage (TOS)
影响因子:
--
通讯作者:
Heiner Litz;Javier González;Ana Klimovic;Christos Kozyrakis
Heiner Litz;Javier González;Ana Klimovic;Christos Kozyrakis
中科院分区:
其他
文献类型:
--
作者:
Heiner Litz;Javier González;Ana Klimovic;Christos Kozyrakis

文献摘要

被引文献

相似文献

基于闪存的存储正在取代越来越多的数据中心应用程序的磁盘,提供数个数量级的更高吞吐量和更低的平均延迟。然而,应用程序还需要可预测的存储延迟。现有闪存设备无法在存在写操作的情况下提供低尾读延迟。我们提出了两种解决 SSD 读尾延迟的新技术,包括独立 LUN 冗余阵列 (RAIL) 和延迟感知热冷分离 (HC),前者可避免用户写入后的读取序列化,后者可在保持低尾延迟的同时提高写入吞吐量。 RAIL 利用现代闪存设备的内部并行性并分配数据和奇偶校验页,以避免读取卡在写入后面。我们在 Linux 内核中实现 RAIL 作为 LightNVM Flash 转换层的一部分,并表明它可以在 99.99% 处将读尾延迟减少 7 倍,同时相对带宽仅减少 33%。
Flash-based storage is replacing disk for an increasing number of data center applications, providing orders of magnitude higher throughput and lower average latency. However, applications also require predictable storage latency. Existing Flash devices fail to provide low tail read latency in the presence of write operations. We propose two novel techniques to address SSD read tail latency, including Redundant Array of Independent LUNs (RAIL) which avoids serialization of reads behind user writes as well as latency-aware hot-cold separation (HC) which improves write throughput while maintaining low tail latency. RAIL leverages the internal parallelism of modern Flash devices and allocates data and parity pages to avoid reads getting stuck behind writes. We implement RAIL in the Linux Kernel as part of the LightNVM Flash translation layer and show that it can reduce read tail latency by 7× at the 99.99th percentile, while reducing relative bandwidth by only 33%.