【论文阅读 SIGMOD18】Query-based Workload Forecasting for Self-Driving
Query-driven Performance Prediction for Automated DBMS in Self-Driving Database Management Systems
- My Summary
ABSTRACT
Autonomous DBMS的首要任务是建立模型并预判工作负载。传统的预测技术主要基于查询资源利用率的数据建模。然而,在数据库物理架构和硬件资源发生变动的情况下,并不会影响这些指标的变化性特征,并导致早期基于这些指标构建的预测模型变得无效。
开发了QueryBot 5000这一具備抗干扰性的预测架构,使DBMS能基于历史数据预估未来查询的需求程度。为了适应快速变化的工作负载需求,在此研究中采用综合考虑工作负载中的查询模式组合而非依赖于物理执行资源的数量。该架构提供短期与长期的需求预判分析,并引入一种基于聚类分析的方法来缩减所需管理的预估模型数量。在三个数据库进行测试,在MySQL及外置控制器PG上实现该方法并选择了合适的索引优化措施
1 INTRODUCTION
两个原因关于为什么要再次努力开发self-driving dbms:
- 先进存储与计算系统的提升能力使得数据库管理系统(DBMS)具备获取足够量的数据以描述其行为特性。
- 这一进步源于机器学习领域的最新发展,在深度神经网络架构以及强化学习领域取得了显著突破。
- 由于DBMS能够更好地理解和分析应用程序的工作负载数据,
- 它的时间推移将导致系统性能持续优化。
要实现完全自主(autonomous),系统必须能够预测未来的负载变化并采取相应的行动(action)。此外,在低谷时段(off-peak period),系统还应能够自动执行这些行动(action)。否则,在高峰期(peak period),会出现资源争用的问题(problem)。
以前的工作已经研究了不同上下文中的数据库工作负载建模。
- 一种方法是将系统资源需求建模为特定的工作负载特征
- 其他方法则通过分析 OLTP 工作负载变化的可能性来模拟数据库性能
- 此外还有研究采用隐马尔可夫模型或回归分析技术预测工作负载的时间变化趋势
- 在早期的研究中人们还使用更为系统化的建模方法这些方法基于固定的事务类型和发生频率
所有这些方法都存在缺陷,这使得它们不适合自治系统。
然而有些使用有损压缩方案的系统仅会存储这些高级统计信息中的关键指标如平均查询延迟与资源利用率。
其他系统则假定只有静态的工作负载;当实际负载发生变化时,则只能生成新的模型来适应这种情况。
此外还有些模型与硬件设计及数据库架构密切相关;这意味着DBMS必须根据配置的变化进行相应地重新训练。
本文提出了一种简洁的基于自适应驾驶的工作负载预测方法。通过基于查询到达率的建模方法实现了对不同负载模式以及模式切换的有效处理,并构建了一个模型用于预测查询聚类未来的行为模式,并认为这种预测至关重要。相比于传统的方法,在本文中所提出的方法的优势在于其训练数据与其硬件或数据库设计无关;因此,在DBMS硬件或配置发生变动的情况下无需重建模型。
我们考察了该框架在MySQL [1] 和 PostgreSQL [5] 中的表现,并将其整合至MySQL [1]及PostgreSQL [5]环境中进行测试。实验结果表明,基于该框架的预测模型能够有效预判预期负载情况且仅造成微小的数据精度损失.此外,他们还展示了如何利用这一技术来提升系统性能.
2 BACKGROUND
该DBMS中的自主化设计旨在实现对应用工作负载的预判能力,以便系统能够有效应对未来可能出现的任务分配情况。由于现实世界中的应用场景总是动态多变,因此系统需要主动根据这种动态变化进行相应的优化以确保最佳运行状态。
在进行负载预测时需要考虑两个主要方面的挑战:
其一是应用程序的查询可能会呈现出显著的不同到达率。
为了构建准确可靠的预测模型必须能够在多个维度上全面分析这些特征。
其二是不同时间段内对工作负载(workload)的需求及其组合形式会发生变化。
当当前的工作负载与历史数据存在显著偏差时就需要重新构建模型以适应这种变化。
对三个实际数据库进行调研,并深入分析其工作负载共性及其规律的研究中发现了一些值得探讨的问题
2.1 Sample Workloads
目前我们从真实世界的数据库中获取了三个样本的工作负载跟踪进行简要描述

