一种基于阵列模型的数据库系统的制作方法

文档序号:9865598阅读:170来源:国知局
一种基于阵列模型的数据库系统的制作方法
【技术领域】
[0001] 本发明设及一种系统,特别是一种基于阵列模型的数据库系统。
【背景技术】
[0002] 计算机模拟和科学设备每年都会产生海量的科学数据,大部分科学数据都是W阵 列形式存在的,传统基于关系型的数据库并不能很好的满足在数据密集型科学领域的存储 和分析需求。现如今基于关系型的传统数据库如SQL Server被广泛应用于各种领域,但是, 针对科学数据的高噪声,密集计算和复杂的非关系模式的特征,传统关系数据库并不能很 好的支持大规模科学数据的存储和分析。
[0003] 基于关系模型的数据库系统(如SQL Server,MySQL,化acle)目前广泛应用于商业 领域。然而,科学数据的高噪音,复杂计算分析的特征并不适合传统关系型数据库。在科学 研究的过程中,很多科学家希望花费更多的时间在与科学数据和科学分析结果上,而非在 科学数据的分析处理工具的学习中,而目前的商业的数据管理系统已经不能满足科学数据 的存储和分析需求了。
[0004] SciDB是一个针对科学数据管理和分析的开放源代码的科学数据库系统,它主要 是由Stonebraker领导开发并且获得化radigm4公司的赞助。其设计初衷旨在解决科学研究 中数据量大、数据世袭等科学问题。与传统DBMS不同的是,SciDB能够为科学应用领域提供 大规模的复杂分析支持,用W满足其日益增长的需求。它采用阵列数据模型,因此能够较好 的支持多维科学数据分析。SciDB主要的特征如下。首先是无覆盖特性,SciDB能够存储不同 版本的数据,通过时间维度作为区别不同历史阵列的标志。此外,还采用压缩算法W节省空 间。其次是引入了原位数据的特性,SciDB定义自己的数据格式,并为常用的外部数据格式 提供适配器编写接口。通过适配器,用户就可W不通过加载数据到SciDB引擎直接进行数据 分析处理。第Ξ是命名版本特性:用户对阵列的一部分执行特定的变更,而保留其余部分不 变。第四个特征是可W满足数据推导可重复性的要求的特征。科学领域的数据收集过程中 经常会收集到不准确的数据信息,为了解决运个问题,SciDB也支持数据具有误差。
[0005] 现有的SciDB系统,无法与KVM虚拟化技术的应用接口对接,需要人工的干预,且当 数据过多时,数据库无法有效地对任务进行分配,造成了等待时间长,加载时间慢等缺点。 因此,现有的SciDB系统的分配方法不能满足科学数据的分析存储需求,难W适应进行系统 调优和优化分析的需要。

【发明内容】

