Updatable Learned Index with Precise Positions(VLDB2022)

article/2025/10/29 8:40:36

在现代数据库引擎中,索引在加速查询处理方面起着至关重要的作用。“学习索引”的新范式极大地改变了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的核心思想是避免不准确的预测,即所有模型的预测都是准确的。使用精确的位置,可以消除不可避免的重要开销,包括节点内搜索查找,元素移动插入。然而,为了实现这一目标,我们需要克服以下两个挑战:首先,两个不同的键的预测可能会在一个位置重合。我们将具有这种键的元素称为冲突元素。第二个挑战来自于第一个挑战:简单地为冲突的键创建新节点会导致树的高度无限制地增加,从而损害索引查找和插入操作的性能。


http://chatgpt.dhexx.cn/article/7jJBpJfm.shtml

相关文章

VLDB 2023 | 北大河图发布分布式训练神器Galvatron, 一键实现大模型高效自动并行...

关注公众号,发现CV技术之美 本文转自机器之心。 北大河图团队提出了一套面向大模型的自动并行分布式训练系统Galvatron,相比于现有工作在多样性、复杂性、实用性方面均具有显著优势,论文成果已经被 VLDB 2023 接收。 最近一段时间&#xff0c…

Benchmarking Learned Indexes(VLDB2021)

最近学习索引结构的进步建议用近似学习模型来替代现有的索引结构,比如b树。在这项工作中,我们提出了一个统一的基准,它将三种已经学习过的索引结构的优化实现与几种最先进的传统基准进行比较。通过使用四个真实的数据集,我们证明了…

阿里云数据库再获学术顶会认可,一文全览VLDB最新亮点

一年一度的数据库领域顶级会议VLDB 2019于当地时间8月26日-8月30日在洛杉矶圆满落幕。在本届大会上,阿里云数据库产品团队浓墨登场,不仅有多篇论文入选Research Track和Industrial Track,为了进一步加深产学研学术交流,阿里云还在…

2019计算机研究生暑期学校,2019年度VLDB暑期学校

由CCF数据库专业委员会、VLDB中国数据库学院主办,中国人民大学信息学院与数据工程与知识工程教育部重点实验室承办的2019年度VLDB暑期学校(VLDB Summer School 2019)于2019年7月22日在中国人民大学信息楼报告厅隆重举行开班仪式。出席开班仪式的嘉宾有:中…

13 种高维向量检索算法全解析!数据库顶会 VLDB 2021 论文作者干货分享

编者按: 以图搜图、商品推荐、社交推荐等社会场景中潜藏了大量非结构化数据,这些数据被工程师们表达为具有隐式语义的高维向量。为了更好应对高维向量检索这一关键问题,杭州电子科技大学计算机专业硕士王梦召等人探索并实现了「效率和精度最…

Deep Upsupervised Cardinality Estimation 解读(2019 VLDB)

Deep Upsupervised Cardinality Estimation 解读(2019 VLDB) Deep Upsupervised Cardinality Estimation选择度(基数)估计问题定义选择度和数据联合分布的关系深度自回归模型如何计算joint distribution编码解码策略具体执行属性的…

VLDB 2021 COCO 论文阅读

Epoch-based Commit and Replication in Distributed OLTP Databases 记录一篇之前读过的论文。。。 整篇论文的核心在于Epoch,将传统数据库以事务为粒度提交和恢复变成了以Epoch为粒度来提交和恢复,这样做的好处就是可以减少2PC和同步复制的时间开销。…

【区块链论文整理】VLDB篇

VLDB (Very Large Data Base)是数据库三大顶会之一,近几年也发表了不少水平很高的文章。本文主要针对VLDB 会议中区块链相关的论文进行简单整理。 2021 SlimChain: Scaling Blockchain Transactions through Off-Chain Storage and Parallel Processing…

入选数据库顶会 VLDB:如何有效降低产品级内存数据库快照尾延迟?

