Skip to main content
QUICK REVIEW

[论文解读] Exact Selectivity Computation for Modern In-Memory Database Query Optimization

Jun Hyung Shin, Florin Rusu|arXiv (Cornell University)|Jan 6, 2019
Data Management and Algorithms参考文献 11被引用 4
一句话总结

本文提出精确选择度计算(ESC),一种面向内存数据库和GPU加速数据库的新型查询优化范式,通过在优化阶段执行子查询精确计算选择度,避免依赖不准确的摘要统计。ESC在GPU上实现低于30ms的开销,并通过精确基数估计和过滤结果物化,使查询执行计划的执行速度最高提升32倍。

ABSTRACT

Selectivity estimation remains a critical task in query optimization even after decades of research and industrial development. Optimizers rely on accurate selectivities when generating execution plans. They maintain a large range of statistical synopses for efficiently estimating selectivities. Nonetheless, small errors -- propagated exponentially -- can lead to severely sub-optimal plans---especially, for complex predicates. Database systems for modern computing architectures rely on extensive in-memory processing supported by massive multithread parallelism and vectorized instructions. However, they maintain the same synopses approach to query optimization as traditional disk-based databases. We introduce a novel query optimization paradigm for in-memory and GPU-accelerated databases based on extit{exact selectivity computation (ESC)}. The central idea in ESC is to compute selectivities exactly through queries during query optimization. In order to make the process efficient, we propose several optimizations targeting the selection and materialization of tables and predicates to which ESC is applied. We implement ESC in the MapD open-source database system. Experiments on the TPC-H and SSB benchmarks show that ESC records constant and less than 30 milliseconds overhead when running on GPU and generates improved query execution plans that are as much as 32X faster.

研究动机与目标

  • 为解决查询优化中持续存在的选择度估计不准确问题,特别是针对复杂谓词和倾斜数据的情况。
  • 消除对直方图和采样等统计摘要的依赖,这些摘要往往无法捕捉属性之间的相关性。
  • 在现代内存数据库和GPU加速数据库中实现精确、可计算的选择度,此类系统具备低延迟执行的可行性。
  • 通过使用精确基数,改进查询执行计划,从而实现更优的连接顺序选择和性能提升。
  • 通过选择性应用和结果物化,将精确计算的性能开销最小化。

提出的方法

  • ESC通过在优化阶段执行子查询来计算选择度,以确定匹配复杂谓词的精确行数。
  • 优化器根据复杂度和潜在性能收益,选择特定表和谓词应用ESC。
  • 子查询的结果被物化并在最终执行计划中重用,避免重复计算。
  • 该方法被集成到MapD开源数据库中,对查询优化器的修改极少。
  • 优化措施包括选择性地将ESC应用于高影响谓词,并利用GPU并行性实现低延迟子查询执行。
  • 在内存系统中,物化优于流水线处理,以提升缓存效率并减少I/O。

实验结果

研究问题

  • RQ1通过子查询实现的精确选择度计算是否在复杂、相关或倾斜数据场景下优于传统的摘要统计估计?
  • RQ2在现代GPU加速的内存数据库上执行精确选择度计算时,其性能开销如何?
  • RQ3精确选择度是否能带来更优的查询执行计划,性能最多可提升多少?
  • RQ4ESC的开销如何随谓词复杂度和属性数量的增加而变化?
  • RQ5尽管存在初始计算成本,子查询结果的物化是否能进一步减少执行时间?

主要发现

  • 在所有测试工作负载下,ESC在GPU上的开销恒定且低于30毫秒,包括复杂谓词和高属性数量的情况。
  • 在TPC-H基准测试中,ESC使查询执行速度最高提升32.27倍,尤其在选择了更优连接顺序时效果显著。
  • 在规模因子为80的SSB基准测试中,ESC实现了最高7倍的加速,尤其在选择性更高的查询中收益最大。
  • 在CPU上,ESC的开销随属性数量增加而上升,主要受缓存影响,但即使在四个属性的情况下,开销仍低于340毫秒。
  • GPU上执行ESC子查询始终快于CPU,部分TPC-H查询中观察到4.88倍的性能优势。
  • 物化过滤结果显著减少了执行时间,通过消除最终计划中重复的过滤操作实现。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。