论文部分内容阅读
近年来,随着多核CPU硬件体系结构的普及与SMT同步多线程技术的发展和成熟,多核CPU以其强大的并行计算能力越来越成为研究领域中的热点。人们已经开始研究使用多核CPU对多种数据操作进行并行加速,其中在数据库操作中最常用、最耗时的连接操作成为人们研究的重点。在关系型数据库中,连接操作是实现关系型数据库中查询的重要操作之一,它通过对两个关系做笛卡尔积运算实现对这两个关系的信息检索。连接操作是唯一能从不同的关系之间组合出新的关系元组的关系代数操作,同时也是最难找出高效实现方法的操作之一,因为不能预先确定哪些关系之间的连接是需要存在的,而且这还会和网络及分布式系统有关,因为可能不是所有的关系表都是存放在一起的。由此可见,连接操作的代价高低与数据库的性能优劣息息相关。基本的数据库连接操作实现算法主要有:嵌套循环连接,排序合并连接和散列连接等,其中散列连接算法以及优异的性能而被广泛地应用于数据库管理系统。多核并行技术的发展使得这些连接算法的许多变种被提出。它们充分利用多核并行技术和最新的硬件体系结构来获得更好的性能。这些研究表明,硬件体系结构对连接算法的性能有很大的影响。此外,内存访问也是制约连接算法性能的另一个重要影响因素。本文对几种数据库连接操作实现算法进行了系统的研究,重点关注散列连接算法,结合多核CPU硬件结构和内存局部性原理提出了对应的并行连接优化算法,所取得的主要研究成果为:1、针对多核CPU平台提出了一种基于MapReduce模型的并行散列连接算法。通过MapReduce模型实现自动化的线程调度、任务分配管理、负载均衡控制和错误纠正功能,结合利用内存局部性原理提出的任务划分策略,增加了内存的命中率,提高了内存的页面替换效率,从而进一步优化了散列连接操作的性能。2、针对内存延迟、数据偏移和内存压力造成的性能瓶颈问题提出了三种优化策略,实验结果表明,这三种策略取得了预期的效果,较好地解决了存在的问题。实验结果表明本文实现的并行散列连接算法,在多核CPU硬件结构上比传统的连接算法有着大幅的性能提升,同时利用MapReduce模型的特性,结合提出的三个优化策略,跟已有的同类并行散列连接算法相比也有着良好的表现,能够较好地应用于多核CPU硬件结构下的数据库连接操作中。