Deploying a Steered Query Optimizer in Production at Microsoft
arXiv:2210.13625 · doi:10.1145/3514221.3526052
Abstract
Modern analytical workloads are highly heterogeneous and massively complex, making generic query optimizers untenable for many customers and scenarios. As a result, it is important to specialize these optimizers to instances of the workloads. In this paper, we continue a recent line of work in steering a query optimizer towards better plans for a given workload, and make major strides in pushing previous research ideas to production deployment. Along the way we solve several operational challenges including, making steering actions more manageable, keeping the costs of steering within budget, and avoiding unexpected performance regressions in production. Our resulting system, QQ-advisor, essentially externalizes the query planner to a massive offline pipeline for better exploration and specialization. We discuss various aspects of our design and show detailed results over production SCOPE workloads at Microsoft, where the system is currently enabled by default.
References in corpus (10)
- Neo: A Learned Query Optimizer
- Taming the Monster: A Fast and Simple Algorithm for Contextual Bandits
- Deep Reinforcement Learning for Join Order Enumeration
- Bao: Learning to Steer Query Optimizers
- Making Contextual Decisions with Low Technical Debt
- Adapting to Misspecification in Contextual Bandits
- MLOS: An Infrastructure for Automated Software Performance Engineering
- Optimal Resource Allocation for Serverless Queries
- CoPhy: A Scalable, Portable, and Interactive Index Advisor for Large Workloads
- Phoebe: A Learning-based Checkpoint Optimizer