阿里云操作系统团队、阿里云数据库团队以及上海交通大学新兴并行计算研究中心一起合作的论文 “Async-fork: Mitigating Query Latency Spikes Incurred by the Fork-based Snapshot Mechanism from the OS Level” 被数据库系统领域顶会 Very Large Data Bases Conferences (V…

VLDB 2023 | 基于擦除的浮点无损压缩(附论文和源码)

大量浮点时间序列数据正以前所未有的高速率生成。一种高效、紧凑、无损的时间序列数据压缩方法对海量数据的应用场景至关重要。现有的大多数浮点无损压缩方法是基于异或操作,但它们没有充分利用尾随零,这通常会导致压缩率不尽如人意。本次为大家带来重庆…

运算符—逻辑运算符

目录 5.逻辑运算符 5.1逻辑运算符概述 5.2短路逻辑运算符 5.逻辑运算符 (学完之后要求能够使用逻辑运算符完成逻辑运算) 5.1逻辑运算符概述 在数学中,一个数据x,大于3,小于6,我们可以写为这样来表示&am…

C语言关系运算和逻辑运算

一、关系运算 1.关系运算符 每个关系运算符对它左侧值和右侧值进行比较大小的运算 2.关系表达式 用关系运算符连接起来的式子。 若关系为真,关系表达式的值为1; 若关系为假,关系表达式的值为0; 3.优先级 关系运算符优先级低于算术…

C语言复习--逻辑运算符|| 和,!

&& 只有两个条件都为真时,才为真。||只要一个为真,就为真。 逻辑运算符很重要的法则是短路法则。 逻辑运算符的运算顺序都是从左到右计算。 && 当左侧条件为假时,就不计算右侧。 || 都左侧条件为真时,就不计…

C语言:关系运算符逻辑运算符

本节的所讲解的符号,大家在生活中应该都有用过,像我们去商场买东西,都会比较一下价格,是不是相等啊,哪家的贵,哪家的便宜啊。 在C语言中程序中也存在这样的比较,这个时候就需要用到关系运算符了…

C语言逻辑运算符详解

情景模式&#xff1a;现在研发出了一款新的软件&#xff0c;要求使用者必须成年&#xff0c;并且成绩大于等于60&#xff0c;该怎么办呢&#xff1f; 或许你会想到使用嵌套的 if 语句&#xff0c;类似下面这样的代码&#xff1a; #include <stdio.h> int main() {int a…

C 语言 逻辑运算符

文章目录 介绍逻辑运算符一览案例演示 介绍 用于连接多个条件&#xff08;一般来讲就是关系表达式&#xff09;&#xff0c;最终的结果要么是真(非 0 表示)&#xff0c;要么是 假(0 表示) 。 逻辑运算符一览 下表显示了 C 语言支持的所有逻辑运算符。假设变量 A 的值为 1&am…

☀️光天化日学C语言☀️(11)- 逻辑运算符 | 我是一个有逻辑的人

&#x1f649;饭不食&#xff0c;水不饮&#xff0c;题必须刷&#x1f649; C语言免费动漫教程&#xff0c;和我一起打卡&#xff01; &#x1f31e;《光天化日学C语言》&#x1f31e; LeetCode 太难&#xff1f;先看简单题&#xff01; &#x1f9e1;《C语言入门100例》&#…

C语言逻辑运算符介绍和示例

文章目录 1、逻辑运算符介绍2、逻辑表达式的书写3、不得不说的逻辑非4、获取视频教程5、版权声明 1、逻辑运算符介绍 在日常生活中&#xff0c;要做出某个决定&#xff0c;需要判断的条件往往不止一个&#xff0c;需要判断多个条件&#xff0c;例如超女选秀&#xff0c;参与选…

C语言按位逻辑运算符总结-与、或、非、异或

点击上方蓝字关注我&#xff0c;了解更多咨询 C中有按位逻辑运算符&#xff1a;按位取反、按位与、按位或、按位异或。这4个运算符可以用于整型&#xff0c;包括char类型。按位操作针对每一个位进行操作&#xff0c;不影响左右两边的位。4个运算符的作用总结如下&#xff1a; 一…

C语言逻辑运算符和||,一篇文章带你读懂逻辑表达式!

目录 逻辑运算符有哪些&#xff1f; 逻辑运算符的短路特性 逻辑运算符在表达式求值中的问题 逻辑运算符&&、||混合的不同情况 逻辑运算符有哪些&#xff1f; C 语言提供了以下三种逻辑运算符。 一元&#xff1a;&#xff01;&#xff08;逻辑非&#xff09;。 二…