一种优化阵列数据库并行数据加载性能的系统.pdf

上传人:1****2 文档编号:6286056 上传时间:2019-05-28 格式:PDF 页数:11 大小:709.57KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510952414.9

申请日:

2015.12.18

公开号:

CN105608138A

公开日:

2016.05.25

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20151218|||公开

IPC分类号:

G06F17/30; G06F9/445; G06F9/50

主分类号:

G06F17/30

申请人:

贵州大学; 贵州优联博睿科技有限公司

发明人:

李晖; 陈梅; 李宏源; 邱能俊

地址:

550025 贵州省贵阳市花溪区贵州大学(花溪北校区)博学楼计算机学院

优先权:

专利代理机构:

北京联创佳为专利事务所(普通合伙) 11362

代理人:

韩炜

PDF下载: PDF下载
内容摘要

本发明公开了一种优化阵列数据库数据并行加载性能的系统,包括监控引擎(1),监控引擎(1)收集数据库集群(2)的监控信息,将监控信息反馈到FASTLoad系统组件(3),FASTLoad系统组件(3)根据监控信息对待加载的数据进行分配方法数据加载;监控引擎(1)用于实时监控数据库节点(7);数据库集群(2)用于数据加载的执行;FASTLoad系统组件(3)用于数据的分割处理和加载。本发明不仅能满足阵列数据的加载需求,而且是一种能够对大规模基于阵列模型的数据进行数据并行加载的科学数据管理工具系统,该系统性能是原有的数据库系统加载数据机制的性能的4到6倍。

权利要求书

1.一种优化阵列数据库数据并行加载性能的系统,其特征在于:
包括监控引擎(1),监控引擎(1)收集数据库集群(2)的监控信息,
将监控信息反馈到FASTLoad系统组件(3),FASTLoad系统组件(3)
根据监控信息对待加载的数据进行分配方法数据加载;
监控引擎(1)用于实时监控数据库节点(7);
数据库集群(2)用于数据加载的执行;
FASTLoad系统组件(3)用于数据的分割处理和加载。
2.根据权利要求1所述的优化阵列数据库数据并行加载性能的系
统,其特征在于:所述FASTLoad系统组件(3)包括数据分区引擎(5),
数据分区引擎(5)分析待加载的数据,将待加载的数据文件分割成
子文件,然后将子文件加载到数据加载协调引擎(4),数据加载协调
引擎(4)根据监控信息对待加载的数据子文件按照分配方法协调数
据库集群(2)中的数据库节点(7)参与数据加载任务,数据加载完
成后,阵列数据库集群的协调者(8)节点将更新自己的元数据。
3.根据权利要求1所述的优化阵列数据库数据并行加载性能的系
统,其特征在于:所述的监控引擎(1)将监控信息存储在系统状态
数据库(6)中,系统状态数据库(6)再将监控数据传送到FASTLoad
系统组件(3)中。
4.根据权利要求1所述的优化阵列数据库数据并行加载性能的系
统,其特征在于:所述的数据库集群(2)包括协调者(8)和数据库
节点(7),数据库节点(7)连接有监控客户端(9),监控客户端(9)
负责收集数据库节点(7)的性能和系统状态信息,并反馈到系统状
态数据库(6)中。
5.根据权利要求1所述的优化阵列数据库数据并行加载性能的系
统,其特征在于:所述的数据库集群(2)设置1个以上数据库节点(7)。
6.根据权利要求1所述的优化阵列数据库数据并行加载性能的系
统,其特征在于:所述监控引擎(1)的采集数据包括:CPU利用率、
内存量、磁盘读写速率、网络带宽利用率、过去t(600≤t≤7200)
秒内任务的平均等待时间、任务数量等数据库节点负载。
7.根据权利要求1或2所述的优化阵列数据库数据并行加载性能
的系统,其特征在于:基于下述分配方法来安排数据库节点(7)参
与数据加载任务:
(1)如果数据加载任务T及其子任务TA在某数据库节点(7)上
运行时所需要的内存量,小于该数据库节点(7)的可用内存量的m%,
则将该数据加载任务T及其子任务TA加入到任务队列中,等待执行;
如果该数据加载任务T被指明为紧急任务,则将该数据加载任务T及其
子任务TA在该数据库节点(7)的任务等待队列中进行插队,将其排
到队列的最前面,等待当前正在执行的任务执行完后即可进行数据加
载任务的执行;其中,0<m%≤80%;
(2)如果某数据库节点(7)上的磁盘读写速率不到最高速度的
d%,则将数据加载任务T及其子任务TA加入到任务队列中,等待执行;
如果该数据加载任务T被指明为紧急任务,则将该数据加载任务T及其
子任务TA在该数据库节点(7)的任务等待队列中进行插队,将其排
到队列的最前面,等待当前正在执行的任务执行完后即可进行数据加
载任务的执行;其中,0<d%≤60%;
(3)如果某数据库节点(7)上当前正在等待执行的任务队列中
的任务,其预估的平均等待时间小于t1秒,则将该数据加载任务T及
其子任务TA加入到任务队列中,等待执行;如果该数据加载任务T被
指明为紧急任务,则将该数据加载任务T及其子任务TA在该数据库节
点(7)的任务等待队列中进行插队,将其排到队列的最前面,等待
当前正在执行的任务执行完后即可进行数据加载任务的执行;其中,
600≤t1≤7200;
(4)如果所有的数据库节点(7)的负载都重,按照前述3条规
则没有挑选到合适的执行数据加载任务的数据库节点(7),那么将数
据加载任务T分成X个子任务,然后按照在过去的时间t2内,任务队列
中的平均等待时间短的数据库节点(7)优先的原则,将数据加载任
务T及其子任务TA予以分配执行;对于任务平均等待时间相同的数据
库节点,则按照可用内存量大、CPU利用率低的优先原则,进行任务
分配;如果该数据加载任务T被指明为紧急任务,则将数据加载任务T
及其子任务TA在该数据库节点(7)的任务等待队列中进行插队,将
其排到队列的最前面,等待当前正在执行的任务执行完后即可进行数
据加载任务T的执行;其中,600≤t2≤7200,N/2≤X≤N。

