SkinnerDB:基于强化学习的遗憾有界查询求值
数据库
2019-01-17 v1
摘要
SkinnerDB 从底层设计起就用于可靠的连接顺序选择。它不维护任何数据统计量,也不使用代价或基数模型。相反,它利用强化学习在当前查询执行过程中即时学习最优连接顺序。为此,我们将查询的执行划分为许多小的时间片。在不同的时间片中尝试不同的连接顺序。我们合并依据不同连接顺序生成的结果元组,直到获得完整结果。通过测量每个时间片的执行进度,我们在执行过程中识别出有前景的连接顺序。伴随 SkinnerDB,我们引入了一种查询执行策略的新质量准则。我们将期望执行代价与最优连接顺序的执行代价进行比较。SkinnerDB 具备针对该准则优化的多种执行策略。其中一些可在现有数据库系统之上执行。为获得最大性能,我们引入了一个定制执行引擎,通过专门的多路连接算法和元组表示来实现快速的连接顺序切换。我们通过实验将 SkinnerDB 的性能与多种基线进行比较,包括 MonetDB、Postgres 以及自适应处理方法。我们考虑了多种基准,包括连接顺序基准和带用户自定义函数的 TPC-H 变体。总体而言,与偶尔灾难性连接顺序选择所带来的性能影响相比,可靠连接顺序选择的开销可忽略不计。
引用
@article{arxiv.1901.05152,
title = {SkinnerDB: Regret-Bounded Query Evaluation via Reinforcement Learning},
author = {Immanuel Trummer and Junxiong Wang and Deepak Maram and Samuel Moseley and Saehan Jo and Joseph Antonakakis},
journal= {arXiv preprint arXiv:1901.05152},
year = {2019}
}