Updatable Learned Index with Precise Positions(VLDB2022)

在现代数据库引擎中,索引在加速查询处理方面起着至关重要的作用。“学习索引”的新范式极大地改变了DBMS中索引结构的设计方式。关键的见解是,索引可以被视为预测数据集中查找键位置的学习模型。虽然这类研究在查找时间和索引大小方面都显示出良好的结果,但它们不能有效地支持更新操作。尽管最近的研究提出了一些支持更新的初步方法,但它们是以牺牲查找性能为代价的

在本文中,我们提出了一个全新的学习索引框架LIPP来解决这一问题与最先进的学习索引结构类似,LIPP能够支持各种索引操作,即查找查询、范围查询、插入、删除、更新和批量加载。同时,我们克服了前人研究的局限性,在处理更新操作时对树结构进行了适当的扩展,消除了模型在叶节点上预测的位置偏差。此外,我们进一步提出了一个动态调整策略,以确保树index高度是紧密有界的,并提供了全面的理论分析来说明它。我们对几个真实的和合成的数据集进行了广泛的实验。结果表明,我们的方法始终优于最先进的解决方案,对于具有不同索引操作的更广泛的工作负载类别,最多可实现x4。

背景:

1)近年来对学习索引[22]的研究为排序数据的索引构造开辟了一条新的途径。给定一个数据集,Learned Index利用机器学习模型来学习数据分布,并预测查找键在数据集中的位置。

2)原始的Learned Index[22]只支持只读数据集的查找,无法处理索引结构中必不可少的更新操作。

3)ALEX[11]和PGM[12]提出了几种策略来增加对索引更新的支持。但是,它们可能会受到较差的查找性能的影响。此外,对这些索引的更新操作也会导致大量的元素移动。这些开销都是由已有模型的不精确预测带来的。

方法:

在此基础上,我们提出了基于精确位置的可更新学习索引(LIPP),这是一种全新的学习索引,能够高效地支持一整套索引操作,包括查找查询、范围查询、插入、更新、删除和批量加载。LIPP的一个明显优势是它消除了叶子节点中的最后一英里搜索,从而将查找成本限制在树的高度上,并显著提高了索引性能。在LIPP中键到位置的映射是精确的。如果多个键映射到相同的位置,将创建一个新的子节点来保存这些键。为了限制树索引的高度,我们提出了能够均匀化的核化线性模型将新插入元素的映射分配到位置,并使用轻量级调整策略保持树的高度有界。

框架:THE LIPP INDEX

LIPP的核心思想是避免不准确的预测,即所有模型的预测都是准确的。使用精确的位置,可以消除不可避免的重要开销,包括节点内搜索查找,元素移动插入。然而,为了实现这一目标,我们需要克服以下两个挑战:首先,两个不同的键的预测可能会在一个位置重合。我们将具有这种键的元素称为冲突元素。第二个挑战来自于第一个挑战:简单地为冲突的键创建新节点会导致树的高度无限制地增加,从而损害索引查找和插入操作的性能。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值