说明书

一种优化阵列数据库并行数据加载性能的系统

技术领域

本发明涉及一种系统,特别是一种优化阵列数据库并行数据加载
性能的系统。

背景技术

在大数据时代,在很多学科领域如生物信息学、气象学或者天文
科学领域的科学数据增长非常迅速。而想要对这些数据进行分析和处
理,需要先将数据导入到数据库中。随着数据量的增加,数据加载方
法的性能变得越来越重要。

SciDB是一个针对科学数据管理和分析的开源的科学数据库系
统,它采用的是阵列数据(Array)模型,主要是由Stonebraker领导
开发并且获得了Paradigm4公司的赞助。其设计初衷旨在解决科学研
究中数据量大、数据世袭等科学问题。与传统DBMS不同的是,受益
于阵列数据模型,SciDB能够为科学应用领域提供大规模的复杂分析
支持,用以满足其日益增长的需求。SciDB主要的特征如下。首先是
无覆盖特性,SciDB能够存储不同版本的数据,通过时间维度作为区
别不同历史阵列的标志。此外,还采用压缩算法以节省空间。其次是
引入了原位数据的特性,SciDB定义自己的数据格式,并为常用的外
部数据格式提供适配器编写接口。通过适配器,用户就可以不通过加
载数据到SciDB引擎直接进行数据分析处理。第三是命名版本特性:
用户对阵列的一部分执行特定的变更,而保留其余部分不变。第四个
特征是可以满足数据推导可重复性的要求的特征。

尽管当前的阵列数据库如SciDB本身具有并行数据加载机制。但
是由于这些数据加载机制本身采用的传统的关系型数据的加载策略,
它们并不适合快速加载通常用阵列模型表示的科学数据到分布式并
行系统中,尤其是在这些科学数据的数据大小以及维度变得很大的情
况下,传统数据加载方法的性能下降将较为明显。

为了优化阵列数据库数据并行加载的性能,我们针对阵列数据库
的数据加载过程提出了一种优化的并行加载系统FASTLoad。

发明内容

