【DB&AI】《Buffer Pool Aware Query Scheduling via Deep Reinforcement Learning》

原文链接

Buffer Pool Aware Query Scheduling via Deep Reinforcement Learning
Chi Zhang等著,发表于2020-7-21,工作负载调度 (Workload scheduling) 相关。

整体概述

本文中,作者认为可以通过降低查询访问磁盘的次数,也就是提高缓存命中率 (buffer hit rate) 的方法,来提高查询调度 (query scheduling) 的性能。作者提出了名为SmartQueue的调度器,它可以利用输入查询中的重叠信息,依靠深度强化学习方法找到最优的查询调度策略。

模型解析

正如前面提到的,SmartQueue的核心思想就是利用输入查询中重叠的部分(如两个查询要访问同一个物理存储区),来充分利用缓冲区中的数据或结果,以此来提高缓存命中率,减少访问磁盘的次数,进而提高查询的效率。

强化学习中的三个比较重要的概念分别是智能体 (agent) 、策略 (policy) 和环境 (environment) 。在SmartQueue中,智能体就是它的核心,一个deep reinforcement learning (DRL) agent,环境则是数据库和输入的查询,策略就是SmartQueue需要通过学习得到的查询调度策略。通过定义适当的奖励函数,使得该模型可以从与环境不断地交互中学到规律。

SmartQueue工作图
如图所示即为SmartQueue的系统模型,也展现出了它的工作过程。在得到查询队列后,SmartQueue首先将它们分割成一个个单独的查询语句,分别标记为 Q1~Qn ,再找到他们要访问的物理存储区的编号,并用位图标记出它们是否位于缓冲池中。将这些作为输入信息输入深度强化学习网络(使用deep Q-learning算法),经过神经网络,最后在输出节点得到每个查询语句的Q值,依次取有较大Q值对应的查询语句 Qi执行,直到完成整个查询。

模型效果

作者将SmartQueue与另两个调度方法对比,分别是先来先服务策略和贪心策略,前者即按原查询指令的排列顺序执行,后者则是使用了非深度的简单启发式搜索。最终的结果如下图所示:
模型效果
可以看到,SmartQueue的执行速度要优于FCFS和贪心方法。而在平均缓存命中率和查询延迟方面,SmartQueue在查询量较少的情况下表现不如另两种方法,但在查询量较多的时候有比较明显的优势。

未来计划

作者在结论部分提到目前SmartQueue只是个简单的原型,他们认为未来还可以在以下几个方面做进一步的推进:

(1)神经网络结构:全连接的神经网络结构可能不是查询调度问题的最佳归纳偏置 (inductive bias) ,也可能没有天生的 (innately) 携带对该问题有用的信息,甚至全连接结构与查询调度之间也不存在过多的联系。其他网络结构可能会带来更大的提升。

(2)服务水平协议 (SLAs) :考虑某个应用具体的SLAs,以调整强化学习中奖励信号 (reward signal) 的方式,将SLAs特征整合进模型,可能会带来更好的结果。

(3)查询优化:将SmartQueue整合入查询优化器,可能会带来更大的提升。

(4)缓冲区管理 (buffer management) :作者在文中也提到,他们假定系统的缓冲区管理策略是固定的,而查询语句的顺序是可以被改变的。故SmartQueue只考虑了查询排序 (query ordering) ,而一个较大的系统需要将查询排序和缓冲区管理都考虑在内。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值