UDO is a versatile tool for offline tuning of database systems for specific workloads. UDO can consider a variety of tuning choices, reaching from picking transaction code variants over index selections up to database system parameter tuning. UDO uses reinforcement learning to converge to near-optimal configurations, creating and evaluating different configurations via actual query executions (instead of relying on simplifying cost models). To cater to different parameter types, UDO distinguishes heavy parameters (which are expensive to change, e.g. physical design parameters) from light parameters. Specifically for optimizing heavy parameters, UDO uses reinforcement learning algorithms that allow delaying the point at which the reward feedback becomes available. This gives us the freedom to optimize the point in time and the order in which different configurations are created and evaluated (by benchmarking a workload sample). UDO uses a cost-based planner to minimize reconfiguration overheads. For instance, it aims to amortize the creation of expensive data structures by consecutively evaluating configurations using them. We evaluate UDO on Postgres as well as MySQL and on TPC-H as well as TPC-C, optimizing a variety of light and heavy parameters concurrently.
翻译:UDO是调整特定工作量数据库系统的离线工具。 UDO可以考虑各种调试选择,从选择交易代码变量到选择指数到数据库系统参数调试。 UDO使用强化学习,以接近最佳配置,通过实际查询处决(而不是依赖简化成本模式)创建和评价不同的配置。为了适应不同的参数类型,UDO将重度参数(昂贵的改变成本,例如物理设计参数)与光参数区分开来。具体为优化重度参数,UDO使用强化学习算法,以推迟获得奖励反馈的时间点。这使我们可以自由地优化创建和评估不同配置的时间点和顺序(通过设定工作量样本的基准)。 UDO使用基于成本的规划器来尽量减少重组间接费用。例如,它的目的是通过连续评估配置来对创建昂贵的数据结构(如物理设计参数等)进行调和。我们在Postgress和MySQL以及TPC-H上对UD的UD值进行评估,同时优化各种光和重度参数。