Stop Thinking, Just Do!

Sungsoo Kim's Blog

Universal Database Optimizer

tagsTags

7 November 2022


Article Source


Universal Database Optimizer

UDO is the Swiss Army knife of database optimizer tools: it optimizes index selections, tunes system parameters, and picks between semantically equivalent stored procedures. I discuss UDO’s design and present experimental results at VLDB’22 in Sydney.

Abstract

UDO is the Swiss Army knife of database optimizer tools: it optimizes index selections, tunes system parameters, and picks between semantically equivalent stored procedures. The input is a workload to optimize, together with a performance metric. The output is a configuration (indexes, parameters, …) that optimizes this metric.

UDO iteratively tries out database configurations and measures performance. It uses reinforcement learning to select the configuration to try next, guided by performance results of prior configurations. The only problem: switching from one configuration to another one (e.g., by creating and dropping indexes) can be expensive!

To reduce re-configuration overheads, UDO deliberately delays the evaluation of configurations. It waits until enough similar configurations are selected. Then, it uses cost-based optimization to pick an evaluation order that minimizes re-configuration overheads. This process is enabled by a reinforcement learning algorithm that can handle delays between actions and rewards.


comments powered by Disqus