论文部分内容阅读
查询响应时间预测模型是数据库系统管理的核心技术,广泛用于查询调度、资源分配、系统容量规划、性能调优等任务。并发执行的查询(查询组合)会发生查询交互,表现为查询之间对资源的竞争或合作,是影响查询响应时间变化的主要因素,在建立预测模型时必须予以考虑。当前的查询响应时间预测模型分为分析型和统计型两种。分析型建模通过描述查询执行过程来预测响应时间,需要对查询执行过程,特别是查询之间的资源竞争,进行抽象——保留主要特性,丢弃大量次要细节。查询交互是一个复杂的过程,这类模型在描述查询交互时,或者过于抽象导致精度差,或者过于繁琐导致系统误差大、可用性差。统计型建模利用执行过的查询(样本)的性能参数,通过机器学习方法,对查询响应时间建模,能够在模型复杂度与可用性之间取得平衡。但由于需要离线采样,存在采样成本高、模型动态性差的问题;对查询交互的描述只是概念性的,未进行系统性的量化分析。本文以查询响应时间预测的统计模型为研究对象,试图通过对查询组合中查询交互的量化分析,选取合适的查询组合样本,降低建模的采样成本,并寻找基于查询交互量化、可在线更新的统计模型,用于数据库系统的性能管理。针对统计模型采样成本高的问题,本文通过对查询组合聚类,分类选取高质量的样本。相比传统的随机采样方法,聚类采样依照样本属性,从各类中按照样本的代表性选取样本,选取的样本质量高,使用较少的样本就可以训练统计模型,并达到合理的预测性能,从而降低统计建模成本。为了能够对查询组合空间进行聚类,本文提出一种两个查询间查询交互的度量方法——QueryRating,并依据QueryRating构造一个查询与其它查询之间的查询交互特征向量。以此为基础,将查询组合映射到体现查询交互分布的二维特征平面中,形成查询组合的查询交互特征向量,并利用该特征向量对查询组合进行聚类。针对现有统计模型不能对查询交互进行系统的量化分析的问题,本文以查询交互存在的形式——查询组合为对象,度量其中的查询交互,比较查询组合之间的相似性,从而提出预测查询响应时间的相似性模型。相似性模型从查询交互量化的角度建模,利用查询组合的查询交互特征之间的相似度,寻找与被预测查询所在查询组合相似的查询组合进行预测,简化现有统计模型的线性拟合步骤,使得查询交互成为模型考虑的主要因素,进而提高预测精度。针对统计模型动态性差的问题,本文在相似性模型的基础上,提出模型在线更新算法。该算法利用数据库系统运行过的查询组合的运行参数,对样本库进行更新。相比传统的线性模型,相似性模型的预测性能不受初始样本限制,模型的动态性更强。作为对相似性模型的应用和验证,本文在相似性模型的基础上构造了一个在线查询调度器——最小查询交互调度器,最小查询交互调度器通过求解最小化查询交互的线性规划问题,寻找期望查询组合集合。在线调度时,每当有一个查询执行完成,最小查询交互调度器从查询队列中选取一个待执行查询,与数据库系统当前正在运行的其它查询组成一个期望查询组合,保证数据库系统运行的查询组合总是期望查询组合集合中的元素,通过在线调度的方式,缩短队列的运行时间。与现有的调度器相比,最小查询交互调度器拥有更细的调度颗粒度,不仅可以从队列整体的角度考虑调度问题,还可以在线寻找最合适的查询,缩短队列运行时间,提高数据库系统的效率。本文的主要贡献和创新点如下:(1)提出查询交互的量化方法。查询交互是查询响应时间变化的主要因素,目前尚没有对查询交互进行量化的方法。两个查询之间的查询交互是最简单的查询交互形式。本文提出QueryRating量化方法——查询单独运行与查询两两运行时的响应时间比值,它是对最简单的查询交互形式的一种度量。在此基础上,本文系统性地构造了查询的交互特征向量以及查询组合的交互特征向量,为后续的研究提供基础。(2)提出一种聚类采样的方法。该方法利用查询组合的交互特征向量,依据欧氏距离对查询组合空间进行聚类,分类选取有代表性的样本训练统计模型。在保证模型精度的前提下,可以大幅减少样本数量,降低统计模型建模的采样成本。(3)提出一种利用查询组合相似性、预测查询响应时间的模型——相似性模型。该模型通过量化查询组合中查询交互的方式,计算查询组合之间的相似性,通过寻找与被预测查询所在查询组合最相似的查询组合的方式,对查询的响应时间进行预测。该模型相比传统的线性模型具有更好的预测性能。(4)提出相似性模型在线更新的方法,提高模型的动态特性。该方法利用查询执行后的运行参数,对样本库进行更新,使得相似性模型能够不受初始样本限制,在数据库系统运行同时保证预测性能。(5)构造了一个最小化查询组合中查询交互的查询调度器——最小查询交互调度器。最小查询交互调度器通过求解最小化查询交互的线性规划问题,有效地缩小了在线调度时的搜索空间,使调度器可以选择恰当的查询进入系统,缩短一批查询的运行时间,提高数据库系统的运行效率。