关键词:
数据库管理系统
自动调优
面向负载
增强学习
降维处理
摘要:
数据库管理系统(DBMS)中存在着数量众多的配置项,它们控制着内存分布、I/O优化、查询计划的成本、并行性、日志记录、恢复等众多行为。如何有效地进行配置优化是所有数据密集型应用程序的一个重要工作,这在整个数据库发展历史上都是一项困难的任务。许多数据库系统含有近千个配置参数,并且系统的更新也会产生新的配置项。虽然数量众多的配置项可控制数据库系统中几乎所有内容,但其调优复杂度也随之提高。并且配置项的调整并非独立事件,参数间的相互影响难以避免,对于不同应用系统,极难存在一个或一组万能的配置项,因而配置项的设定或选择也就成为一个非常困难的问题。为降低调优成本,沿用相似负载的调优策略或其子策略成为常用方法,然而糟糕的是,影响配置项设定和优化的方法往往来源于数据库管理员甚至数据库专家的宝贵经验。为提高系统调优的可行性,本文构建基于增强学习技术的DBMS自动调优模型,使数据库系统即使在无历史数据的条件下,也可以依据实时系统状态所提供的反馈对配置项进行调整,从而提高数据库系统性能。我们在自研的DBMS自调优工具Loadstar中对模型进行实现,并对模型数据进行降维处理以提高自调优效率。最后在通用的DBMSs上进行实验验证,并对实验结果进行详细对比分析。本文主要贡献如下:构建反馈奖惩函数,基于增强学习技术进行自动调优模型构建;在无历史经验条件下,通过系统状态得到反馈继而迭代更新调优策略,最终得到满足目标状态的配置参数值;设计相似工作负载比较方法,利用历史经验数据,搜索与最新负载最为接近的调优策略,从而实现配置参数初始值的跳跃式设置,以降低自动调优的代价;提出基于关联关系和回归统计的降维方法,对大量系统指标和配置参数进行降维处理,从而进一步提高自动调优工具Loadstar的调优效率。设计充分的实验,对本文所构建的自动调优模型进行验证。