- Admissions:研究生招生网站学生按照院系要求提交各项申请材料。各院系在规定时间后会对申请进行审核并作出决策结果。该模式遵循Growth and Spikes理论。
- BusTracker:一款动态追踪公共交通系统的移动应用程序。该软件通过定时更新位置数据来帮助用户查找最近公交站点,并提供实时线路指引。
- MOOC:一个专为在线学习与教育资源分享设计的网络平台[3]。教师可上传教学资源供学生访问学习,并根据新功能发布情况逐步提升平台 loaded content量及工作负载水平。
2.2 Workload Patterns
三种典型的作业负载模式中包含了三个常见的类型。其中前两个例子是数据库应用环境中查询可能出现的不同到达速率的情形。第三种情况则展示了作业负载中查询组合随时间演变的特点。
- Cycles:某些应用程序在同一段时间内提交的数据查询数量高于其他时段。
- Growth and Spikes:随着时间推移出现的趋势是数据查询量持续上升的一种常见模式,在新生业务迅速扩张以及具备明确截止日期的任务型应用中尤为明显。例如,在教育领域中招生申请系统的数据流量呈现明显的高峰特征。
- 图1b显示了如您所述的情况:如图1b所示,在截止日期前一周每天每分钟产生的数据量呈现出显著的增长趋势。
- 具体而言,在接近截止期时系统性地增加了数据注入频率:最初几天的增长较为平缓,在最后两周则呈现出爆发式的增长态势。
- 数据库的工作负载会随着时间发展发生转变:随着不同地区的用户逐渐接入新的系统版本以及功能更新的影响因素逐步显现……
2.3 Discussion
要使预测框架在实际的DBMS部署中工作,必须解决三个挑战。
- 第一个最重要的:为了有效配置工作负载中的各种到达率模式以实现优化配置需求,在线到达率预测模型具有重要价值。无论是什么样的工作负载类型或具体的查询子组模式组合,在线预测模型都需要具备足够的灵活性和准确性。
- 第二个:因为应用程序每天会发送数十万条查询指令,在单独针对每个查询建立预测模型是不现实的做法。这意味着框架必须在保证较高预测准确性的同时减少分析复杂性。
- 第三个:该框架必须应对工作负载模式以及查询行为的变化特征,并能在完全自动化的情况下完成这些任务。也就是说框架不允许DBA自行调整内部参数或提供关于应用程序运行状态的详细信息。
3 QUERYBOT 5000 OVERVIEW
QueryBot 5000(QB5000)主要充当一种工作负载预测框架,并且能够既作为外部控制器运行以实现预测和优化任务, 也可以嵌入到系统中以支持资源管理
该DBMS与所述框架建立连接,并负责传递所有的查询请求。
当QB5000接收到来自外部系统的这些查询时,则将其存入本地数据库中。
随后训练模型以识别不同类型的输入数据,并预测未来一段时间内预期处理的总数量。
接着自驾驶型DBMS将利用上述分析结果进行优化配置,在提升系统性能方面取得显著成效。(例如减少延迟或提高吞吐量)
当一个查询被转发至QB5000时,它首先经过预处理器(pre-processor)和聚类器(clusterer),将该查询映射回已处理过的查询库中。这一过程使得QB5000能够在不牺牲准确性的情况下降低对正在跟踪的SQL语句执行计算及存储空间的需求。预处理器通过从原始SQL字符串中提取恒定参数,将其转换为通用模板格式,并记录每个模板的历史访问频率。

