Bao:学习如何引导查询优化器
Bao: Learning to Steer Query Optimizers
摘要:
查询优化一直是数据管理系统中最具挑战性的问题之一。最近将机器学习技术应用于查询优化挑战的努力是有希望的,但是由于大量的训练开销、无法适应变化以及尾部性能差,几乎没有显示出实际的收益。出于这些困难的动机,并借鉴了对多武装土匪的长期研究历史,我们介绍了Bao(BAndit优化器)。Bao通过提供每个查询优化提示,利用了现有查询优化器中内置的智慧。Bao将现代树卷积神经网络与Thompson采样相结合,Thompson采样是一种有几十年历史且经过充分研究的强化学习算法。因此,Bao会自动从错误中学习,并适应查询工作负载、数据和模式的变化。在实验中,我们证明了Bao可以快速(比以前的方法快一个数量级)学习策略,提高端到端查询执行性能,包括尾部延迟。在云环境中,我们表明,与复杂的商业系统相比,Bao可以提供更低的成本和更好的性能。
英文摘要:
Query optimization remains one of the most challenging problems in data management systems. Recent efforts to apply machine learning techniques to query optimization challenges have been promising, but have shown few practical gains due to substantive training overhead, inability to adapt to changes, and poor tail performance. Motivated by these difficulties and drawing upon a long history of research in multi-armed bandits, we introduce Bao (the BAndit Optimizer). Bao takes advantage of the wisdom built into existing query optimizers by providing per-query optimization hints. Bao combines modern tree convolutional neural networks with Thompson sampling, a decades-old and well-studied reinforcement learning algorithm. As a result, Bao automatically learns from its mistakes and adapts to changes in query workloads, data, and schema. Experimentally, we demonstrate that Bao can quickly (an order of magnitude faster than previous approaches) learn strategies that improve end-to-end query execution performance, including tail latency. In cloud environments, we show that Bao can offer both reduced costs and better performance compared with a sophisticated commercial system.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。