一种基于固态硬盘的数据库并行排序连接系统技术方案

技术编号:30538522 阅读:12 留言:0更新日期:2021-10-30 13:14
一种基于固态硬盘的数据库并行排序连接系统,内存作为并行读固态硬盘管理模块的数据页缓冲区、并行排序模块排序缓冲区、并行写固态硬盘管理模块的归并缓冲区和并行连接模块的连接缓冲区;固态硬盘中存储有待排序数据和数据字典;系统判别模块根据数据字典中对待排序数据的统计信息判断内存数据页缓冲区大小与待排序数据量之间的关系,决定系统采用哪种排序方法;并行读固态硬盘管理模块并行读取固态硬盘并把数据存入内存数据页缓冲区;并行排序模块对内存排序缓冲区中的数据进行排序;并行写固态硬盘管理模块把排好序的数据从归并缓冲区写入固态硬盘;并行连接模块对内存连接缓冲区中的数据进行连接。本发明专利技术能够充分发挥固态硬盘内部并行特性。固态硬盘内部并行特性。固态硬盘内部并行特性。

【技术实现步骤摘要】
一种基于固态硬盘的数据库并行排序连接系统


[0001]本专利技术涉及计算机
,一种基于固态硬盘的并行排序连接系统,特别是关于数据库并行排序系统。

技术介绍

[0002]随着云计算及大数据的迅猛发展,固态硬盘以其低延迟、低功耗、高读写速度等优点,使得固态硬盘已逐步成为服务器应用领域的主流,因此如何高效的管理固态硬盘数据成为了一个新的研究领域。
[0003]现有的数据库排序方法有以下几种:(1)表扫描读取排序方法,适用于排序属性上没有索引的情况。传统的表扫描排序方法充分利用了磁盘的顺序读写特性优于随机读写特性而设计,即顺序读取,排序好之后顺序写出,但是数据量的多少和缓冲区的大小决定了采用几路归并排序方法。如果数据量较小而缓冲区足够大到放下所有数据进行排序,可以通过一次排序形成结果,即一路归并排序。如果数据量较大而缓冲区大小不足以存放所有数据,此时就需要把数据分成N块分别进行排序,然后对所有排好序的块进行归并排序,即N路归并排序;(2)基于索引的排序方法,利用数据库中排序属性上已经存在的索引,按照某种顺序读取数据,然后写出到外存即可,但是该方法会导致很多对外存的随机读操作。
[0004]传统磁盘数据库系统排序方法充分考虑磁盘读写对称特性,但很少考虑闪存存储器和固态硬盘的读写不对称特性,特别是甚少考虑固态硬盘的内部并行特性。如果将传统磁盘数据库系统排序方法直接运行在固态硬盘上,查询处理和事务处理性能提高倍数远不及硬件本身读写性能提高的倍数。由此可见,现有的面向传统磁盘的数据库系统并不能充分发挥固态硬盘相较于磁盘的高速读写带宽,固态硬盘的优异读写性能大打折扣。
[0005]固态硬盘与磁盘的最大不同点是固态硬盘的内部并行特性。基于闪存存储芯片的固态硬盘不具有机械组件,主要由接口逻辑、内置缓冲区、控制器和闪存存储器组成,是由闪存芯片经过一定的并行排列组成的类似磁盘的块设备,因此固态硬盘不但具有闪存存储芯片的特性,还具有一些其他特性,如内部并行特性。现有工作无法发挥固态硬盘的内部并行特性。

技术实现思路

