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

文档序号:9839654阅读:341来源:国知局
一种优化阵列数据库并行数据加载性能的系统的制作方法
【技术领域】
[0001] 本发明涉及一种系统,特别是一种优化阵列数据库并行数据加载性能的系统。
【背景技术】
[0002] 在大数据时代,在很多学科领域如生物信息学、气象学或者天文科学领域的科学 数据增长非常迅速。而想要对这些数据进行分析和处理,需要先将数据导入到数据库中。随 着数据量的增加,数据加载方法的性能变得越来越重要。
[0003] SciDB是一个针对科学数据管理和分析的开源的科学数据库系统,它采用的是阵 列数据(Array)模型,主要是由Stonebraker领导开发并且获得了 Paradi gm4公司的赞助。其 设计初衷旨在解决科学研究中数据量大、数据世袭等科学问题。与传统DBMS不同的是,受益 于阵列数据模型,SciDB能够为科学应用领域提供大规模的复杂分析支持,用以满足其日益 增长的需求。SciDB主要的特征如下。首先是无覆盖特性,SciDB能够存储不同版本的数据, 通过时间维度作为区别不同历史阵列的标志。此外,还采用压缩算法以节省空间。其次是引 入了原位数据的特性,SciDB定义自己的数据格式,并为常用的外部数据格式提供适配器编 写接口。通过适配器,用户就可以不通过加载数据到SciDB引擎直接进行数据分析处理。第 三是命名版本特性:用户对阵列的一部分执行特定的变更,而保留其余部分不变。第四个特 征是可以满足数据推导可重复性的要求的特征。
[0004] 尽管当前的阵列数据库如SciDB本身具有并行数据加载机制。但是由于这些数据 加载机制本身采用的传统的关系型数据的加载策略,它们并不适合快速加载通常用阵列模 型表示的科学数据到分布式并行系统中,尤其是在这些科学数据的数据大小以及维度变得 很大的情况下,传统数据加载方法的性能下降将较为明显。
[0005] 为了优化阵列数据库数据并行加载的性能,我们针对阵列数据库的数据加载过程 提出了一种优化的并行加载系统FASTLoad。

【发明内容】