为了解决计算资源的压力问题, 该系统QB5000根据其语义特征(如访问的表)将模板映射到最相似的先前查询组. 然后, Clusterer采用在线聚类技术有效地降低了工作负载, 将具有相似到达率模式的模板分组在一起. 该系统能够有效地处理不断变化的工作负载, 新查询出现时自动适应, 旧查询则逐渐被优化淘汰.
在最后阶段,Forecaster选择最大的模板集群(即查询量最高的聚类),然后根据每个聚簇中templates的平均到达率训练预测模型。模型预测了每个template cluster将在未来执行多少query 一小时后或者一天后,DBMS将根据它对应用程序未来的期望来决定如何优化自己,而不是根据过去发生的情况。QB5000还会随着工作负载的变化自动调整这些集群。每次template的cluster分配发生变化时,QB5000都会重新训练它的模型。
每当DBMS运行时, Pre-Processor持续获取新的查询, 并自动更新每个template的历史到达率. clusterer和forecaster定期地更新聚类分配与预测模型. 当QB5000预估未来的预期工作负载时, 它使用最新的数据作为模型的输入.
4 PRE-PROCESSOR
对于OLTP环境中的事务处理系统(简称OLTP),其程序执行会根据不同的输入参数重复相同的查询指令;而对于目标市场分析平台(简称OLAP)场景,则需要关注用户的日常操作习惯——他们通常会频繁地与各种仪表板或报告生成器互动,在这些工具中能够灵活地利用不同的谓词组合以及相应的输入参数来构建所需的查询结果接口。
此类相似的查询会按相同频率运行,并且通常在系统中拥有同样的资源利用率。由此可见,在系统中存在相同template类型的查询时,可以通过减少跟踪的具体数目来实现管理上的优化——因为这只需维护每个模板对应的访问频率数据即可。QB5000的数据预处理模块是如何收集并整合从DBMS接收回来的所有类型的信息呢?
PreProcesssor主要是两步:
首先从查询的SQL字符串中获取所有固定值,并将其替换成相应的占位符。这些固定值主要包含在WHERE子 clause 的谓词部分。
在UPDATE操作中涉及的SET字段会设置这些数值。
QB5000不仅处理普通插入操作,在批量插入时还会追踪元组的数量。
PreProcessor负责处理额外的调整以校准空格、大小写以及括号/括号的位置,并生成一个query template。
QB5000用于统计在指定时间段内访问每个模板的查询次数。随后,在每个时间段结束后会将最终计数存入internal catalog table。该系统按较宽的时间间隔汇总已过时命中率,并因此节省存储空间。
该系统对每个模板预先存储一组查询的基本参数样本,并通过有代表性的抽样方法,在数据量巨大或未知的情况下提取关键项目进行分析;预处理模块负责最终整合和优化这些信息;语义等价性的评估是该领域研究的核心内容之一;该系统采用启发式策略来估算不同模式之间的相似度;若两个模式若访问同一数据表、应用相同的操作符并产生一致的结果集,则认为二者具有高度一致性;对于这种一致性关系的具体判定标准与计算方法则较为复杂且值得深入研究;目前已有研究表明:可以通过建立多层次的知识库来辅助实现这一目标。
启发式的应用达到了预期效果,在保证准确性的同时具备良好的性能水平。未来的研究工作应聚焦于更为复杂的解决方案以进一步提升系统性能

