Vigil-KV: Hardware-Software Co-Design to Integrate Strong Latency Determinism into Log-Stru...——论文泛读

ATC 2022 Paper  论文阅读笔记整理

问题

在生产环境中,日志结构合并的键值存储(LSM KV)需要确保查询的延迟,特别是,读取的长尾延迟(和延迟一致性)是满足不同用户需求和服务级别协议(SLA)的问题[15-17]。长尾延迟的主要原因是设备级SSD延迟,而不是软件或操作系统看,所有软件的执行时间,包括存储堆栈和用户应用程序,仅占长尾延迟的13%(99.9%延迟)。

长尾延迟主要来自两个不同级别的内部任务引起的I/O干扰:(1)LSM KV的内部任务和(2)SSD的内部任务。

  • LSM KV定期执行内部任务,如压缩和刷新,以确保其持久性和有效性[18-21]。压缩将数据从LSM树的较低级别合并到较高级别,而刷新则将内存中的缓冲区写回底层存储,以确保更多的缓冲空间并使缓冲的数据持久化。

  • SSD 的内部任务,如 DRAM 缓存/刷新 [25–30]、垃圾收集 [31–39] 和读取回收 [40–44],也会导致长尾读取延迟。例如,LSM KV 在某个时期读取底层 SSD 的情况下,由于 SSD 在内部将缓冲/缓存的数据刷新到其后端存储,它仍然在读取时表现出长延迟。类似地,垃圾收集或读取回收都可能引入一组读取和写入,这也会阻止正在服务的传入请求。这些内部任务由底层 SSD 固件调度,这使得用户级别的读取延迟行为不确定,并显著增加了延迟。

现有方法局限性

由于LSM KV的内部任务的写入操作表现出长延迟,并且通常会暂停所有传入请求,因此许多先前的研究(例如,TRIAD[22]、PebblesDB[23]和SILK[24])会重新调度内部任务的额外写入,并在未来空闲时为其提供服务。这些方法将在一定程度上减少内部任务造成的延迟不一致,但它们会导致严重的副作用,从而恶化读取服务并显著增加内存占用。

本文方法

提出了 Vigil-KV,硬件和软件协同设计的框架,通过引入强大的延迟确定性几乎完美地消除了长尾延迟。

  • 为了使 Get 的延迟确定,Vigil-KV 在实际的数据中心级 NVMe SSD 上启用了可预测的延迟模式(PLM)接口,在特定的时间窗口强制执行确定性的读取延迟。

  • Vigil-KV 在系统级别上,通过在多个物理功能内部调度 PLM 的不同设备状态,来隐藏与 SSD 的内部任务和/或写服务相关的非确定性时间窗口。

  • Vigil-KV 进一步调度压缩/刷新操作和客户端请求,了解 PLM 的限制,从而将强大的延迟确定性集成到 LSM KV 中。

PLM 依赖于两个基本的调度组件,确定性窗口(DTWIN)和非确定性窗口(NDWIN)。DTWIN 是提供可预测延迟的时间窗口,而 NDWIN 则不是。这项工作揭示了 PLM 的三个重要特征,在主机与底层 SSD 通信以实现延迟一致性时应考虑这些特征:(1) DTWIN 中的免写约束,在 DTWIN 期间只有在没有写请求的情况下才能保证 DTWIN;(2) PLM 窗口的公平调度,由于 SSD 的内部任务应在某个时刻执行,因此在设计时确定了 DTWIN 的最长服务时间,并且在跳入 DTWIN 之前应保留并适当调度 NDWIN;(3) 设备锁定约束,当底层 SSD 从 NDWIN 转移到 DTWIN 时,主机会限制 I/O 请求。这是因为过渡需要准备时间,不能被任何其他 I/O 活动中断(即设备锁定)。

在 1.92TB 的 NVMe SSD 原型和 Linux 4.19.91 上实现了 Vigil-KV,但其他 LSM KV 可以采用其概念。我们使用 Vigil-KV 对不同的 Facebook 和 Yahoo 场景进行评估,结果显示 Vigil-KV 可以将基线 KV 系统的尾延迟降低 3.19 倍,平均延迟降低 34%,平均而言。

实验

实验环境:运行在RocksDB 6.23.0和Linux 4.19.91上的Vigil KV软件,对12核AMD Ryzen 9 5900X、96GB DRAM和Vigil KV硬件进行评估。

数据集:Faceboolk[12],Yahoo[74]

实验对比:尾延迟、读延迟、平均延迟、内存利用率、扫描延迟

总结

针对生产环境的日志结构合并的键值存储(LSM KV),如何保证确定性的延迟。作者提出硬件和软件协同设计的框架:通过启用可预测的延迟模式(PLM)接口,在特定的时间窗口强制执行确定性的读取延迟;在系统级别上,通过在多个物理功能内部调度 PLM 的不同设备状态,来隐藏与 SSD 的内部任务和/或写服务相关的非确定性时间窗口;进一步调度压缩/刷新操作和客户端请求,将强大的延迟确定性集成到 LSM KV 中。

你可能感兴趣的:(论文阅读,论文阅读,KV存储)