12、一种优先级与公平性混合的压缩调度机制

一种优先级与公平性混合的压缩调度机制

1 背景与问题提出

在基于 LSM - tree 的键值存储(KV - Stores)中,压缩操作是一个关键环节。当输入数据量增大时,一次压缩操作涉及的平均文件数量会显著增加。例如,L2 层压缩涉及的平均文件数会从输入数据量为 5 GB 时的 11 个增长到 500 GB 时的 31 个。压缩写放大(WA)的原因是一次压缩中涉及过多的 SSTables,这会导致系统整体写放大,影响系统性能。

传统的基于分数中心优先级的压缩调度机制存在问题。以 LevelDB 为例,它采用分数中心优先级的压缩调度机制,每层的分数定义为 (S_n = N_n/T_n),其中 (S_n) 是 (L_n) 层的分数,(N_n) 是 (L_n) 层运行时的 SSTables 数量,(T_n) 是 (L_n) 层 SSTables 数量的阈值。通常会选择分数最大的层进行压缩。

然而,L0 层的优先级总是最高,分数默认设为 10000,只要 L0 层的 SSTables 数量达到 4 就会立即进行压缩。这一方面使得更多的内存表可以刷新到磁盘,保证前端写入继续;另一方面,也导致大量 SSTables 滞留,造成 L0 和 L1 之间巨大的写放大,占用大量压缩时间,抑制后续前端写入。这种压缩机会的不平衡促使我们提出一种更平衡的压缩优先级调度机制——Slot。

2 Slot 机制设计

2.1 设计思路

Slot 的主要思想是将分数中心优先级的压缩调度与时间片中心公平性的压缩调度相结合,以缓解文件滞留问题,降低基于 LSM - tree 的键值存储的写放大。它避免一次压缩涉及过多文件,减少写入暂停或停止的频率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值