实验结果表明,在示例工作负载测试中,QB5000的Pre-Processor能够将查询数量从数十万降到数千个模板。
5 CLUSTERER
完成一次模型训练所需的时间通常超过三分钟,在这种情况下单独为每个template构建模型并非有效解决方案。因此还需要进行聚类处理。Clusterer系统将具有相似模式的模板的历史到达率进行聚合统计,并通过将template映射到高维向量并计算其相似度来实现这一目标。为了适应动态工作环境(如工作负载、DBMS物理设计及配置的变化),我们需要开发一种能够基于不依赖当前数据库状态的特征生成稳定映射的方法。
QB5000的聚类流程主要包含三个写作阶段:首先是基于每个template提取特征;其次是阐述了如何确定该对象所属的cluster;最后介绍了QB5000聚类算法的具体实现细节。该算法能够根据应用程序的工作负载进行增量更新,并且指出了框架如何快速判断是否需要重构集群
5.1 Clustering Features
从template提取三种特征,physical、logical、arrival rate history。
物理特性是指DBMS在执行特定查询时所使用的存储空间和性能指标等关键要素,并包括诸如元组读写数量、查询延迟等运行时数据指标。基于这些物理特性选择合适的查询计划、进行性能建模以及实现工作负载压缩等操作具有重要意义;然而这些特性仅能提供单个查询的详细信息特征而无法反映DBMS配置状态及运行环境的变化对后续结果的影响;因此当DBMS配置或运行环境发生变化后之前收集的所有物理特性数据均需重新评估其有效性;这种动态变化带来的不确定性使得规划模块难以准确判断当前决策是否有助于提升系统性能。
基于模板级别的逻辑特徵(template logical features)可以从访问的表/列以及查询语法树的结构等方面进行描述;这种类型的特徵不受DBMS具体配置及工作负载特征(如哪些查询频繁被执行)的影响;但其信息粒度有限可能导致聚类模型划分不够精细进而影响预测效果。
衡量一个事务执行效率的关键指标是历史到达率;它指的是在同一事务内各模板平均被调用的概率;这是因为这些模板通常会被包含在同一事务中并在相同的执行周期内被重复使用;因此对于同一事务内的多个模板来说它们的历史到达率呈现出相似的变化规律特征;基于此系统可以针对每个事务中的模板群构建专门的历史到达率模型从而更精准地分析各个模板之间的相互作用关系。

QB5678系统首先通过随机采样获取当前时间段内的若干时间节点;随后从这些时间节点中提取对应的时间序列数据片段,并将这些片段组合成一个特征向量;接着通过计算两组特征向量间的余弦相似度来衡量它们之间的相似程度;对于新引入的模板文件,在其对应的可用时间节点上与现有模板的时间序列数据进行对比分析;在现有技术实现中,我们采用1万多个时间节点样本来生成每个样本对应的特征向量表示
这些特征共同描述了查询的独特性。基于这些特性的聚类能够为实际应用生成更高效的模型,因为它们准确地反映了查询对系统性能的影响。。然而,在DBMS发生更改时无需重构聚类的模板化访问模式
5.2 On-line Clustering
该聚类方法采用的是DBSCAN,并是一种基于数据密度的空间分割技术:在给定的空间中存在一组数据样本,在这些样本中会识别出具有较高密度的核心对象并将其归为同一簇,并将那些在低密度过分布立的数据则被视为异常数据对象(即它们到最近的对象的距离较大)。与传统的K均值聚类方法不同,则其优势在于无需预先指定簇的数量或设定特定的数据分布假设。
原始的DBSCAN算法通过计算对象与其所属簇的核心对象之间的最小距离来判断objects是否属于该簇。转而采用基于聚簇中心的距离衡量其归属的原因是QB5000将每个簇用其中心点代表,并以此构建预测模型。
DBSCAN算法的在线版本(online variant)在处理集群更新时会产生较大的计算开销(significant computational overhead)。本文提出了一种新型的在线DBSCAN变体(online DBSCAN variant),该变体通过引入一个介于0和1之间的阈值ρ来控制模板到达率(template reachability),只有当两个模板之间的相似度达到或超过ρ时才被视为同一簇的一部分。实验结果表明,在ρ值增大时(when ρ increases),聚类内的模板到达率会升高(polymerization rate within clusters increases),从而提高建模精度(modeling accuracy)。然而,在生成更多的簇体(increased number of clusters)情况下(cluster count increases),计算开销也会相应上升(computational overhead will rise correspondingly)。在附录A中对这一参数进行了敏感性分析(sensitivity analysis was conducted for this parameter)。

