LevelHeaded:使最坏情况最优连接在常见场景中生效
数据库
2017-08-29 v1
摘要
结合 SQL 风格商业智能 (BI) 查询与线性代数 (LA) 的流水线在工业界正变得日益常见。因此,越来越需要在单一框架中统一这些工作负载。遗憾的是,现有解决方案要么牺牲专使用关系型数据库所固有的优势(例如逻辑与物理独立性),要么相比专用引擎产生数量级的性能差距(或两者兼具)。本工作中,我们研究将一种新型查询处理架构应用于标准 BI 和 LA 基准测试。为此,我们提出一个名为 LevelHeaded 的新型内存查询处理引擎。LevelHeaded 使用最坏情况最优连接作为 BI 和 LA 查询的核心执行机制。借助 LevelHeaded,我们展示了如何将针对 BI 和 LA 查询的关键优化捕获于最坏情况最优查询架构中。利用这些优化,LevelHeaded 在标准 LA 基准测试上比其他关系型数据库引擎(LogicBlox、MonetDB 和 HyPer)快数个数量级,同时在其各自基准测试上平均性能达到最佳 BI (HyPer) 和 LA (Intel MKL) 解决方案的 31% 以内。我们的结果表明,此类单一查询处理架构能够在 BI 和 LA 查询上均提供具有竞争力的性能。
引用
@article{arxiv.1708.07859,
title = {LevelHeaded: Making Worst-Case Optimal Joins Work in the Common Case},
author = {Christopher R. Aberger and Andrew Lamb and Kunle Olukotun and Christopher Ré},
journal= {arXiv preprint arXiv:1708.07859},
year = {2017}
}