数据库并行优化加速方法及系统与流程

未命名 10-18 阅读:107 评论:0


1.本发明涉及数据库处理技术领域,具体地说是一种数据库并行优化加速方法及系统。


背景技术:

2.数据库(database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
3.在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。
4.数据库是一个单位或是一个应用领域的通用数据处理系统,它存储的是属于企业和事业部门、团体和个人的有关数据的集合。数据库中的数据是从全局观点出发建立的,按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全组织,具有整体的结构化特征。
5.数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制和制约。不同的用户可以按各自的用法使用数据库中的数据;多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据。数据共享性不仅满足了各用户对信息内容的要求,同时也满足了各用户之间信息通信的要求。
6.但是数据库应用存在海量数据而硬件高速缓存较小情况导致性能较差的问题。故如何加速数据库算子操作是目前亟待解决的技术问题。


技术实现要素:

7.本发明的技术任务是提供一种数据库并行优化加速方法及系统,来解决数据库应用存在海量数据而硬件高速缓存较小情况导致性能较差的问题。
8.本发明的技术任务是按以下方式实现的,一种数据库并行优化加速方法,该方法具体如下:
9.数据预处理:按照计算机的存储体系结构将数据逐层划分为更小的数据块,使得相关数据更加适合硬件进行处理和操作;
10.数据处理:采用异构加速方法进行数据处理;
11.结果处理:同步各个协处理器相关结果数据,并对所有数据块数据结果规约和合并。
12.作为优选,数据预处理具体如下:
13.数据分组:对数据库原数据做分组,按照原始数据的排列和流处理器个数均分为
大小相等的数据组,分组的个数与流处理器个数相同;
14.数据划分:将数据加载进主机端内存以及设备端内存,根据硬件存储金字塔体系结构,将已经分好的数据层层划分为更小的数据块,按照全局内存、共享内存、局部内存、片上缓存及寄存器的次序,数据块大小逐步变小;
15.数据排布:利用缓存的时间局部性和空间局部性排布数据便于增加缓存命中率,不同数据块在传输时,分布在不同总线上进行传输减轻相关的bank conflict。
16.更优地,数据处理具体如下:
17.数据排序:主机侧启动排序、合并规约核函数和归并调用硬件用于排序计算;
18.数据预取:当前数据在硬核执行计算的同时,调用dma指令通过pcie预取下一轮操作数据,用于隐藏相关访存延时,起到多级流水并行加速的目的,实现较高的计算访存比;
19.多线程并行执行:借助于超线程技术实现多个数据块的并行操作,使用多个线程做多个数据块的并行管理。
20.更优地,多线程并行执行是基于simd指令集实现协处理器多个线程同步工作。
21.一种数据库并行优化加速系统,该系统包括数据预处理单元、数据处理单元及结果处理单元;
22.数据预处理单元用于按照计算机的存储体系结构将数据逐层划分为更小的数据块,使得相关数据更加适合硬件进行处理和操作;
23.数据处理单元用于采用异构加速方法进行数据处理;
24.结果处理单元用于同步各个协处理器相关结果数据,并对所有数据块数据结果规约和合并。
25.作为优选,所述数据预处理单元包括数据分组模块、数据划分模块及数据排布模块;
26.数据分组模块用于对数据库原数据做分组,按照原始数据的排列和流处理器个数均分为大小相等的数据组,分组的个数与流处理器个数相同;
27.数据划分模块用于将数据加载进主机端内存以及设备端内存,根据硬件存储金字塔体系结构,将已经分好的数据层层划分为更小的数据块,按照全局内存、共享内存、局部内存、片上缓存及寄存器的次序,数据块大小逐步变小;
28.数据排布模块用于利用缓存的时间局部性和空间局部性排布数据便于增加缓存命中率,不同数据块在传输时,分布在不同总线上进行传输减轻相关的bank conflict。
29.更优地,所述数据处理单元包括数据排序模块、数据预取模块及多线程并行执行模块;
30.数据排序模块用于主机侧启动排序、合并规约核函数和归并调用硬件用于排序计算;
31.数据预取模块用于当前数据在硬核执行计算的同时,调用dma指令通过pcie预取下一轮操作数据,用于隐藏相关访存延时,起到多级流水并行加速的目的,实现较高的计算访存比;
32.多线程并行执行模块用于借助于超线程技术实现多个数据块的并行操作,使用多个线程做多个数据块的并行管理。
33.一种电子设备,包括:存储器和至少一个处理器;
34.其中,所述存储器上存储有计算机程序;
35.所述至少一个处理器执行所述存储器存储的计算机程序,使得所述至少一个处理器执行如上述的数据库并行优化加速方法。
36.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序可被处理器执行以实现如上述的数据库并行优化加速方法。
37.本发明的数据库并行优化加速方法及系统具有以下优点:
38.(一)本发明借助于多级流水排布实现隐藏延时的目的,起到多级流水并行加速;
39.(二)本发明充分考虑硬件缓存体系架构,借助于缓存时间局部性和空间局部性增加缓存命中概率,提升相关性能;
40.(三)本发明基于数据分块、并行计算、多级流水排布实现数据库加速,提升相关性能,减少相关性能损耗。
附图说明
41.下面结合附图对本发明进一步说明。
42.附图1为数据库并行优化加速方法的流程框图;
43.附图2为数据预取的示意图;
44.附图3为设备内存层次的示意图;
45.附图4为内存分块的示意图。
具体实施方式
46.参照说明书附图和具体实施例对本发明的数据库并行优化加速方法及系统作以下详细地说明。
47.实施例1:
48.如附图1所示,本实施例提供了一种数据库并行优化加速方法,该方法具体如下:
49.s1、数据预处理:按照计算机的存储体系结构将数据逐层划分为更小的数据块,使得相关数据更加适合硬件进行处理和操作;
50.s2、数据处理:采用异构加速方法进行数据处理;
51.s3、结果处理:同步各个协处理器相关结果数据,并对所有数据块数据结果规约和合并。
52.本实施例步骤s1中的数据预处理具体如下:
53.s101、数据分组:对数据库原数据做分组,按照原始数据的排列和流处理器个数均分为大小相等的数据组,分组的个数与流处理器个数相同;
54.s102、数据划分:将数据加载进主机端内存以及设备端内存,根据硬件存储金字塔体系结构,将已经分好的数据层层划分为更小的数据块,按照全局内存、共享内存、局部内存、片上缓存及寄存器的次序,数据块大小逐步变小;
55.s103、数据排布:利用缓存的时间局部性和空间局部性排布数据便于增加缓存命中率,不同数据块在传输时,分布在不同总线上进行传输减轻相关的bank conflict,如附图3和4所示,充分考虑硬件缓存体系架构,借助于缓存时间局部性和空间局部性增加缓存命中概率,提升相关性能。
56.本实施例步骤s2中的数据处理具体如下:
57.s201、数据排序:主机侧启动排序、合并规约核函数和归并调用硬件用于排序计算;
58.s202、数据预取:当前数据在硬核执行计算的同时,调用dma指令通过pcie预取下一轮操作数据,用于隐藏相关访存延时,起到多级流水并行加速的目的,实现较高的计算访存比,如附图2所示;即数据预取过程中,分批次将相关数据从主机内存传送至设备内存,并启动相关核函数用于相关计算,在每组流处理器执行相关操作的同时,预取下一轮数据;
59.s203、多线程并行执行:借助于超线程技术实现多个数据块的并行操作,使用多个线程做多个数据块的并行管理。
60.本实施例中,多线程并行执行是基于simd指令集实现协处理器多个线程同步工作。
61.实施例2:
62.本实施例提供了一种数据库并行优化加速系统,该系统包括数据预处理单元、数据处理单元及结果处理单元;
63.数据预处理单元用于按照计算机的存储体系结构将数据逐层划分为更小的数据块,使得相关数据更加适合硬件进行处理和操作;
64.数据处理单元用于采用异构加速方法进行数据处理;
65.结果处理单元用于同步各个协处理器相关结果数据,并对所有数据块数据结果规约和合并。
66.本实施例中的数据预处理单元包括数据分组模块、数据划分模块及数据排布模块;
67.数据分组模块用于对数据库原数据做分组,按照原始数据的排列和流处理器个数均分为大小相等的数据组,分组的个数与流处理器个数相同;
68.数据划分模块用于将数据加载进主机端内存以及设备端内存,根据硬件存储金字塔体系结构,将已经分好的数据层层划分为更小的数据块,按照全局内存、共享内存、局部内存、片上缓存及寄存器的次序,数据块大小逐步变小;
69.数据排布模块用于利用缓存的时间局部性和空间局部性排布数据便于增加缓存命中率,不同数据块在传输时,分布在不同总线上进行传输减轻相关的bank conflict。
70.本实施例中的数据处理单元包括数据排序模块、数据预取模块及多线程并行执行模块;
71.数据排序模块用于主机侧启动排序、合并规约核函数和归并调用硬件用于排序计算;
72.数据预取模块用于当前数据在硬核执行计算的同时,调用dma指令通过pcie预取下一轮操作数据,用于隐藏相关访存延时,起到多级流水并行加速的目的,实现较高的计算访存比;
73.多线程并行执行模块用于借助于超线程技术实现多个数据块的并行操作,使用多个线程做多个数据块的并行管理。
74.实施例3:
75.本实施例还提供了一种电子设备,包括:存储器和处理器;
76.其中,存储器存储计算机执行指令;
77.处理器执行所述存储器存储的计算机执行指令,使得处理器执行本发明任一实施例中的数据库并行优化加速方法。
78.处理器可以是中央处理单元(cpu),还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通过处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
79.存储器可用于储存计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现电子设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器还可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,只能存储卡(smc),安全数字(sd)卡,闪存卡、至少一个磁盘存储期间、闪存器件、或其他易失性固态存储器件。
80.实施例4:
81.本实施例还提供了一种计算机可读存储介质,其中存储有多条指令,指令由处理器加载,使处理器执行本发明任一实施例中的数据库并行优化加速方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。
82.在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
83.用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-rym、dvd-rw、dvd+rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上下载程序代码。
84.此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
85.此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的cpu等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
86.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

技术特征:
1.一种数据库并行优化加速方法,其特征在于,该方法具体如下:数据预处理:按照计算机的存储体系结构将数据逐层划分为更小的数据块,使得相关数据更加适合硬件进行处理和操作;数据处理:采用异构加速方法进行数据处理;结果处理:同步各个协处理器相关结果数据,并对所有数据块数据结果规约和合并。2.根据权利要求1所述的数据库并行优化加速方法,其特征在于,数据预处理具体如下:数据分组:对数据库原数据做分组,按照原始数据的排列和流处理器个数均分为大小相等的数据组,分组的个数与流处理器个数相同;数据划分:将数据加载进主机端内存以及设备端内存,根据硬件存储金字塔体系结构,将已经分好的数据层层划分为更小的数据块,按照全局内存、共享内存、局部内存、片上缓存及寄存器的次序,数据块大小逐步变小;数据排布:利用缓存的时间局部性和空间局部性排布数据便于增加缓存命中率,不同数据块在传输时,分布在不同总线上进行传输减轻相关的bank conflict。3.根据权利要求1或2所述的数据库并行优化加速方法,其特征在于,数据处理具体如下:数据排序:主机侧启动排序、合并规约核函数和归并调用硬件用于排序计算;数据预取:当前数据在硬核执行计算的同时,调用dma指令通过pcie预取下一轮操作数据,用于隐藏相关访存延时,起到多级流水并行加速的目的,实现较高的计算访存比;多线程并行执行:借助于超线程技术实现多个数据块的并行操作,使用多个线程做多个数据块的并行管理。4.根据权利要求3所述的数据库并行优化加速方法,其特征在于,多线程并行执行是基于simd指令集实现协处理器多个线程同步工作。5.一种数据库并行优化加速系统,其特征在于,该系统包括数据预处理单元、数据处理单元及结果处理单元;数据预处理单元用于按照计算机的存储体系结构将数据逐层划分为更小的数据块,使得相关数据更加适合硬件进行处理和操作;数据处理单元用于采用异构加速方法进行数据处理;结果处理单元用于同步各个协处理器相关结果数据,并对所有数据块数据结果规约和合并。6.根据权利要求5所述的数据库并行优化加速系统,其特征在于,所述数据预处理单元包括数据分组模块、数据划分模块及数据排布模块;数据分组模块用于对数据库原数据做分组,按照原始数据的排列和流处理器个数均分为大小相等的数据组,分组的个数与流处理器个数相同;数据划分模块用于将数据加载进主机端内存以及设备端内存,根据硬件存储金字塔体系结构,将已经分好的数据层层划分为更小的数据块,按照全局内存、共享内存、局部内存、片上缓存及寄存器的次序,数据块大小逐步变小;数据排布模块用于利用缓存的时间局部性和空间局部性排布数据便于增加缓存命中率,不同数据块在传输时,分布在不同总线上进行传输减轻相关的bank conflict。
7.根据权利要求5或6所述的数据库并行优化加速系统,其特征在于,所述数据处理单元包括数据排序模块、数据预取模块及多线程并行执行模块;数据排序模块用于主机侧启动排序、合并规约核函数和归并调用硬件用于排序计算;数据预取模块用于当前数据在硬核执行计算的同时,调用dma指令通过pcie预取下一轮操作数据,用于隐藏相关访存延时,起到多级流水并行加速的目的,实现较高的计算访存比;多线程并行执行模块用于借助于超线程技术实现多个数据块的并行操作,使用多个线程做多个数据块的并行管理。8.一种电子设备,其特征在于,包括:存储器和至少一个处理器;其中,所述存储器上存储有计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,使得所述至少一个处理器执行如权利要求1至4任一项所述的数据库并行优化加速方法。9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序可被处理器执行以实现如权利要求1至4中任一项所述的数据库并行优化加速方法。

技术总结
本发明公开了数据库并行优化加速方法及系统,属于数据库处理技术领域,本发明要解决的技术问题为数据库应用存在海量数据而硬件高速缓存较小情况导致性能较差,采用的技术方案为:该方法具体如下:数据预处理:按照计算机的存储体系结构将数据逐层划分为更小的数据块,使得相关数据更加适合硬件进行处理和操作;数据处理:采用异构加速方法进行数据处理;结果处理:同步各个协处理器相关结果数据,并对所有数据块数据结果规约和合并。该系统包括数据预处理单元、数据处理单元及结果处理单元。元。元。


技术研发人员:郝运凯 赵鑫鑫 姜凯 李正蛟
受保护的技术使用者:山东浪潮科学研究院有限公司
技术研发日:2023.06.25
技术公布日:2023/10/11
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