关键词:
深度学习
分布式关系型数据库系统
查询优化
查询执行
基数估计
任务调度
摘要:
随着互联网技术的发展以及大数据时代的来临,单机数据库逐渐显露出其在海量数据存储与计算能力方面的短板,查询计划执行的响应时间严重受限于单台设备的计算能力以及存储容量不足,硬件瓶颈问题日益凸显,成为查询执行过程中的阻碍。为了打破单机数据库在计算与存储上的局限性,分布式数据库采用集群扩展的方式,充分发挥多个物理设备间的计算并行性,同时以数据分片的形式增强系统存储能力,显著提升了对复杂查询计划的执行效率。然而,即便分布式数据库运用传统优化和调度算法对解析后的查询语句进行处理,查询语句在分布式数据库系统中的执行效率仍会受到影响,尤其是传统算法有限的解搜索空间容易导致查询处理过程陷入局部最优。为进一步提升查询计划的执行效率,深度学习技术为解决查询优化的性能瓶颈以及查询执行的调度效率问题提供了新的思路与可能性。不过,如何借助深度学习构建有效的决策模型提升对不同数据场景下查询优化或查询执行中关键问题的泛化能力,仍然是当下亟待深入研究的关键课题,对推动数据库技术的持续发展具有重要意义。
本文以深度学习技术为载体,将查询处理过程中查询优化器以及查询执行器两大组件作为研究对象,选择了基数估计问题以及分布式任务调度问题作为切入点。具体而言,通过预处理以及特征提取技术来分析不同问题下的查询数据集分布特征及数据结构特点,并根据研究问题在数据库中的建模分别设计了不同的深度网络架构来提高基数估计及调度模型的预测性能和执行效率。本文的具体研究内容如下:
1)针对查询优化器中的基数估计问题,本文提出了一种基于深度监督学习的基数估计模型,将其视为一类非线性回归预测问题。该模型分别使用集合神经网络、图神经网络以及递归神经网络来对SQL的查询表、连接条件以及谓词过滤条件进行特征提取,并最终映射得到查询结果的基数估计值。该方法能够将复杂语义转化为语义树结构来构建特征,具备对不同连接词组合的过滤条件特征处理能力。此外,为了进一步提高对多表连接查询结果基数的预测精度,还设计了一种按值域划分的连接特征构造算法来增强连接条件在神经网络中的表达。基于现实数据集IMDb(Internet Movie Database)上的最终实验结果表明,该模型无论在公共工作负载还是构造的复杂工作负载上均表现出比传统优化器以及同类型的监督学习算法更优的预测性能。
2)对于任务调度中的单工作流调度问题,本文提出了一种能够处理任务的时空特征以及集群状态嵌入的调度模型。该模型的时空特征提取模块由长短期记忆网络(Long Short-Term Memory,LSTM)以及图注意力网络(Graph Attention Network,GAT)组成,分别提取任务在执行优先级上的时序特征以及其依赖关系上的拓扑空间关系。同时,使用集合神经网络Set Transformer来融合多处理器集群上的实时状态特征,以保证算法能有效评估处理器之间的序列无关特性。此外,引入了一种多目标优化强化学习训练算法来同时优化工作流完成时间和多处理器负载均衡效率。最终的实验结果证明,该单工作流调度模型在随机数据集以及真实工作流数据集上相对启发式调度算法和取得更优的综合调度性能。
3)本文在上述单工作流调度研究的基础上进一步提出了一种多工作流任务动态调度算法,来处理分布式系统中的并发调度问题。该算法在使用GAT提取工作流拓扑特征的同时,使用基于自注意力机制的多层感知机(Multi Layer Perceptron,MLP)来处理每个时刻动态变化的任务数量,保证了多工作流之间的任务调度公平性。后者也用于处理集群的状态特征,使得调度器在未来集群大小发生变化时具备一定的扩展性。此外,还设计了一种基于KD树(K-Dimensional Tree,KD-Tree)存储和计算的K最近邻(K Nearest Neighbors,KNN)映射算法来计算输出动作与当前时刻候选动作的相似度,进一步优化了大规模动态动作空间下的搜索效率。在基准数据集TPC-H以及Alibaba-Trace的多工作流调度场景下,该算法相对于已有算法提高了在长序列工作流并发执行下的平均调度性能以及负载均衡效率。
综上,本文以分布式关系型数据库系统中查询优化器以及查询执行器中两大直接影响查询性能的关键问题——基数估计以及任务调度为研究对象,利用神经网络非线性映射逼近和自适应学习的特性,通过构建不同场景下的网络架构有效地提升了对应查询场景下的估计精度与调度性能,对推动了深度学习在分布式关系型数据库查询与调度优化问题中的创新与实践具有重要意义。