本发明的目的在于,提供一种优化阵列数据库的数据并行加载性
能的系统。本发明不仅能满足阵列数据的加载需求,而且是一种能够
对大规模基于阵列模型的数据进行数据并行加载的科学数据管理工
具系统,该系统性能是原有的数据库系统加载数据机制的性能的4
到6倍。

本发明的技术方案:一种优化阵列数据库数据并行加载性能的系
统,包括监控引擎,监控引擎收集数据库集群的监控信息,将监控信
息反馈到FASTLoad系统组件,FASTLoad系统组件根据监控信息对待加
载的数据进行分配方法数据加载;

监控引擎用于实时监控数据库节点;

数据库集群用于数据加载的执行;

FASTLoad系统组件用于数据的分割处理和加载。

前述的优化阵列数据库数据并行加载性能的系统中,所述
FASTLoad系统组件包括数据分区引擎,数据分区引擎分析待加载的数
据,将待加载的数据文件分割成子文件,然后将子文件加载到数据加
载协调引擎,数据加载协调引擎根据监控信息对待加载的数据子文件
按照分配方法协调数据库节点参与数据加载任务,数据加载完成后,
阵列数据库集群的协调者节点将更新自己的元数据。

前述的优化阵列数据库数据并行加载性能的系统中,所述的监控
引擎将监控信息存储在系统状态数据库中,系统状态数据库再将监控
数据传送到FASTLoad系统组件中。

前述的优化阵列数据库数据并行加载性能的系统中,所述的数据
库集群包括协调者和数据库节点,数据库节点连接有监控客户端,监
控客户端负责收集数据库节点的性能和系统状态信息,并反馈到系统
状态数据库中。

前述的优化阵列数据库数据并行加载性能的系统中,所述的数据
库集群设置1个以上数据库节点。

前述的优化阵列数据库数据并行加载性能的系统中,所述监控引
擎的采集数据包括:CPU利用率、内存量、磁盘读写速率、网络带宽
利用率、过去t(600≤t≤7200)秒内任务的平均等待时间、任务数
量等数据库节点负载。

前述的优化阵列数据库数据并行加载性能的系统中,基于下述分
配方法来安排数据库节点参与数据加载任务:

(1)如果数据加载任务T及其子任务TA在某数据库节点上运行时
所需要的内存量,小于该数据库节点的可用内存量的m%,则将该数据
加载任务T及其子任务TA加入到任务队列中,等待执行;如果该数据
加载任务T被指明为紧急任务,则将该数据加载任务T及其子任务TA
在该数据库节点的任务等待队列中进行插队,将其排到队列的最前
面,等待当前正在执行的任务执行完后即可进行数据加载任务的执
行;其中,0<m%≤80%;

(2)如果某数据库节点上的磁盘读写速率不到最高速度的d%,
则将数据加载任务T及其子任务TA加入到任务队列中,等待执行;如
果该数据加载任务T被指明为紧急任务,则将该数据加载任务T及其子
任务TA在该数据库节点的任务等待队列中进行插队,将其排到队列的
最前面,等待当前正在执行的任务执行完后即可进行数据加载任务的
执行;其中,0<d%≤60%;

(3)如果某数据库节点上当前正在等待执行的任务队列中的任
务,其预估的平均等待时间小于t1秒,则将该数据加载任务T及其子
任务TA加入到任务队列中,等待执行;如果该数据加载任务T被指明
为紧急任务,则将该数据加载任务T及其子任务TA在该数据库节点的
任务等待队列中进行插队,将其排到队列的最前面,等待当前正在执
行的任务执行完后即可进行数据加载任务的执行;其中,600≤t1≤
7200;

(4)如果所有的数据库节点的负载都重,按照前述3条规则没有
挑选到合适的执行数据加载任务的数据库节点,那么将数据加载任务
T分成X个子任务,然后按照在过去的时间t2内,任务队列中的平均等
待时间短的数据库节点优先的原则,将数据加载任务T及其子任务TA
予以分配执行;对于任务平均等待时间相同的数据库节点,则按照可
用内存量大、CPU利用率低的优先原则,进行任务分配;如果该数据
加载任务T被指明为紧急任务,则将数据加载任务T及其子任务TA在该
数据库节点的任务等待队列中进行插队,将其排到队列的最前面,等
待当前正在执行的任务执行完后即可进行数据加载任务T的执行;其
中,600≤t2≤7200,N/2≤X≤N。

