陈 镭
(1.南京审计大学 信息工程学院,江苏 南京 211815;2.南京大学计算机软件新技术国家重点实验室,江苏南京 210023)
数据库管理系统(Database Management System,DBMS)在管理大量数据和处理复杂工作的同时,自身也有成百上千个参数(Mysql 有几百个,Oracle 则有上千个)需要配置,如缓存大小和读写磁盘频率等。DBMS 的性能很大程度上依赖于这些参数的合理设置,但应用程序不能简单地复用先前配置,最佳配置往往取决于其工作负载和底层硬件。配置参数大多不是独立的,其间存在复杂的隐式关系,更改一个参数可能会影响另一个参数的最佳设置,如何找到最优参数配置是一个非确定性多项式(NP-hard)问题。因此,数据库管理人员往往需要花费大量时间根据自身经验调优数据库参数。随着数据库规模与复杂性的不断增长,以及工作负载的频繁变化,数据库管理人员的优化工作量已经超出其承受能力。
为解决上述问题,利用机器学习技术改进数据库系统性能成为工业界和学术界的研究热点。在工业界,Oracle公司于2017 年发布了无人驾驶数据库,可以根据负载自动调优并合理分配资源;阿里云于2018 年启动数据库智能参数优化的探索[1],目前已经在阿里集团10 000 个实例上实现了规模化落地,累计节省12%的内存资源;华为于2019年发布了首款人工智能原生(AI-Native)数据库,首次将深度学习融入分布式数据库的全生命周期。在学术界,卡耐基梅隆大学数据库研究组开发的OtterTune 系统[2]维护了一个调优历史数据库,可利用这些数据构建监督和无监督的机器学习模型组合,进而使用这些模型映射工作负载、推荐最优参数等,使DBMS 调优过程完全自动化;……