[0006] 本发明的目的在于,提供一种基于阵列模型的数据库系统。本发明通过设立系统 监控子系统和采用科学的分配方法,满足了科学数据的分析存储需求,进而适应了系统调 优和优化分析的进一步需要;还增加了KVM虚拟化技术的应用接口,无需过多人工的干预。
[0007] 本发明的技术方案:一种基于阵列模型的数据库系统,包括数据处理子系统,数据 处理子系统分配任务给数据存储子系统,系统监控子系统对数据存储子系统进行收集监控 数据后,反馈给数据处理子系统,系统监控子系统通过分配方法对数据处理子系统的分配 任务进行调节;
[0008] 数据处理子系统用于数据处理、分析和转换;
[0009] 数据存储子系统用于支持数据到阵列数据库引擎的无缝存储;
[0010] 系统监控子系统用于实时监控所有数据库节点,并且获得系统监控日志。
[0011] 前述的基于阵列模型的数据库系统中,所述系统监控子系统,包括监控客户端,监 控客户端收集监控数据传送到监控代理端,监控代理端再将监控数据反馈到监控服务端, 监控服务端按分配方法对数据处理子系统的分配任务进行调节。
[0012] 前述的基于阵列模型的数据库系统中,所述的数据处理子系统,包括协调者引擎, 协调者引擎内设有第一执行引擎,协调者引擎负责将用户要加载进本数据库系统的数据加 载到各数据库节点的本地存储中,并在元数据库中更新各数据库节点的本地数据的统计信 息。
[0013] 前述的基于阵列模型的数据库系统中,所述的数据存储子系统,设有1个W上数据 库节点,每个数据库节点对应安装有监控客户端,数据库节点内还设有第二执行引擎。
[0014] 前述的基于阵列模型的数据库系统中,所述系统监控子系统收集的监控数据,包 括:CPU利用率、内存量、磁盘读写速率、网络带宽利用率、过去t秒内任务的平均等待时间、 任务数量和数据库节点负载,其中,600含t含7200。
[0015] 前述的基于阵列模型的数据库系统中,进行任务分配时,根据系统监控子系统收 集的监控数据按照如下的分配方法分配任务:
[0016] 如果某数据库节点上的CPU利用率超过a%,则不让该数据库节点参与任务T及其 子任务的执行,其中,65%含a%
[0017] 前述的基于阵列模型的数据库系统中,进行任务分配时,根据系统监控子系统收 集的监控数据按照如下的分配方法分配任务:
[0018] 如果任务T及其子任务在某数据库节点上运行时所需要的内存量,超过该数据库 节点的可用内存量的b%,则不让该数据库节点参与任务T及其子任务的执行,其中60% < b% <1;
[0019] 前述的基于阵列模型的数据库系统中,进行任务分配时,根据系统监控子系统收 集的监控数据按照如下的分配方法分配任务:
[0020] 如果某数据库节点上的磁盘读写速率超过了最高速度的C%,则不让该数据库节 点参与任务T及其子任务的执行,其中60%含C% < 1;
[0021] 前述的基于阵列模型的数据库系统中,进行任务分配时,根据系统监控子系统收 集的监控数据按照如下的分配方法分配任务:
[0022] 如果某数据库节点上的网络带宽利用率超过了最高带宽的d%,则不让该数据库 节点参与任务T及其子任务的执行,其中60%含d% < 1;
[0023] 前述的基于阵列模型的数据库系统中,进行任务分配时,根据系统监控子系统收 集的监控数据按照如下的分配方法分配任务:
[0024] 如果某数据库节点上当前正在等待执行的任务队列中的任务,其预估的平均等待 时间超过了ti秒,则不让该数据库节点参与任务T及其子任务的执行,其中,300含ti含7200;
[0025] 前述的基于阵列模型的数据库系统中,进行任务分配时,根据系统监控子系统收 集的监控数据按照如下的分配方法分配任务:
[0026] 如果某数据库节点上的等待执行的任务数量超过了 m,则不让该数据库节点参与 任务T及其子任务的执行,其中10 <m。
[0027] 前述的基于阵列模型的数据库系统中,进行任务分配时,根据系统监控子系统收 集的监控数据按照如下的分配方法分配任务:
[0028] 如果某数据库节点在过去的时间t2秒内,其CPU平均利用率超过了e%,且CPU当前 的利用率已经超过了 rXe%,则不让该数据库节点参与任务T及其子任务的执行,其中,0.6 <r< l,300<t2< 7200,65% <e% < 1;
[0029] 前述的基于阵列模型的数据库系统中,进行任务分配时,根据系统监控子系统收 集的监控数据按照如下的分配方法分配任务:
[0030] 如果某数据库节点在过去的时间t3秒内,其内存平均利用率超过了f %,且内存当 前的使用率已经超过了rXf %,而任务T及其子任务在该数据库节点上运行时所需要的内 存量超过该数据库节点的可用内存量的g%,则不让该数据库节点参与任务T及其子任务的 执行,其中,〇.6<r< l,g<f,300<t3< 7200,60% <f% < 1,75% <邑% < 1;
[0031] 前述的基于阵列模型的数据库系统中,进行任务分配时,根据系统监控子系统收 集的监控数据按照如下的分配方法分配任务:
[0032] 如果某数据库节点在过去的时间t4秒内,其磁盘读写速率超过了最高速度的h%, 且当前的磁盘读写速率已经超过了最高速度的rXh%,则不让该数据库节点参与任务T及 其子任务的执行,其中,〇.6<r< l,300<t4< 7200,60% <h% < 1;
[0033] 前述的基于阵列模型的数据库系统中,进行任务分配时,根据系统监控子系统收 集的监控数据按照如下的分配方法分配任务:
[0034] 如果某数据库节点在过去的时间t5秒内,其网络带宽利用率超过了最高带宽的 k%,且当前的网络带宽利用率已经超过了最高带宽的rXk%,则不让该数据库节点参与任 务T及其子任务的执行,其中,0.6<r< 1,300< t5< 7200,60% <k% < 1;
[0035] 前述的基于阵列模型的数据库系统中,进行任务分配时,根据系统监控子系统收 集的监控数据按照如下的分配方法分配任务:
[0036] 如果某数据库节点在过去的时间t6秒内,其任务队列
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1