论文部分内容阅读
互联网技术的高速发展,逐渐改变了大众的消费观念。如今,多样的交易模式使得数据库技术面临着新的挑战。传统的分布式技术已经不能满足爆炸式增长的海量数据的处理需求。在大规模并行处理(MPP)技术的基础上,借助于分布式思想,Greenplum实现了分布式存储与大规模的并行计算。目前,Greenplum成为一种面向海量数据分析与处理的最新技术。针对分布式数据库,如何对查询任务进行有效的调度从而实现查询优化一直都是研究的重点。本文将从查询任务调度的角度来对Greenplum进行优化。Greenplum采用一种集中式调度策略。其中,主节点作为调度器,负责整个查询的并行处理过程。这个调度过程实现了查询任务到子节点上的映射,以及子节点的协调执行工作。随着硬件技术的发展,多核技术为并行计算提供了新的发展方向。将Greenplum运用于解决OLAP场景时,集群环境大都利用多核CPU系统来充分实现并行化。本文对Greenplum的集中式调度方案进行研究,对其中的两个阶段提出了改进策略,从而实现了一种优化的集中式调度方案。为了对Greenplum的调度方案进行优化,本文做了以下研究:(1)首先对任务分配过程进行优化。本文实现了一种更优的查询计划生成方案,来实现查询任务到子节点上的分配。考虑影响执行计划生成的因素,本文分别从搜索空间、代价模型以及搜索策略来设计优化方案。本文首先给出了一种代价估算模型。该模型综合考虑了数据操作的代价与数据传输的代价。基于该代价模型,本文采用并行最大最小蚁群算法对查询连接顺序进行优化,来高效地生成更优的查询计划。(2)然后对任务调度阶段进行优化。对分配给每一个子节点上的任务DAG图,本文给出了一种改进的表调度策略来完成任务到处理器内核的调度。基于子节点上的多核处理器系统,以及常用于解决多核处理器系统的调度问题的表调度算法HEFT和CPOP,本文给出了一种考虑多因素优先级与实时冗余处理的表调度算法MHECP。MHECP算法对任务优先级计算阶段与冗余任务消除阶段进行改进,在没有提高算法复杂度的同时实现了更有效的任务调度。基于以上研究,本文分别从任务分配与任务调度阶段实现了对Greenplum的任务调度方案的优化。结合Greenplum对查询的预处理及前期优化过程,优化后的集中式调度方案能有效地提升查询效率以及系统的性能。最后,本文通过一系列对比实验,证明了Greenplum在处理大数据上的优势,并通过将优化后的调度方案与优化前的调度方案进行对比,证明了本文给出的优化的集中式任务调度方案在一定程度上提升了Greenplum的查询效率,有其实用性。