[0006]针对上述问题,本专利技术的目的是提供一种能够充分发挥固态硬盘内部并行特性的基于固态硬盘的数据库并行排序连接系统。
[0007]为实现上述目的,本专利技术采取以下技术方案:
[0008]一种基于固态硬盘的数据库并行排序连接系统,包括内存、固态硬盘、系统判别模块、并行读固态硬盘管理模块、并行排序模块、并行写固态硬盘管理模块和并行连接模块,所述内存作为并行读固态硬盘管理模块的数据页缓冲区、同时作为并行排序模块排序缓冲区、并行写固态硬盘管理模块的归并缓冲区和并行连接模块的连接缓冲区;所述固态硬盘中存储有待排序数据和数据字典;所述系统判别模块根据数据字典中对待排序数据的统计
信息判断内存数据页缓冲区大小与待排序数据量之间的关系,决定系统采用哪种具体排序方法;所述并行读固态硬盘管理模块并行读取固态硬盘并把数据存入内存数据页缓冲区;所述并行排序模块对内存排序缓冲区中的数据进行排序;所述并行写固态硬盘管理模块把排好序的数据从归并缓冲区写入固态硬盘;所述并行连接模块对内存连接缓冲区中的数据进行连接。
[0009]进一步,设内存大小为M,固态硬盘并行域数量为N,所述系统判别模块的系统判别步骤如下:
[0010]1.1)、从固态硬盘读取待排序数据集的统计描述信息;
[0011]1.2)、通过待排序数据量和内存数据页缓冲区大小确定采用哪种具体的排序算法。
[0012]再进一步,所述并行排序模块的并行排序步骤如下:
[0013]2.1)、先按固态硬盘并行域的数量对内存进行均等分,每块大小为M/N;
[0014]2.2)、从固态硬盘并行读取待排序的数据写入内存的数据缓冲页,每块大小为M/N,共N块;
[0015]2.3)、根据系统判别模块确定具体的排序算法,然后对每一块数据并行排序;
[0016]2.4)、将排序好的数据块从内存并行写入固态硬盘;
[0017]2.5)、从固态硬盘按域并行读取排序好的数据,写入内存的数据缓冲页;
[0018]2.6)、扫描每一个数据缓冲页,比较并找到最小的数据;
[0019]2.7)、依次将最小的数据写入固态硬盘,直至数据全排列结束。
[0020]优选的,所述2.4)中,原步骤是将内存中的数据按原路写入固态硬盘并行域,所述数据块大小需满足小于等于M*M/N,或者小于等于((M

1)*M/N);改进方法是将数据按原本域的位置向前移一位写入在固态硬盘上新的位置,改进后的并行排序算法对数据块要求小于等于M*M或者小于等于(M

1)*M。
[0021]更进一步,设两个关系R和S,大小分别为Rn和Sn,Rn<=M*M,Sn<=M*M,所述并行连接模块的步骤如下:
[0022]3.1)、把R和S按顺序存放在固态硬盘中;
[0023]3.2)、使用并行排序模块先对R块进行排序,然后再对S块进行排序;
[0024]3.3)、将完全排序好的R和S进行连接。
[0025]所述3.1)中,同样可以进行改进,原方法是按顺序依次从固态硬盘中读取R和S进行排序,要求Rn+Sn<=M*M/N;改进方法是同时从固态硬盘中并行读取R和S,要求关系R和S的数据块个数比例为Rn:Sn=N
R
:N
S
,且N
R
+N
S
=N,连接所需时间要少于原方法。
[0026]本专利技术所提排序连接技术方案,其具有以下有益效果:
[0027]1)、本专利技术由于采用基于固态硬盘的排序连接方法,充分发挥了固态硬盘的内部并行特性,因此系统的事务吞吐率得到了很大的提高,固态硬盘的优越性能得到充分发挥;
[0028]2)、本专利技术没有改变传统的内存与闪存的两层存储结构,而且同时支持完整的事务接口,其通用性得到了保证,有利于闪存存储器的快速应用;
[0029]3)、本专利技术是基于磁盘文件系统的应用,可以很方便地运行在闪存存储设备之上,可以广泛应用于数据库系统中作为主要的连接方法存在。
附图说明
[0030]图1是本专利技术的整体流程示意图;
[0031]图2是本专利技术的并行排序模块流程示意图;
[0032]图3是本专利技术的并行排序模块中的排序结构示意图;
[0033]图4是本专利技术的并行排序模块中的归并结构示意图;
[0034]图5是本专利技术的并行排序模块中的排序改进示意图;
[0035]图6是本专利技术的并行连接模块流程示意图;
[0036]图7是本专利技术的并行连接模块数据读取示意图;
[0037]图8是本专利技术的并行连接模块数据读取改进示意图。
具体实施方式
[0038]下面结合附图和实施例对本专利技术进行详细的描述。
[0039]参照图1~图8,一种基于固态硬盘的数据库并行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于固态硬盘的数据库并行排序连接系统,其特征在于,包括内存、固态硬盘、系统判别模块、并行读固态硬盘管理模块、并行排序模块、并行写固态硬盘管理模块和并行连接模块,所述内存作为并行读固态硬盘管理模块的数据页缓冲区、同时作为并行排序模块排序缓冲区、并行写固态硬盘管理模块的归并缓冲区和并行连接模块的连接缓冲区;所述固态硬盘中存储有待排序数据和数据字典;所述系统判别模块根据数据字典中对待排序数据的统计信息判断内存数据页缓冲区大小与待排序数据量之间的关系,决定系统采用哪种具体排序方法;所述并行读固态硬盘管理模块并行读取固态硬盘并把数据存入内存数据页缓冲区;所述并行排序模块对内存排序缓冲区中的数据进行排序;所述并行写固态硬盘管理模块把排好序的数据从归并缓冲区写入固态硬盘;所述并行连接模块对内存连接缓冲区中的数据进行连接。2.如权利要求1所述的基于固态硬盘的数据库并行排序连接系统,其特征在于,设内存大小为M,固态硬盘并行域数量为N,所述系统判别模块的系统判别步骤如下:1.1)、从固态硬盘读取待排序数据集的统计描述信息;1.2)、通过待排序数据量和内存数据页缓冲区大小确定采用哪种具体的排序算法。3.如权利要求1或2所述的基于固态硬盘的数据库并行排序连接系统,其特征在于,所述并行排序模块的并行排序步骤如下:2.1)、先按固态硬盘并行域的数量对内存进行均等分,每块大小为M/N;2.2)、从固态硬盘并行读取待排序的数据写入内存的数据缓冲页,每块...

【专利技术属性】
技术研发人员:范玉雷周郑杰王俊凯赵懂佳许铃冰周科宇
申请(专利权)人:浙江工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1