OSDI‘20 From WiscKey to Bourbon: A Learned Index for Log-Structured Merge Trees论文阅读

OSDI’ 20 From WiscKey to Bourbon: A Learned Index for Log-Structured Merge Trees论文阅读

摘要

我们介绍BOURBON,一种利用机器学习提供快速查找的日志合并树(LSM)。我们将BOURBON的设计和实现建立在仔细分析LSM设计得出的经验基础上。BOURBON使用贪心分段线性回归来学习key的分布,以最小的计算量实现快速查找,并应用成本效益策略来决定何时值得学习。通过在合成和真实世界数据集上的一系列实验,我们发现,与最先进的LSM相比,BOURBON将查找性能提高了1.23-1.78倍。

挑战

学习型索引主要针对只读进行设计,而LSM tree对写更加友好。写入会导致学习索引的中断,因为现在必须更新从现有数据学习的模型以适应更改;因此系统必须重复地重新学习数据。

但其实学习型索引很适合LSM tree,因为虽然写操作修改LSM,但是树的大部分是不可变的,比如说LSM tree最底层的一些sstable是相对静态的。只需要学习一次就可以一直使用到这个sstable发烧compaction。

相关工作以及实验证明为什么LSM tree适合使用learned index

。。。

论文根据实验得到5条建立学习型索引的指导:

1.Favor learning files at lower levels.(喜欢在比较底层的文件中进行学习,因为较底层的sstable相对静态)

2.Wait before learning a file.(在实际创建学习索引前等待一会,因为有些sstable存活时间很短,没必要创建学习型索引)

3.Do not neglect files at higher levels.(不要忽略较高层的文件)

4.Be workload- and data-aware(了解工作量和数据。尽管大多数数据位于较底层,但如果工作负载不查找这些数据,学习这些级别将产生较少的好处)

5.Do not learn levels for write-heavy workloads.(不学习写繁重工作负载的级别)

Bourbon 设计

学习数据

数据可以在两个粒度上学习:单个sstable或level。

学习的目标是:在有序数据集中,预测数据的位置。为单个sstable学习就是预测数据在sstable中的偏移量,为level学习就是预测目标sstable以及其中的偏移量。

对模型的要求是,它在学习和查找过程中必须具有低开销。此外,我们希望模型的空间开销较小。我们发现分段线性回归模型(PLR)可以满足这些条件。论文通过贪心分段线性回归算法(Greedy-PLR algorithm)训练模型。

贪心分段线性回归算法的时间复杂度是O(n),只需要扫描一次数据。如果当前扫描的数据点无法加入之前的segment(指如果加入之后,误差会大于阈值),那么生成一个新的segment。算法最后会生成一系统的segment,每个segment包括适用的最小key,以及斜率,偏移量。

如果模型被训练好,查找是很快速的。首先通过二分查找找到包括查找key的segment,然后通过计算得到目标地址,如果目标位置不对,将会通过error bound范围内进行一个local search。

PLR的开销很小,每个segments有几十个字节。(a few tens of bytes for every line segment.)

支持不定长数据

Bourbon要求key是定长的,value可以不定长。

如果key不定长的话,可以采用padding技术使得所有key都是定长。然后采用key-value分离的技术,通过键值分离,BOURBON中的sstable只包含键和指向值的指针;值分别保存在值日志中

sstable学习和level学习

在上一节中的分析表明,在写繁重的工作负载下,sstable的生存时间比level更长,这暗示在sstable粒度上学习可能是最佳选择。

作者通过实验验证在不同工作负载情况下,哪种学习更有优势。

1672024430649.png

从实验结果可以看出,只有在只读情况下,基于level的学习效果要好于基于sstable的学习。考虑到BOURBON的目标是要实现高速查找,同时支持写操作,基于sstable的学习更加适合,所以BOURBON默认是基于sstable学习。

1672025368864.png

实验

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

allwellright

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值