论文部分内容阅读
随着业务数据的积累,特别是网络数据的快速增长,利用科学的手段快速处理数据,从多个不同的角度分析数据的需求不断增长。多核CPU,以及多核CPU集成GPU硬件架构的出现为快速处理数据提供了新的可能。特别是,将CPU-GPU架构和读优先的列存储数据仓库技术相结合可极大地提高查询处理的速度。列存储数据仓库技术主要关注数据的查询与分析,而数据的查询分析操作一般表现为在多表之间的连接操作基础上对结果集进行分组聚集等操作。因此,表连接和聚集操作成为了影响OLAP性能的两个重要因素。而另一方面,硬件架构的发展为多表连接和分组聚集的性能提升提供了新的可能。目前针对单机上的并行查询处理研究主要分为三类:单机多核并行查询处理、GPU并行查询处理以及CPU和GPU协同并行查询处理。现有研究存在如下几点缺陷:基于行存储的数据划分策略,以元组作为基本处理单位,当出现多表连接时,表存在多个外键,需按照一定的规则选择主划分属性和辅助划分属性。现有数据划分策略难以直接应用于异构平台列存储系统中,需要根据硬件特点对其重新设计。此外,CPU和GPU之间细粒度的并行策略,主要通过将任务进行划分,并未考虑充分CPU和GPU的利用率。因此,CPU和GPU某方负载过高而另一方负载过低的不平衡现象频繁出现,极大地影响了协同执行的效率。为此,本文研究了异构平台上的数据划分策略和任务分配模型,并将之有效地融入列存储数据仓库,然后设计并实现了混合并行查询引擎。本文的具体研究工作如下:1.针对列存储系统按列存储数据,相邻数据具有较高相似性的特点,设计了硬件敏感的ICMD数据划分策略。同时,设计了一个任务分配模型,分配并动态调整CPU和GPU的任务负载。2.论文深入研究了列存储数据库查询引擎的结构设计,结合CPU-GPU架构的特点设计并实现了一个混合并行查询引擎。3.基于异构平台数据传输的特点,本文提出了一种查询优化策略。通过重写查询执行计划,合并CPU和GPU处理器之间的数据传输,使查询性能得到了进一步的提高。4.最后,本文在我们实验室研制的列存储数据仓库系统DWMS中具体实现了上述各项技术,并以SSB基准数据集为测试数据进行了测试。通过查询性能的对比实验,验证了数据划分策略、任务分配模型及混合查询的有效性。实验结果表明:基于HPQE混合查询引擎的数据仓库复杂查询性能相比于DWMS提升了23%,相比于基于GPU查询引擎-Ocelot的数据仓库提升了18%;结合执行计划优化策略和HPQE混合查询引擎的数据仓库复杂查询性能相比于DWMS提升了87%,相比于基于GPU查询引擎-Ocelot的数据仓库提升了68%。