聚类过程三个步骤
- Step 1:对new template,检查历史到达率是否有相似度得分大于ρ的,如果有就分配给相似度最大的簇。使用kd-tree使得QB5000在高维空间中快速找到离模板最近的现有聚簇中心。QB5000将更新该集群的中心,该中心是该集群中所有模板到达率历史的算术平均值。如果没有现有的集群(这是第一个查询),或者没有集群的中心离模板足够近,QB5000将创建一个新的集群,并将该模板作为其唯一的成员。
- Step 2:QB5000检查先前模板与其所属集群中心的相似性。如果模板的相似度不再大于ρ, QB5000将其从当前聚类中移除,然后重复步骤(1)以找到新的聚类位置。有时,将模板从一个集群移动到另一个集群会导致两个集群的中心发生变化,并递归地迫使这两个集群中的其他模板进行移动。QB5000将修改集群推迟到下一个更新周期。如果QB5000在很长一段时间内没有收到它的一个查询,就会删除模板。
- Step 3:QB5000计算集群中心之间的相似性,并合并得分大于ρ的两个集群。
除了按定期执行这三个步骤之外,在QB 5000中还会持续监控工作负载中的新模板状态。当未曾见过的新模板比例超过警戒线时,则会自动执行这些步骤以适应工作负载的变化情况。确保将这个警戒线设置正确取决于目标数据库管理系统(DBMS)的能力参数设置。
评价一下这个算法的话:1. 该算法具有良好的自适应性特点,在面对负载变化时能够动态响应并作出调整,并无需预先热身或先期掌握负载信息。2. 算法的时间复杂度为O(n log n)表现稳定且高效。3. 在step 2 的终止可能导致递归不收敛的情况出现时, 这种情况不会影响其有效性和可靠性。
5.3 Cluster Pruning
聚类剪枝。
即使当采用聚类技术减少QB5 16 的所需建模查询数量时,
访问模式呈现长尾分布特征,
在实际应用中这种情况往往导致大量剩余集群的存在。
只有少数较大的集群能够反映主要的工作负载特征;
然而,
在这种情况下,
在这些较小且类似噪声的数据点上构建模型对于QB 16 来说并不必要。
6 FORECASTER
研究表明,在我的三个示例负载中,前五个最大的聚簇覆盖了高达95%的查询量。最后一步是建立预测模型以预估集群查询的到达率分布模式。这些模型帮助数据库管理系统预估未来应用程序将执行的查询数量,并据此选择优化策略以满足服务级别协议(SLA)的要求。以下将介绍QB5000是如何构建及运用其预测模型的过程:首先阐述其底层数据结构与训练方法;然后探讨了QB5000如何在多个模型中实现对同一簇的不同预测范围及间隔支持。
6.1 Forecasting Models
六种模型,在三种属性linear与memory的基础上发展出新的理论框架:每一种模型都具备保留记忆的能力,并通过特定机制来利用输入数据以及从历史观察中获取的信息来进行预测结果的生成。而内核方法则为非线性关系建模提供了一种全新的思路或方式