与现有技术相比,本发明通过监控引擎收集数据库集群的监控信
息,将监控信息反馈到FASTLoad系统组件,FASTLoad系统组件中的
数据加载协调引擎根据监控信息,应用自定义的规则来安排一部分数
据库集群节点参与数据并行加载任务的执行。根据参与执行任务的各
数据库节点的可用内存情况,FASTLoad系统组件中的数据分区引擎
分析待加载的数据,将待加载的数据文件进行分割,然后协调参与执
行任务的各数据库节点并行的执行数据加载任务,系统性能可达到原
有数据库系统加载数据机制的性能的4到6倍。

申请人将本申请的FASTLoad系统和SciDB内置的数据并行加载
系统进行了一系列对比实验,实验设计与性能分析如下:

实验配置

使用了15个KVM虚拟机节点。每个虚拟机节点都有一个虚拟出
的4核4线程CPU,50GBswap大小以及1TB硬盘空间。作为SciDB
集群的Coordinate节点(协调者节点)拥有40GB主存,而作为worker
节点(数据库节点,又称工作者节点)的其他所有KVM虚拟机节点都
只拥有8GB主存。所有的虚拟机节点是由两台物理机虚拟化出来的。
每台物理机都拥有两个主频为2.0GHz的Intel(R)Xeon(R)E5-2620
cpu(每个CPU有6个核心12个线程)。这两台物理机总共拥有
192GB主存和14TB的硬盘存储。任意两个虚拟节点之间的稳定传输
速度大概是20M/s左右。

数据来源

为了做FASTLoad系统与SciDB内置的数据并行加载系统之间的
性能对比,我们采用了9中不同规格的数据集做性能评估。这些数据
集来自美国斯隆数字化巡天(SDSS)。每个数据集的大小以及该数据
集中包含的数据的条数参见表1。

表1


性能分析结果

从图3中,我们可以看出从第1种规格数据集到第四种规格数据
集,FASTLoad系统与SciDB内置的数据并行加载系统的性能看起来
相差不大。因而,我们将图3中数据集大向小于54GB部分作为图4。
从图4中可以看出,当数据集大小小于33GB时,尽管数据加载时间
总体上呈现出增长的趋势,但是这两种加载方式的性能差别不大。

当数据集大小超过43GB,FASTLoad系统与SciDB内置的数据并
行加载系统之间的性能差距越来越大。为了可以更加明显的看出两者
之间的差距,我们把这一部分放在图5中。从图5中,我们可以看到
在数据集大于43GB时,FASTLoad明显比SciDB内置的数据并行加载
系统更高效。从图5中可以看出,FASTLoad机制性能是SciDB内置
的数据并行加载机制性能的4到6倍。甚至当数据集只有43GB时,
FASTLoad机制的数据并行加载都比SciDB内置的数据并行加载机制
性能快数百秒。

附图说明

图1是本发明的基础构架框图;

图2是本发明的FASTLoad组件工作原理框图;

图3是FASTLoad系统与SciDB内置的数据并行加载系统的性能
表现对比图;其中,横坐标为数据量,纵坐标为数据加载时间;正方
形连接为FASTLoad的性能,圆形连接的为SciDB内置数据并行加载
系统的性能;

图4是图3中数据集大向小于54GB部分;其中,横坐标为数据
量,纵坐标为数据加载时间;正方形连接为FASTLoad的性能,圆形
连接的为SciDB内置数据并行加载系统的性能;

图5是数据集大小超过43GB,FASTLoad系统与SciDB内置的数
据并行加载系统之间的性能表现对比图。其中,横坐标为数据量,纵
坐标为数据加载时间;正方形连接为FASTLoad的性能,圆形连接的
为SciDB内置数据并行加载系统的性能;

