美文网首页
[HotStorage'20]A New LSM-style G

[HotStorage'20]A New LSM-style G

作者: 1哥 | 来源:发表于2021-09-24 08:27 被阅读0次

A New LSM-style Garbage Collection Scheme for ZNS SSDs

1.总体思想

出发点是:ZNS SSD的GC粒度为Zone ,而Zone size 一般很大,GB 量级的,GC overhead 很大,会引起很长的latency,于是这篇paper设计一种新的GC 方案-LSM_ZGC(Log-Structured Merge style Zone Garbage Collection),来优化GC 效率:
(1)Zone:GC 的管理粒度(1GB),Segment:冷热分离的粒度(2MB)
(2)GC 读一块连续的有效和无效的数据
(3)将不同冷热度的segment 搬到不同冷热的zone中
实验结果显示:这种方案能提升1.9倍性能

2.分析

现在SSD圈出现各种类别的SSD


image.png

ZNS SSD是近期比较热门的已经加入NVME 标准中,ZNS SSD相比传统SSD,好处是:
(1)通过分离不同workload 到不同zone,来获得更好的性能和WAF;
(2)更好的IO隔离性
(3)更低的成本- 减少甚至是移除SSD 内部的FTL table减少DRAM使用和OP空间


image.png

ZNS SSD 特征:
Zone顺序写限制
Zone的管理权(open,read,write,GC,reset)完全交由Host


image.png

LSM-GC 方案的动机
发现1-ZNS SSD Zone GC overhead大
Zone size:1GB=512 倍 segment size,(LFS/F2FS segment size:2MB)


image.png

结果显示:GC候选zone 的有效利用率大于0.4是GC 时间会大于20S.
由此得出启发1:必须降低候选zone 的利用率

发现2-读写的IO SIZE 对性能的影响
测试结果显示IO size阅读,访问越快。
其根本在于充分利用了SSD 内部的并发(Ch level/die levle/Multi-plane level,


image.png

由此得出结论2:以越大的IO size 访问SSD是越有益的。

3.LSM- Zone GC Design

3.1 ZNS SSD 一般的GC方案:Basic-GC 步骤:

step1:基于某种策略(Greedy/cost- benefit)选择GC source zone;


image.png

step2:根据zone bitmap找出source zone 中有效的block;


image.png

step3:以4KB(或更大)的IO size读出有效的block


image.png

step4:以4KB(或更大)的IO size写到target的 zone


image.png
step5:reset GC source zone
image.png

从2分析的两个结论出发:
(1)必须降低候选zone 的利用率
(2)以越大的IO size 访问
问题1:如何使GC source zone 利用率低
利用率很高的原因:传统的冷热分离方案不适用于ZNS SSD
改变冷热分离方案:采用segment 来进行细粒度的冷热分离
问题2:如何以更大的IO size访问数据
无法以大IO size访问数据原因:现有GC 方案在有效和无效数据共存情况下无法以大IO size访问数据
改变现有访问数据的方式:以更大IO size访问数据同时读有效和无效的数据

3.2 LSM- ZGC design

  1. 两个管理单元
    Zone:GC 单位 🆚 Segment:冷热分离单位
    Zone拆分成多个segments(1GB 🆚 2MB)
    2.segment 状态和状态跳转规则
    (1)新数据--> C0
    (2)从C0中ZGC搬出来的有效数据
    zone 内冷segment的数据(>Threshold_cold) :cold -->C1C_ZONE
    zone 其他zone 的数据:hot -->C1H_ZONE
    (基于spatial locality,于F2FS (FAST’15),
    Multi-stream (FAST’19), Key-range locality (FAST’20)的study)
    (3) C1C/C2H DATA -->C2_ZONE


    image.png

    LSM- ZGC例子:
    step1:挑选候选zone


    image.png
    step2:以128KB IO size读出所有数据
    image.png
    step3:check 有效数据,识别冷热segment
    image.png
    step4:根据冷热特征,merge对应的数据到一起
    image.png
    step5:以128KB 的IO size 写数据
    image.png

4.比较Basic_ZGC 🆚 LSM_ZGC测试结果

GC overhead


image.png
image.png

冷热分离效果


image.png

相关文章

网友评论

      本文标题:[HotStorage'20]A New LSM-style G

      本文链接:https://www.haomeiwen.com/subject/kzdagltx.html