在线性模型中,在短期内(如一小时内)进行预测时通常会显示出更好的效果;相比之下,在长时间范围内(如超过一天)非线性模型的表现更为突出)。然而,在不同的时间范围和不同的工作负载下选择哪种模型将是一个决定性的因素。
另一种思路是采用ENSEMBLE融合方法,在这种策略下通过融合多个模型的预测结果来实现总体推断。在预测任务中,在构建一个综合性的预测系统时会整合多种机器学习算法以提升性能表现,并且这种方法能够有效降低整体的方差或偏差程度(例如通过提升树技术实现)。
Linear Regression (LR) :
在QB5000中, 该框架建立在过去指定时间段内每个查询项可能的访问速率的基础之上, 并对集群中的每个查询项未来可能的访问速率进行回归分析
Recurrent Neural Network (RNN) :QB5000使用LSTM
基于平均LR和RNN模型的预测结果来应用集成方法。尽管集成方法在平均预测精度方面表现良好,但我们在实际应用中发现这种方法在远离工作负载周期性峰值的预测上存在不足。例如年度模式在这种情况下表现不佳。然而这种类型的工作负载在数据库管理系统中较为常见。因此我们采用了下面介绍的改进型混合模型作为解决方案
基于内核的回归方法 (KR) :它是线性回归模型的一种非线性扩展形式,在该方法中通过Nadaraya-Watson估计器来计算预测结果。具体而言,在给定输入特征向量的情况下,默认预测结果被视为训练集输出值的加权平均。其中权重会随着时间序列数据点与当前输入特征向量之间距离的变化而相应调整。
该系统KR在面对以往未曾接触的数据时无法有效进行预测,在平均预测精度方面它明显不如ENSEMBLE方法。尽管如此,在应对招生人数年年攀升的问题上这种方法独树一帜
QB/5OO系统自动生成选择基于HYBRID 预测模型,并以自动化方式确定何时采用该模型而非另一种方法(KNN)。因为KNN在利用有限观测数据进行峰值预测方面表现出色,在其工作负载超出该阈值时,则优先选择KNN方法。为了使系统能够更准确地处理所有应用的工作负载,在QB/5OO系统中将参数γ设定为15O%(即比正常范围高1.5倍)。基于测试覆盖的所有应用程序的工作负载进行评估后发现这种方法能够达到最佳效果,并在附录C中提供了参数γ敏感性分析的结果
6.2 Prediction Horizons & Intervals
预测模型的范围是根据其水平和间隔来定义的。
prediction范围:表示预测的时间范围; prediction间隔模型能够预测的时间粒度;例如,在每分钟或每小时的时间段内执行的查询数量。
QB5000配置了每隔一分钟追踪查询响应时间,并表示这代表了其在为DBMS提供性能预测数据方面所能达到的最佳精度水平。基于一小时间隔进行KR模型训练以预估系统峰值负载能力。
7 EXPERIMENTAL ANALYSIS
首要任务是评估clusterer的压缩效果
7.1 Number of Clusters
该实验旨在验证QB5000能够利用少量最高容量的聚簇对大部分数据库工作负载实现建模。
在执行过程中的每个工作负载周期内,在线计算每个工作负载周期内最大聚簇容量占总工作负载容量的比例值。通过将给定聚簇体积与当天所有聚簇体积相加得到该比例值。如图5所示,在线计算的最大聚簇占用比例值占用了该工作负载查询量的大头部分

下面对该聚簇进行了稳定性评估,在连续两天内对聚簇发生改变的workload所占比例即为在100天内有多少次发生了变化。针对Admissions和BusTracker两种系统而言,在其覆盖范围内的前五个主要聚簇中最多只有一个发生变化。因此对workload的表现进行表征是有效且稳定的。

mooc应用环境相较于其他两个系统而言表现出显著的集群波动特征。这一现象源于教师在创建或启动新课程的过程中会产生一系列新的查询请求。通过观察这些动态变化模式可以看出QB5000的增量聚类算法能够有效地追踪和分类随着时间的推移而演变的应用程序工作负载状态。
7.2 Prediction Accuracy Evaluation
QB5000具有覆盖工作负载中95%以上查询量的能力,并特别针对最高容量的聚簇进行了建模能力。该系统通过训练一个统一的预测模型来估计所有clusters中的query arrival rates,在提升跨集群信息共享的同时显著提升了整体预测准确性。值得注意的是,在MSE(均方误差)减小的情况下,整体预测准确性也随之提高。
另一个需要考虑的因素是,在自驾驶数据库(self-driving db)中,预测模型的主要特点使其对超参数不敏感。因此,在实验过程中,默认地固定了这些参数设置。
对比了和其他模型的预测效果,包括ARMA、FNN、PSRNN。

- 随着horizon的变化,精度下降。
- 对于较短的视界,LR模型的表现与更复杂的RNN模型一样好,甚至更好。
- 当视界大于或等于一天时,RNN优于LR。
- ARMA的精度在不同视界上并不稳定。对于图7中的所有试验,它只有10%的时间达到最佳性能,但38%的时间性能最差。这是因为模型对它的超参数很敏感。ARMA的最佳超参数设置高度依赖于数据的统计特性,如平稳性和自相关结构。
- FNN模型不能像rnn那样记住工作负载的状态。它们也缺乏LR的简单性来防止过拟合。
- KR在19%的实验中表现最好,但在24%的实验中表现最差。该模型能够对非线性函数进行建模,但是当它在训练中没有看到与进行预测的输入接近的输入时,它很容易出错。
- ENSEMBLE提供了最好的整体预测精度。在61%的实验中,它比所有的独立模型表现得更好,而且从来没有最差的表现。集成方法通常比其基础模型具有更低的方差,并且当其模型具有互补特征时产生更好的结果,LR和RNN具有不同的特性:LR在进行线性预测时仅使用有限数量的过去观测值,而RNN是非线性的,并保持状态以记忆来自所有先前观测值的信息。由于LR在短于一天的时间内具有与ENSEMBLE相当的性能,因此对于缺乏计算资源的DBMS来说,在这些短时间内使用LR也是可取的。
- 尽管ENSEMBLE效果很好,但是它不能预测工作负载中不经常重复的峰值。HYBRID利用KR的预测修正了ENSEMBLE的结果,解决了这个问题。并且修正前后影响很小。
展示QB5000如何运用HYBRID模型对各集群的查询访问频率进行预估。