附图中的标记为:1-监控引擎,2-数据库集群,3-FASTLoad系
统组件,4-数据加载协调引擎,5-数据分区引擎,6-系统状态数据库,
7-数据库节点,8-协调者,9-监控客户端。

具体实施方式

实施例1。一种优化阵列数据库数据并行加载性能的系统,包括
监控引擎1,监控引擎1收集数据库集群2的监控信息,将监控信息反
馈到FASTLoad系统组件3,FASTLoad系统组件3根据监控信息对待加载
的数据进行分配方法数据加载;

监控引擎1用于实时监控数据库节点7;

数据库集群2用于数据加载的执行;

FASTLoad系统组件3用于数据的分割处理和加载。

所述FASTLoad系统组件3包括数据分区引擎5,数据分区引擎5分
析待加载的数据,将待加载的数据文件分割成子文件,然后将子文件
加载到数据加载协调引擎4,数据加载协调引擎4根据监控信息对待加
载的数据子文件按照分配方法协调数据库集群2中的数据库节点7参
与数据加载任务,数据加载完成后,阵列数据库集群的协调者8节点
将更新自己的元数据。以便反应出最新的数据分布情况和统计信息。

所述的监控引擎1将监控信息存储在系统状态数据库6中,系统状
态数据库6再将监控数据传送到FASTLoad系统组件3中。

所述的数据库集群2包括协调者8和数据库节点7,数据库节点7
连接有监控客户端9,监控客户端9负责收集数据库节点7的性能和系
统状态信息,并反馈到系统状态数据库6中。

所述的数据库集群2设置1个以上数据库节点7。

所述监控引擎1的采集数据包括:CPU利用率、内存量、磁盘读写
速率、网络带宽利用率、过去t(600≤t≤7200)秒内任务的平均等
待时间、任务数量等数据库节点负载。

基于下述分配方法来安排数据库节点7参与数据加载任务:

(1)如果数据加载任务T及其子任务TA在某数据库节点7上运行
时所需要的内存量,小于该数据库节点7的可用内存量的m%,则将该
数据加载任务T及其子任务TA加入到任务队列中,等待执行;如果该
数据加载任务T被指明为紧急任务,则将该数据加载任务T及其子任务
TA在该数据库节点7的任务等待队列中进行插队,将其排到队列的最
前面,等待当前正在执行的任务执行完后即可进行数据加载任务的执
行;其中,0<m%≤80%,本系统默认设置m%=80%,本数据库系统的系
统管理员可以根据系统实际运行情况对本参数进行调整;

(2)如果某数据库节点7上的磁盘读写速率不到最高速度的d%,
则将数据加载任务T及其子任务TA加入到任务队列中,等待执行;如
果该数据加载任务T被指明为紧急任务,则将该数据加载任务T及其子
任务TA在该数据库节点7的任务等待队列中进行插队,将其排到队列
的最前面,等待当前正在执行的任务执行完后即可进行数据加载任务
的执行;其中,0<d%≤60%,本系统默认设置m%=60%,本数据库系统的
系统管理员可以根据系统实际运行情况对本参数进行调整;

(3)如果某数据库节点7上当前正在等待执行的任务队列中的任
务,其预估的平均等待时间小于t1秒,则将该数据加载任务T及其子
任务TA加入到任务队列中,等待执行;如果该数据加载任务T被指明
为紧急任务,则将该数据加载任务T及其子任务TA在该数据库节点7
的任务等待队列中进行插队,将其排到队列的最前面,等待当前正在
执行的任务执行完后即可进行数据加载任务的执行;其中,600≤t1
≤7200,本系统默认设置t1=600,本数据库系统的系统管理员可以根
据系统实际运行情况对参数进行调整。预估的平均等待时间的取值为
本数据库节点在过去t秒内的任务平均等待时间;