[0006] 本发明的目的在于,提供一种优化阵列数据库的数据并行加载性能的系统。本发 明不仅能满足阵列数据的加载需求,而且是一种能够对大规模基于阵列模型的数据进行数 据并行加载的科学数据管理工具系统,该系统性能是原有的数据库系统加载数据机制的性 能的4到6倍。
[0007] 本发明的技术方案:一种优化阵列数据库数据并行加载性能的系统,包括监控引 擎,监控引擎收集数据库集群的监控信息,将监控信息反馈到FASTLoad系统组件,FASTLoad 系统组件根据监控信息对待加载的数据进行分配方法数据加载;
[0008] 监控引擎用于实时监控数据库节点;
[0009]数据库集群用于数据加载的执行;
[0010] FASTLoad系统组件用于数据的分割处理和加载。
[0011] 前述的优化阵列数据库数据并行加载性能的系统中,所述FASTLoad系统组件包括 数据分区引擎,数据分区引擎分析待加载的数据,将待加载的数据文件分割成子文件,然后 将子文件加载到数据加载协调引擎,数据加载协调引擎根据监控信息对待加载的数据子文 件按照分配方法协调数据库节点参与数据加载任务,数据加载完成后,阵列数据库集群的 协调者节点将更新自己的元数据。
[0012] 前述的优化阵列数据库数据并行加载性能的系统中,所述的监控引擎将监控信息 存储在系统状态数据库中,系统状态数据库再将监控数据传送到FASTLoad系统组件中。
[0013] 前述的优化阵列数据库数据并行加载性能的系统中,所述的数据库集群包括协调 者和数据库节点,数据库节点连接有监控客户端,监控客户端负责收集数据库节点的性能 和系统状态信息,并反馈到系统状态数据库中。
[0014] 前述的优化阵列数据库数据并行加载性能的系统中,所述的数据库集群设置1个 以上数据库节点。
[0015]前述的优化阵列数据库数据并行加载性能的系统中,所述监控引擎的采集数据包 括:CPU利用率、内存量、磁盘读写速率、网络带宽利用率、过去t(600 < t < 7200)秒内任务的 平均等待时间、任务数量等数据库节点负载。
[0016] 前述的优化阵列数据库数据并行加载性能的系统中,基于下述分配方法来安排数 据库节点参与数据加载任务:
[0017] (1)如果数据加载任务T及其子任务TA在某数据库节点上运行时所需要的内存量, 小于该数据库节点的可用内存量的m%,则将该数据加载任务T及其子任务TA加入到任务队 列中,等待执行;如果该数据加载任务T被指明为紧急任务,则将该数据加载任务T及其子任 务TA在该数据库节点的任务等待队列中进行插队,将其排到队列的最前面,等待当前正在 执行的任务执行完后即可进行数据加载任务的执行;其中,〇〈m% < 80% ;
[0018] (2)如果某数据库节点上的磁盘读写速率不到最高速度的d%,则将数据加载任务 T及其子任务TA加入到任务队列中,等待执行;如果该数据加载任务T被指明为紧急任务,则 将该数据加载任务T及其子任务TA在该数据库节点的任务等待队列中进行插队,将其排到 队列的最前面,等待当前正在执行的任务执行完后即可进行数据加载任务的执行;其中,〇〈 d% <60%;
[0019] (3)如果某数据库节点上当前正在等待执行的任务队列中的任务,其预估的平均 等待时间小于七秒,则将该数据加载任务T及其子任务TA加入到任务队列中,等待执行;如 果该数据加载任务T被指明为紧急任务,则将该数据加载任务T及其子任务TA在该数据库节 点的任务等待队列中进行插队,将其排到队列的最前面,等待当前正在执行的任务执行完 后即可进行数据加载任务的执行;其中,600 < t < 7200;
[0020] (4)如果所有的数据库节点的负载都重,按照前述3条规则没有挑选到合适的执行 数据加载任务的数据库节点,那么将数据加载任务T分成X个子任务,然后按照在过去的时 间^内,任务队列中的平均等待时间短的数据库节点优先的原则,将数据加载任务T及其子 任务TA予以分配执行;对于任务平均等待时间相同的数据库节点,则按照可用内存量大、 CPU利用率低的优先原则,进行任务分配;如果该数据加载任务T被指明为紧急任务,则将数 据加载任务T及其子任务TA在该数据库节点的任务等待队列中进行插队,将其排到队列的 最前面,等待当前正在执行的任务执行完后即可进行数据加载任务T的执行;其中,600 < t2 < 7200,N/2<X<N。
[0021] 与现有技术相比,本发明通过监控引擎收集数据库集群的监控信息,将监控信息 反馈到FASTLoad系统组件,FASTLoad系统组件中的数据加载协调引擎根据监控信息,应用 自定义的规则来安排一部分数据库集群节点参与数据并行加载任务的执行。根据参与执行 任务的各数据库节点的可用内存情况,FASTLoad系统组件中的数据分区引擎分析待加载的 数据,将待加载的数据文件进行分割,然后协调参与执行任务的各数据库节点并行的执行 数据加载任务,系统性能可达到原有数据库系统加载数据机制的性能的4到6倍。
[0022] 申请人将本申请的FASTLoad系统和SciDB内置的数据并行加载系统进行了一系列 对比实验,实验设计与性能分析如下:
[0023] 实验配置
[0024]使用了 15个KVM虚拟机节点。每个虚拟机节点都有一个虚拟出的4核4线程CPU, 50GB swap大小以及1TB硬盘空间。作为SciDB集群的Coordinate节点(协调者节点)拥有 40GB主存,而作为worker节点(数据库节点,又称工作者节点)的其他所有KVM虚拟机节点都 只拥有8GB主存。所有的虚拟机节点是由两台物理机虚拟化出来的。每台物理机都拥有两
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1