7.3 Spike Prediction Evaluation
峰值预测。评估QB5000预测增长和峰值工作负载模式的能力。

从图表中可以看出,在工作负载峰值预测方面,ENSEMBLE及其两个基础模型均表现不佳。仅此一种模型——KR——能够实现对工作负载峰值的有效预测。其核心在于对测试点与训练数据间距的考量,在这种机制下,每个训练样本的影响程度随着与其对应测试点间距的增大而呈现显著下降趋势。
7.4 Prediction Interval Evaluation
随后

基于不同的时间窗口(horizons),预测精度随之降低。在同一时间段内缩短预测步距能够显著提升精度,在覆盖未来与过去变化范围较长的情形下,在较短时间内做出预测仍然具有较高的可行性。这是因为未来与过去的变化幅度之间存在显著差异。然而缩短时间窗口会引入更多数据噪声,并需适当增加样本数量以维持预测精度。
10.b分析了各个阶段下的训练时间差异,在较长时间段下完成模型训练所耗时间较少,并且这一现象与预期结果一致
这里面存在一个权衡:配置间隔大小与自驱动数据库拥有自己的规划能力之间的关系。
7.5 Computation & Storage Overhead
检车QB5000的计算和存储开销,记录它的四个组件花费的时间和空间量。
- Preprocessor 负责将查询模板化,并在一定时间内更新历史到达率的同时生成每天的历史记录。
- Clusterer 基于最新的历史记录和结果数据的规模,在一定周期内完成聚类结果的更新。
- LR 模型在特定时长内完成训练,并达到一定的收敛效果。
- KR 方法通过预测测试点并维护相应的历史数据规模来动态调整参数。
- RNN 模型需要在指定时长内完成训练,并通过PyTorch进行序列化以保存参数信息及网络架构细节。

表4列举了QB5000各个组件都具有适度的存储消耗情况。研究结果表明,在各项计算任务中训练RNN模型所消耗的计算资源最高。
7.6 Automatic Index Selection
展示self-driving dbms通过QB5000的工作负载预测实现主动优化的过程,并以此来提升系统性能。将QB5000与MySQL及PostgreSQL集成以便于处理、集群以及对SQL工作负载进行预测,并自动构建对被预测工作的索引
采用AutoAdmin引入的索引选择技术以生成待构建的索引集。 AutoAdmin首先通过分析样例工作负载中的每个查询来选择最佳索引从而形成候选索引集合。 随后该系统利用启发式搜索算法从候选索引用以筛选出最优有界索引起子集 本文采用了Clusterer生成的三个最大集群预测的工作负载而非示例工作负载来进行候选指针集合的设计目的旨在展示QB5000动态建模与预测能力而非性能评估指标 通过对比自动指针选(AUTO)与静态指针选方法(结果表明效果并不理想)其中静态指针选方法采用了相同的技术路线但仅针对预先准备好的固定查询历史样本进行处理
在整个实验过程中,AUTO总共搭建了20个索引. 因此, 在实验开始之前我们将它配置为也会创建20个索引.

垂直的绿色虚线表示DBMS何时构建新索引。
在初始阶段,AUTO的表现相对 STATIC 较弱,但经过实验后取得了显著成绩:带来了28%吞吐量的增长以及约23%延迟的减少.这种差异的根本原因在于,AUTO借助QB5000的强大预测能力,选择了四个静态索引之外的关键索引.值得注意的是,在PostgreSQL环境中,AUTO仅会选择一个不同于 STATIC 的索引,其性能表现与后者相当.