(4)如果所有的数据库节点7的负载都重,按照前述3条规则没
有挑选到合适的执行数据加载任务的数据库节点7,那么将数据加载
任务T分成X个子任务,然后按照在过去的时间t2内,任务队列中的平
均等待时间短的数据库节点7优先的原则,将数据加载任务T及其子任
务TA予以分配执行;对于任务平均等待时间相同的数据库节点,则按
照可用内存量大、CPU利用率低的优先原则,进行任务分配;如果该
数据加载任务T被指明为紧急任务,则将数据加载任务T及其子任务TA
在该数据库节点7的任务等待队列中进行插队,将其排到队列的最前
面,等待当前正在执行的任务执行完后即可进行数据加载任务T的执
行;其中,600≤t2≤7200,N/2≤X≤N,N是数据库节点的数量,X的
取值的确定方法为:在[N/2,N]的区间内随机的取一个整数,该整数
值就是X的取值。本系统默认设置t2=600,本数据库系统的系统管理
员可以根据系统实际运行情况对参数进行调整。

数据加载流程可以分为两种类型。

如果用户需要马上加载当前的数据,那么用户的数据文件信息会
马上转发给FASTLoad系统组件3,同时,该信息会带有一个标识说
明该文件必须马上导入到集群中。之后FASTLoad系统组件3会等待
直到数据加载协调引擎4处于空闲状态。一旦数据加载协调引擎4
处于空闲状态,数据加载任务会立即执行。

如果用户不需要马上把数据加载到数据库集群2中,那么该数据
加载任务会被加载到一个任务队列中排队,同时该任务数据信息会被
发送到监控引擎。这意味着数据流会被按照系统默认的大小作为文件
放置,并且会被记录下当前收到的数据的行数,假设系统默认的最大
行数为n。一旦数据流传输超过n行的数据,那么已经接收的n行数
据会在一个文件中单独存储。同时,此时的文件状态会被存储在数据
库中。文件状态和文件数据相互之间是联系在一起的。之后文件的所
有数据按文件加载次序发到FASTLoad系统组件3中,FASTLoad系统
组件3会调用数据加载协调引擎4按照任务次序把数据加载到数据库
集群2中。

上述两种方式都会将要加载数据文件的状态信息发给系统状态
数据库6。数据分区引擎5用于决定如何分割数据文件。在数据加载
过程中,我们的加载方法可以避免出现主存瓶颈。一旦数据加载失败,
数据加载过程会重新进行直至成功或者系统默认的最大重试次数。

数据分区引擎5是一个简单的实现了先来先服务算法的调度器。
这意味着数据加载次序是数据加载请求发送给数据分区引擎5的次
序。一旦数据加载失败,该数据的加载次序依旧不变。假设当前数据
文件的加载次序为X,那么假如当前文件加载失败,那么次序为(X+1)
的数据文件加载过程不会被调度。如果该数据文件加载重试次数超过
了系统默认的最大重试次数,那么该任务的相关信息以及失败信息会
发送到状态存储子系统中去,从而方便管理者做进一步的排查。

FASTLoad组件主要由数据分区引擎5和数据加载协调引擎4组
成。对于每个将参与执行数据加载任务的数据库节点7,数据分区引
擎5(分割器引擎)负责将需要加载的文件分割成块,每个块的大小
小于将要把它加载到数据库集群2中的对于数据库节点7可用内存
量。数据分区引擎5会在分割任务结束后将相关信息发送给数据加载
协调引擎4,然后由它通知相应的数据库节点7开始执行相应的数据
加载子任务。

一种优化阵列数据库并行数据加载性能的系统.pdf_第1页
第1页 / 共11页
一种优化阵列数据库并行数据加载性能的系统.pdf_第2页
第2页 / 共11页
一种优化阵列数据库并行数据加载性能的系统.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《一种优化阵列数据库并行数据加载性能的系统.pdf》由会员分享,可在线阅读,更多相关《一种优化阵列数据库并行数据加载性能的系统.pdf(11页珍藏版)》请在专利查询网上搜索。

本发明公开了一种优化阵列数据库数据并行加载性能的系统,包括监控引擎(1),监控引擎(1)收集数据库集群(2)的监控信息,将监控信息反馈到FASTLoad系统组件(3),FASTLoad系统组件(3)根据监控信息对待加载的数据进行分配方法数据加载;监控引擎(1)用于实时监控数据库节点(7);数据库集群(2)用于数据加载的执行;FASTLoad系统组件(3)用于数据的分割处理和加载。本发明不仅能满足阵。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1