Page 136 - 《软件学报》2025年第12期
P. 136

荣垂田 等: 多目标深度强化学习驱动的数据库系统参数优化技术                                                  5517


                                                                                           +
                 模型对大量样本的依赖性并打乱马尔可夫决策过程                  (MDP) 带来的相邻数据的相关性, CDBTune 使用了优先经验
                                                                                         +
                 回放  (PER) 方法  [20] , 从经验池中抽取将  TD-error 作为优先级存放的过往经验样本. CDBTune 的实验结果表明相
                 比于当时已有的其他数据库自动调参工具, 它针对不同负载环境产生的数据库参数配置使数据库系统的吞吐量更
                 高、时延更低.
                            +
                    CDBTune 在与数据库系统环境交互以优化数据库参数时, 只将数据库当前的运行指标                          (Metrics) 作为强化学
                 习从环境中获取的状态信息, 而忽略了            SQL 语句本身包含的信息. 该方法只支持粗粒度调优               (例如, 工作负载级调
                 优), 而不能提供细粒度调优        (例如, 查询级调优). Li 等人   [9] 在 2019 年提出了一个基于深度强化学习         (DRL) 模型的
                 查询感知数据库调优系统         QTune, 除了数据库状态之外, 该系统将查询特征也输入到               Actor 网络中, 以选择合适的
                 配置. 即使用双状态深度确定性策略梯度             (DS-DDPG) 模型来实现查询感知的数据库配置调优, 该模型利用                 Actor-
                 Critic 网络来基于查询向量和数据库状态调优数据库配置. 虽然 QTune 模型能够针对具体的                       SQL  提供更细粒度
                 的性能优化, 但是由于 SQL      语句有时会包含用户个人的隐私信息, 所以该工具存在隐私泄漏的安全隐患.
                    由于云上环境中系统资源、工作负载和数据库大小的不断的动态变化, 因此, 用于自动调优的系统需要灵活
                 并适应这些变化, 以便为给定的环境状态提供最佳性能. 2021                年  Gur 等人  [10] 提出了一种对工作负载变化敏感的多
                 模型在线调优算法, 该算法将多个           DDPG  强化学习模型在不同负载下进行训练, 为不断变化的工作负载选择最优
                 模型.
                    除此之外, HUNTER    [18] 和 UDO [19]  也是基于强化学习的系统, 它们使用强化学习技术在系统的内部指标和参
                 数之间建立神经网络来调整系统的性能. DB-BERT             [16,21] 结合 NLP 和强化学习来调整数据库参数, 通过分析文本以
                 确定了数据库调参的热点, 并应用奖惩措施来优化数据库性能. WATuning                   [17] 在深度强化学习的基础上引入了注意
                 力机制, 将不同的工作负载也作为模型的输入以更好地适应实际调优环境中工作负载的变化.
                    上述的基于单目标优化模型           (DDPG) 的数据库系统参数自动优化方法, 在面对数据库性能优化这种多目标优
                 化任务时都存在一定缺陷. 在设置奖励机制时, 需要提前确定调优偏好, 这个过程依赖于专家经验而且具有一定的
                 盲目性; 单目标强化学习的值函数更新方式难以应对多目标优化场景; 从发展的角度来看, 用户对数据库系统的需
                 求是变化的, 调优的偏好也要根据需求进行重新设计, 模型需要重新训练, 造成此类方法的适用性差; 并且没有考
                 虑到在系统资源受限的场景下进行参数优化的问题, 即难以根据需求扩展到更多优化目标.
                  2   强化学习与数据库系统自动参数优化的相关知识

                  2.1   强化学习
                    强化学习是机器学习的一个分支, 是一种模仿人类或动物在面对未知环境时的学习方式, 是一种从试错过程
                 中发现最优行为策略的技术, 已经成为解决环境交互问题的通用方法                       [22] . 强化学习主要由智能体     (Agent)、环境
                 (Environment)、状态  (State)、动作  (Action)、奖励  (Reward)、策略  (Policy) 组成. 智能体执行某个动作后, 环境将
                 会转换到一个新的状态. 对于该新的状态, 环境会给出奖励信号                   (正奖励或者负奖励). 智能体会根据新的状态和环
                 境反馈的奖励, 按照一定的策略执行新的动作, 如图               3  所示. 强化学习的过程是让智能体与环境的交互中, 通过尝
                 试不同的行为并观察环境的反馈以最大化累积奖励                  (回报) 的方式使智能体找到行为的最佳策略.

                                                          Environment
                                                            环境
                                            Reward                       Action
                                             奖励                           动作
                                                                 Policy
                                                 State
                                                 状态              策略

                                                           Agent

                                                     图 3 强化学习框架
   131   132   133   134   135   136   137   138   139   140   141