RadixSpline: A Single-Pass Learned Index

最近的研究表明,学习模型在大小和查找性能方面优于最先进的索引结构。虽然这是一个非常有前途的结果,但现有的学习结构通常执行起来很麻烦,构建起来也很慢。事实上,我们知道的大多数方法都需要对数据进行多次训练。我们引入了RadixSpline (RS),这是一种学习索引,可以在一次数据传递中构建,在大小和查找性能方面与最先进的学习索引模型(如RMI)相比具有竞争力。我们使用SOSD基准来评估RS,并表明它在所有数据集上都取得了具有竞争力的结果,尽管它只有两个参数

方法:

在这项工作中,我们引入了RadixSpline (RS),这是一个学习索引,可以在排序数据的一次传递中构建。值得注意的是,fit-tree[6]和PGM[5]的建议也支持单边构建。但是,对于这两个索引,每个元素的工作量都是对数量级的(类似于b树中的插入)。在RS中,我们提出了第一个单边学习索引,每个新元素的工作量恒定。

作为一个有序索引,RS同时支持相等谓词和范围谓词(例如,下界查找)。RS构建分为两个步骤。首先,用线性样条拟合数据的CDF,以保证一定的误差范围。这将产生一组比底层数据小得多的样条点。其次,我们构建一个基数表(一个平面基数结构),作为样条点的近似索引。与自适应基数树(ART)[14]中的Node256类似,我们提取某个基数前缀(例如,前20位,忽略所有键共享的公共前缀位),并将其作为基数表的偏移量。这两个步骤都可以在对排序数据的一次传递中执行。

RADIXSPLINE

RadixSpline (RS)索引用于将查找键映射到索引(键在底层数据中的位置)。与RMI[13]类似,基数样条索引要求底层数据按平面数组中的查找键排序。RS索引由两个组成部分组成:一组样条点和一个基数表。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值