7.7 Logical vs. Arrival Rate History Feature
研究对比了QB5000 Clusterer基于(AUTO-LOGICAL)框架下的到达率历史特性和逻辑特性有效性。通过分析SQL语句逻辑架构对模板进行分类处理,并详细解析模板中的逻辑特征向量构成要素:包括操作类型(如INSERT、SELECT、UPDATE或DELETE)、涉及的表名称、引用字段名称以及子句层次(如JOIN、HAVING或GROUP BY)和聚合函数数量(如SUM或AVG)。
结果显示AUTO- logical的dbms吞吐量比AUTO慢20%左右。
由于逻辑特性而导致更糟糕的索引选择的原因有两个:一是SQL查询无法准确判断两个模板对系统产生的相似影响程度;二是同一逻辑特性的聚簇中的模板可能存在多种不同的到达率模式(包括一次性查询等异常情况),这也使得forecaster难以准确识别这些模式,并且难以基于聚簇中心进行趋势预测。
8 RELATED WORK
将以前在系统工作负载建模方面的工作分为几个类别:资源估算与自动调整策略、性能分析与建模技术、工作负载偏移识别、设计优化支持以及基于查询的性能预测方法。
- 自动识别工作负载的变化以及资源伸缩,[Automated Demand-driven Resource Scaling in Relational Database-as-a-Service]使用手动构建的规则层次结构提出了一种数据库服务DasS的自动扩展解决方案,资源需求估计器从DBMS的内部延迟、资源利用率和等待统计数据中获取信号,以确定对资源的需求是高还是低。他们的工作侧重于短期趋势,并单独估计对每种资源的需求。
- 其他研究研究了在云平台中主动扩展资源。所有这些方法都估计在不久的将来是否会有对每种资源的需求。相反,本文对短期和长期的查询到达率进行建模,以支持复杂的优化规划决策 。
- 数据库管理系统性能的建模和诊断方面已有较好的研究:DBSeer预测给定工作负载变化的“WHAT-IF”问题的答案,例如估计未来工作负载波动的磁盘I/O。该模型根据事务类型对工作负载进行聚类,并根据事务mixtures预测系统的资源利用率。缺点是一种离线模型,假定了事务的types。本文的工作不仅着眼于当前的工作负载组合,而且还预测了未来的工作负载 。
- DBSherlock是一个事务性数据库的诊断工具,它使用因果模型来识别异常性能行为的潜在原因,并提供可视化,这一方面的工作建模主要是旨在帮助dba理解他们的系统并识别瓶颈。
- 使用分析模型来持续监控系统吞吐量、响应时间和缓冲池大小之间的关系。
- 其他人已经使用马尔可夫模型来预测用户将根据DBMS当前执行的语句来执行的下一个SQL语句,还有的扩展了该模型以检测工作负载变化,将这些技术与工作负载分类方法结合起来,对工作负载的周期性和重复模式进行建模,这些方法捕获工作负载中的某些模式,但是它们都不能预测未来工作负载的数量、持续时间和变化。
- Workload 压缩,与本文的目标相似,通过使用特定于应用程序的距离函数D(qi, qj)对任意一对SQL查询qi和qj搜索要从工作负载中删除的查询,可以压缩一组SQL DML语句。该技术不为查询的时间模式建模。
- 其他工作研究了如何预测特定查询的运行时指标。PQR使用决策树的一种变体来确定查询的延迟属于哪个桶,使用查询计划和系统负载指标作为输入特征。
9 CONCLUSION
本文开发出了一种预测框架旨在指导数据库管理系统(DBMS)基于历史数据预判未来查询的预期访问频率。通过在线聚类技术将具有相似行为特征的查询模式进行分类管理从而降低需要实时监控的查询数量并采用混合学习算法来估算各查询的需求水平以提高系统性能效率。实验结果表明 QB5000 在实时优化目标工作负载选择时表现出显著的优势
