最近学习索引结构的进步建议用近似学习模型来替代现有的索引结构,比如b树。在这项工作中,我们提出了一个统一的基准,它将三种已经学习过的索引结构的优化实现与几种最先进的传统基准进行比较。通过使用四个真实的数据集,我们证明了在内存中只读工作负载下,学习索引结构在密集数组上的性能确实优于非学习索引。我们研究了缓存、流水线、数据集大小和密钥大小的影响。我们研究了学习的索引结构的性能,并建立了一个解释为什么学习的模型能取得如此好的性能。最后,我们研究了学习索引结构的其他重要特性,例如它们在多线程系统中的性能和构建时间。

1.

虽然索引结构是数据库管理系统中研究最充分的组成部分之一,但最近的工作[11,18]为这个几十年前的话题提供了一个新的视角,展示了如何使用机器学习技术来开发所谓的学习索引结构。与传统的索引结构(如[9,14,15,19,30,32])不同,学习索引结构构建底层数据的显式模型来提供有效的索引

更糟糕的是,缺乏开源实现迫使研究人员重新实现[18]技术,或使用封底计算,以与学习的索引结构进行比较。虽然这本身不是一件坏事,但我们很容易不优化基线,或做出其他不现实的假设,即使是出于最好的意图,这可能会使主要内容变得空洞。

在本文中,我们试图从三个方面解决这些问题:(1)我们提供了一个RMIs的第一个开源实现,供研究人员进行比较和改进;(2)我们创建了一个包含多个真实数据集和工作负载的存储库,用于测试;(3)我们创建了一个基准测试套件,它可以方便地与已知的和传统的索引结构进行比较。为了避免与弱基线进行比较,我们的开源基准测试套件[4]包含了广泛使用的索引结构实现,这些索引结构由原始作者进行了调整,或者两者兼有。

Understanding learned indexes  除了提供一个用于未来研究的开源基准测试外,我们还试图更深入地理解已学习的索引结构,扩展[16]的工作。首先,我们提出了三种最近学习的索引结构(RMIs [18], PGM[12]和RS[17])的帕累托分析。几种传统的索引结构,包括树、tries和哈希表。我们表明,在热缓存、紧密循环设置中,所有三种学习索引结构变体都可以提供比几种传统索引结构更好的性能/大小权衡。我们将这种分析扩展到多个数据集大小,32和64位整数,以及不同的搜索技术(即二进制、线性、插值)。

其次,我们分析了为什么学习的索引结构能取得如此好的性能。虽然我们无法找到一个完全解释索引结构性能的指标(直观地看,这样的指标似乎不存在),但我们提供了性能计数器和其他属性的统计分析。最重要的解释变量是缓存丢失,尽管缓存丢失本身不足以对统计意义重大的解释。令人惊讶的是,我们发现分支缺失并不能解释为什么学习的索引结构比传统结构性能更好,就像[18]中最初宣称的那样。事实上,我们发现学习索引结构和传统索引结构都能有效地使用分支

第三,我们分析索引结构在存在内存围栏、冷缓存和多线程环境下的性能,以测试更真实设置下的行为。在所有情况下,我们发现学习的方法都表现良好。

FORMULATION & DEFINITIONS

我们在一个零索引的排序数组

Benchmarking Learned Indexes(VLDB2021)相关推荐

  1. 来给博客除草了:Learned Indexes for a Google-scale Disk-based Database

    1. 引言 这是一篇业界发表在NeurlIPS 2020的Wip论文<Google规模的基于磁盘的数据库的学习索引>.自从学习索引祖师爷Tim Kraska@MIT在SIGMOD 2018 ...

  2. A Tutorial on Learned Multi-dimensional Indexes

    文章目录 ABSTRACT CCS CONCEPTS KEYWORDS 1 INTRODUCTION 2 OUTLINE OF THE TUTORIAL 2.1 Part 1: Learned Ind ...

  3. [论文阅读] The Case for Learned Index Structures

    文章目录 Intro 2 RANGE INDEX 2.3 A First, Naïve Learned Index 3 THE RM-INDEX 3.2 递归模型索引 3.3 Hybrid Index ...

  4. An Introduction to Hashing in the Era of Machine Learning

    In December 2017, researchers at Google and MIT published a provocative research paper about their e ...

  5. AI System 人工智能系统 TVM深度学习编译器 DSL IR优化 计算图 编译 优化 内存内核调度优化 DAG 图优化 DFS TaiChi 函数注册机 Registry

    DSL 领域专用语言 TVM深度学习编译器 AI System 人工智能系统 参考项目 TaiChi 三维动画渲染物理仿真引擎DSL TVM 深度学习DSL 密集计算DSL LLVM 模块化编译器 编 ...

  6. 【论文阅读】PGM-index

    文章目录 1. INTRODUCTION 2. PGM-INDEX 2.1 Optimal PLA-model 2.2 Indexing the PLA-model 3. DYNAMIC PGM-IN ...

  7. 西瓜书习题详解 机器学习能在互联网搜索的哪些环节起什么作用?

    看完了西瓜书的第一章,课后习题有这个问题.我先将这个问题定义为:机器学习在搜索引擎上的应用. 维基百科:搜索引擎(英语:Search Engine)是一种信息检索系统,旨在协助搜索存储在计算机系统中的 ...

  8. 计算机网络原理与实践ppt,从理论到实战,微软人工智能系统课程分享(附PPT)

    今天分享一门来自微软的最新课程,中文名称为人工智能系统,主要讲解支持人工智能的计算机系统设计,对应的英文课程名称为System for AI. 近年来人工智能特别是深度学习技术得到了飞速发展,这背后离 ...

  9. SQL Server Indexes

    Posted by scott on 2003年12月31日 Coveres the basics of indexes in SQL Server. Clustered versus non-clu ...

最新文章

  1. H5画布不显示图片的问题解决
  2. python3菜鸟教程中文-Python3 日期和时间
  3. Tensorflow 2.0.0-alpha 安装 Linux系统
  4. sql2008 查询某个表被那些存储过程用到
  5. Hibernate持久化对象三种状态
  6. dom4j读取xml信息
  7. 单元测试反模式,完整列表
  8. mysql慢sql增加读写分离_MySQL主从同步+读写分离
  9. Cesium学习系列汇总
  10. java addall 不能传null_null 之AddAll、Add和Boolean
  11. cocos2d-x AnchorPoint锚点
  12. 10. Have assignment operators return a reference to *this
  13. 使用Python编写一个QQ聊天机器人
  14. 将用户需求转成产品需求
  15. 基于OpenCV的人脸识别签到系统
  16. CSP_201412-2_Z字形扫描
  17. win10加装机械硬盘卡_以微软的技术实力,win10还会出现硬盘100%占用的问题,为什么呢...
  18. Mybatis-plus的自动填充功能
  19. office2021官方正版镜像
  20. MariaDB源码分析——CONNECT类

热门文章

  1. 深入浅出SpringBoot的核心原理
  2. Android下监听返回键、home键、任务键
  3. 文件hidsdi.h
  4. 扇入Fan-in和扇出Fan-out
  5. Java批量导出word压缩后的zip文件
  6. wstmall wstmart wstshop区别
  7. 关于checksum校验和算法
  8. 数据库的一些基本语法一
  9. 机器学习笔记之狄利克雷过程(五)——基于狄利克雷过程的预测任务
  10. ELK——ElasticStack日志分析平台