Cuttlefish:一种用于自适应查询处理的轻量级原语
数据库
2018-02-27 v1 分布式、并行与集群计算
摘要
现代数据处理应用执行日益复杂的分析,需要超出传统关系代数的操作。因此,查询计划中的算子多样性和复杂性不断增加。为所有这些新颖的逻辑算子设计查询优化器规则和代价模型以选择物理算子是不切实际的。为应对这一挑战,我们开发了 Cuttlefish,一种用于自适应处理在线查询计划的新原语,它在查询执行期间探索候选物理算子实例,并利用多臂老虎机强化学习技术采用最快的实例。我们在 Apache Spark 中构建了 Cuttlefish 原型,并自适应地为图像卷积、正则表达式匹配和关系连接选择算子。我们的实验表明,基于 Cuttlefish 的自适应卷积和正则表达式算子可达到全知预言机(始终选择最优算法)吞吐量的 72–99%,即使单个物理算子比最优者慢至多 105 倍。此外,与 Spark SQL 的查询优化器相比,Cuttlefish 实现了高达 7.5 倍的连接吞吐量提升。
引用
@article{arxiv.1802.09180,
title = {Cuttlefish: A Lightweight Primitive for Adaptive Query Processing},
author = {Tomer Kaftan and Magdalena Balazinska and Alvin Cheung and Johannes Gehrke},
journal= {arXiv preprint arXiv:1802.09180},
year = {2018}
}