一、CDBTuner大致流程:
1、创建DDPG模型
2、提取current_Knob
(3-6循环,直至训练完成)
3、提取current_state、initial_metrics
4、将current_state输入到DDPG中确认下一步的action(KNOB)
5、将新Knob设置到mysql中,然后计算reward,next_state, next_initial_metrics.
6、更新DDPG网络。
二、CDBTuner强化学习模型
1、首先从经验回放内存中提取一批转换(st,rt,at,st+1)。
2、我们将st+1输入到actor网络,并输出旋钮设置a′t+1。
3、将st+1和a′t+1发送到critic网络后,得到Vt+1的值。
4、计算Vt+1 + rt = V’t 将st,at的值输入到critic网络得到的是Vt,计算V’t 和Vt的差值作为损失函数,更新critic网络。
5、利用policy gradient算法(Vt)来更新 actor网络。
注:其中reward计算方式如下:
三、复现的实验结果对比
1、开始sysbench的测试结果
2、结束时sysbench的测试结果
3、论文中的实验结果:
注:实验环境为CDB-A