Autotune
运行代码注意事项
1. 安装Ubuntu Packages
- sudo apt-get install python3-pip python-dev python-mysqldb rabbitmq-server
2. 安装requirments.txt
- 注意需要执行下面几个命令
- sudo apt-get install libpq-dev
- sudo apt-get install libmysqlclient-dev
- pip3 install -r requirements.txt
论文内容
1. 工作负载的表示
- 工作负载:数据库的工作负载可以理解成数据库的工作特性,大的方向上工作负载有:OLTP、OLAP、HTAP,OLTP工作负载写请求多一些,查询较简单。OLAP工作负载读多一些,查询较负载。HTAP介于两者之间。合理的表示工作负载可以有效的优化系统
- 本文工作负载:
- 利用数据库内部统计信息来描述工作负载
- 开始前删除所有统计信息,运行一个周期后记录统计信息,由于目前系统不知道每个metrics的作用,所以会将所有的信息以键值对的形式存储下来。
- 接下来要删除冗余的metrics,减少ML的搜索空间,有两种冗余的度量
- 一种是不同粒度的相同度量。(例如单位不同,比如mysql以字节和页为单位统计的数据量)
- 另一种是两个度量具有强相关性。
- 本文采用两种技术裁剪,一种是降维技术(因子分析FA),它会将DBMS的高维数据降为低维数据(聚类技术的预处理,减少了噪声)、另一种是聚类K-Mean技术,将低维数据聚合到有意义的组里。
- FA技术
- 输入:矩阵X,行代表metrics、列代表我们已经用过的knots,entry $$X_{ij} is value of metric i on configuration j.$$
Autotune
http://example.com/2023/04/01/Autotune/