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

文档序号:9839654阅读:来源:国知局
个 主频为2.0GHz的Intel(R)Xeon(R)E5-2620cpu(每个CPU有6个核心12个线程)。这两台物理 机总共拥有192GB主存和14TB的硬盘存储。任意两个虚拟节点之间的稳定传输速度大概是 20M/s左右。
[0025]数据来源
[0026] 为了做FASTLoad系统与SciDB内置的数据并行加载系统之间的性能对比,我们采 用了 9中不同规格的数据集做性能评估。这些数据集来自美国斯隆数字化巡天(SDSS)。每个 数据集的大小以及该数据集中包含的数据的条数参见表1。
[0027] 衷 1
[0028]
[0029] 性能分析结果
[0030] 从图3中,我们可以看出从第1种规格数据集到第四种规格数据集,FASTLoad系统 与SciDB内置的数据并行加载系统的性能看起来相差不大。因而,我们将图3中数据集大向 小于54GB部分作为图4。从图4中可以看出,当数据集大小小于33GB时,尽管数据加载时间总 体上呈现出增长的趋势,但是这两种加载方式的性能差别不大。
[0031]当数据集大小超过43GB,FASTL〇ad系统与SciDB内置的数据并行加载系统之间的 性能差距越来越大。为了可以更加明显的看出两者之间的差距,我们把这一部分放在图5 中。从图5中,我们可以看到在数据集大于43GB时,FASTLoad明显比SciDB内置的数据并行加 载系统更高效。从图5中可以看出,FASTLoad机制性能是SciDB内置的数据并行加载机制性 能的4到6倍。甚至当数据集只有43GB时,FASTLoad机制的数据并行加载都比SciDB内置的数 据并行加载机制性能快数百秒。
【附图说明】
[0032]图1是本发明的基础构架框图;
[0033]图2是本发明的FASTLoad组件工作原理框图;
[0034] 图3是FASTLoad系统与SciDB内置的数据并行加载系统的性能表现对比图;其中, 横坐标为数据量,纵坐标为数据加载时间;正方形连接为FASTLoad的性能,圆形连接的为 SciDB内置数据并行加载系统的性能;
[0035] 图4是图3中数据集大向小于54GB部分;其中,横坐标为数据量,纵坐标为数据加载 时间;正方形连接为FASTLoad的性能,圆形连接的为SciDB内置数据并行加载系统的性能; [0036]图5是数据集大小超过43GB,FASTL 〇ad系统与SciDB内置的数据并行加载系统之间 的性能表现对比图。其中,横坐标为数据量,纵坐标为数据加载时间;正方形连接为 FASTLoad的性能,圆形连接的为SciDB内置数据并行加载系统的性能;
[0037] 附图中的标记为:1-监控引擎,2-数据库集群,3-FASTLoad系统组件,4-数据加载 协调引擎,5-数据分区引擎,6-系统状态数据库,7-数据库节点,8-协调者,9-监控客户端。
【具体实施方式】
[0038] 实施例1。一种优化阵列数据库数据并行加载性能的系统,包括监控引擎1,监控引 擎1收集数据库集群2的监控信息,将监控信息反馈到FASTLoad系统组件3,FASTLoad系统组 件3根据监控信息对待加载的数据进行分配方法数据加载;
[0039] 监控引擎1用于实时监控数据库节点7;
[0040]数据库集群2用于数据加载的执行;
[00411 FASTLoad系统组件3用于数据的分割处理和加载。
[0042] 所述FASTLoad系统组件3包括数据分区引擎5,数据分区引擎5分析待加载的数据, 将待加载的数据文件分割成子文件,然后将子文件加载到数据加载协调引擎4,数据加载协 调引擎4根据监控信息对待加载的数据子文件按照分配方法协调数据库集群2中的数据库 节点7参与数据加载任务,数据加载完成后,阵列数据库集群的协调者8节点将更新自己的 元数据。以便反应出最新的数据分布情况和统计信息。
[0043] 所述的监控引擎1将监控信息存储在系统状态数据库6中,系统状态数据库6再将 监控数据传送到FASTLoad系统组件3中。
[0044] 所述的数据库集群2包括协调者8和数据库节点7,数据库节点7连接有监控客户端 9,监控客户端9负责收集数据库节点7的性能和系统状态信息,并反馈到系统状态数据库6 中。
[0045] 所述的数据库集群2设置1个以上数据库节点7。
[0046] 所述监控引擎1的采集数据包括:CPU利用率、内存量、磁盘读写速率、网络带宽利 用率、过去t(600 < t < 7200)秒内任务的平均等待时间、任务数量等数据库节点负载。
[0047] 基于下述分配方法来安排数据库节点7参与数据加载任务:
[0048] (1)如果数据加载任务T及其子任务TA在某数据库节点7上运行时所需要的内存 量,小于该数据库节点7的可用内存量的m%,则将该数据加载任务T及其子任务TA加入到任 务队列中,等待执行;如果该数据加载任务T被指明为紧急任务,则将该数据加载任务T及其 子任务TA在该数据库节点7的任务等待队列中进行插队,将其排到队列的最前面,等待当前 正在执行的任务执行完后即可进行数据加载任务的执行;其中,〇〈m% <80%,本系统默认 设置m% =80%,本数据库系统的系统管理员可以根据系统实际运行情况对本参数进行调 整;
[0049] (2)如果某数据库节点7上的磁盘读写速率不到最高速度的d%,则将数据加载任 务T及其子任务TA加入到任务队列中,等待执行;如果该数据加载任务T被指明为紧急任务, 则将该数据加载任务T及其子任务TA在该数据库节点7的任务等待队列中进行插队,将其排 到队列的最前面,等待当前正在执行的任务执行完后即可进行数据加载任务的执行;其中, 0〈d% < 60%,本系统默认设置m% =60%,本数据库系统的系统管理员可以根据系统实际 运行情况对本参数进行调整;
[0050] (3)如果某数据库节点7上当前正在等待执行的任务队列中的任务,其预估的平均 等待时间小于七秒,则将该数据加载任务T及其子任务TA加入到任务队列中,等待执行;如 果该数据加载任务T被指明为紧急任务,则将该数据加载任务T及其子任务TA在该数据库节 点7的任务等待队列中进行插队,将其排到队列的最前面,等待当前正在执行的任务执行完 后即可进行数据加载任务的执行;其中,600 < t < 7200,本系统默认设置以=600,本数据库 系统的系统管理员可以根据系统实际运行情况对参数进行调整。预估的平均等待时间的取 值为本数据库节点在过去t秒内的任务平均等待时间;
[0051] (4)如果所有的数据库节点7的负载都重,按照前述3条规则没有挑选到合适的执 行数据加载任务的数据库节点7,那么将数据加载任务T分成X个子任务,然后按照在过去的 时间^内,任务队列中的平均等待时间短的数据库节点7优先的原则,将数据加载任务T及 其子任务TA予以分配执行;对于任务平均等待时间相同的数据库节点,则按照可用内存量 大、CPU利用率低的优先原则,进行任务分配;如果该数据加载任务T被指明为紧急任务,则 将数据加载任务T及其子任务TA在该数据库节点7的任务等待队列中进行插队,将其排到队 列的最前面,等待当前正在执行的任务执行完后即可进行数据加载任务T的执行;其中,600 < t2 < 7200,N/2 < X < N,N是数据库节点的数量,X的取值的确定方法为:在[N/2,N]的区间 内随机的取一个整数,该整数值就是X的取值。本系统默认设置t 2 = 600,本数据库系统的系 统管理员可以根据系统实际运行情况对参数进行调整。
[0052]数据加载流程可以分为两种类型。
[0053]如果用户需要马上加载当前的数据,那么用户的数据文件信息会马上转发给
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1