一种数据存储方法及装置制造方法

文档序号:6640551阅读:154来源:国知局
一种数据存储方法及装置制造方法
【专利摘要】本发明实施例公开了一种数据存储方法及装置,一种数据存储方法,包括:从存储有目标数据的各数据存储节点中,获取预设的第一时长内所述目标数据的访问总量;根据获取到的访问总量和本地预先记录的、在获取所述目标数据的访问总量前的M个预设的第一时长内所述目标数据的M个访问总量,获得在获取所述目标数据的访问总量后的预设的第二时长内,目标数据的访问总量变化趋势;根据获得结果,向数据存储节点发送相应的控制指令。本发明可以根据目标数据的访问总量,对目标数据的存储位置进行实时调整,比如将访问总量较大的目标数据转移到高性能存储盘中,将访问总量较小的目标数据转移到低性能存储盘中,充分利用数据存储节点中不同类型的存储盘。
【专利说明】一种数据存储方法及装置

【技术领域】
[0001] 本发明涉及分布式存储【技术领域】,特别涉及一种数据存储方法及装置。

【背景技术】
[0002] 分布式存储系统可以将数据分散存储到多台独立设备上,如图1所示该系统通常 由至少一个控制节点和多个数据存储节点构成,比如分布式存储系统HDFS中,包括至少一 个控制节点NameNode,多个数据存储节点DataNode,其中,控制节点用于为分布式存储系 统中的数据分配数据存储节点,数据存储节点用于存储数据。
[0003] 随着硬件的升级,数据存储节点中存储盘的类型不再局限于一种,可以为多种,t匕 如数据存储节点可以同时配置有随机读性能不同的存储盘,存储盘类型多样化的数据存储 节点与控制节点一起构成了分布式异构存储系统。
[0004] 为了满足分布式异构存储系统对数据冗余度的要求,该系统中的控制节点会对一 份数据制作多个副本,并为每个副本分配数据存储节点,数据存储节点对副本进行存储。现 有技术中,数据存储节点将副本存储到本地后,便不再对该副本的存储位置做出调整,不能 够充分利用该数据存储节点中不同类型的存储盘。


【发明内容】

[0005] 为了解决上述问题,本发明实施例公开了一种数据存储方法及装置,具体技术方 案如下:
[0006] -种数据存储方法,应用于分布式异构存储系统中的控制节点,所述系统包括:至 少一个控制节点和多个数据存储节点,所述方法包括:
[0007] 从存储有目标数据的各数据存储节点中,获取预设的第一时长内所述目标数据的 访问总量,所述目标数据的访问总量为:目标数据在所述各数据存储节点中被访问次数之 和;
[0008] 根据获取到的访问总量和本地预先记录的、在获取所述目标数据的访问总量前的 M个预设的第一时长内所述目标数据的M个访问总量,获得在获取所述目标数据的访问总 量后的预设的第二时长内,目标数据的访问总量变化趋势,其中,M为预设的第一数量值;
[0009] 在访问总量大于预设的第一阈值、且预设的第二时长内目标数据的访问总量变化 趋势为上升趋势的情况下,向存储有目标数据的数据存储节点发送第一控制指令;
[0010] 在访问总量低于预设的第二阈值、且预设的第二时长内目标数据的访问总量变化 趋势为下降趋势的情况下,向存储有目标数据的数据存储节点发送第二控制指令;
[0011] 其中,所述第一控制指令用于控制数据存储节点将目标数据转移到本地的高性能 存储盘中,所述第二控制指令用于控制数据存储节点将目标数据转移到本地的低性能存储 盘中,所述预设的第二阈值小于所述预设的第一阈值。
[0012] 可选的,所述从存储有目标数据的各数据存储节点中,获取预设的第一时长内所 述目标数据的访问总量,包括:
[0013] 根据预设的时间周期,从存储有目标数据的各数据存储节点中,周期性地获取预 设的第一时长内所述目标数据的访问总量。
[0014] 可选的,所述根据获取到的访问总量和本地预先记录的、在获取所述目标数据的 访问总量前的M个预设的第一时长内所述目标数据的M个访问总量,获得在获取所述目标 数据的访问总量后的预设的第二时长内,目标数据的访问总量变化趋势,包括:
[0015] 使用最小二乘算法,对获取到的访问总量和本地预先记录的、在获取所述目标数 据的访问总量前的M个预设的第一时长内所述目标数据的M个访问总量进行处理,拟合出 一条表达式为y = ax+b的直线;
[0016] 根据系数a的取值,获得在获取所述目标数据的访问总量后的预设的第二时长 内,目标数据的访问总量变化趋势;
[0017] 其中,a>0时,目标数据的访问总量变化趋势为上升趋势,a〈0时,目标数据的访问 总量变化趋势为下降趋势。
[0018] 可选的,所述向存储有目标数据的数据存储节点发送第一控制指令,包括:
[0019] 从存储有目标数据的各数据存储节点中,确定出:在预设的第一时长内被访问次 数最多的目标数据所在的数据存储节点;
[0020] 向所确定的数据存储节点发送第一控制指令。
[0021] 可选的,所述方法还包括:
[0022] 根据所述目标数据的访问总量变化趋势,确定出:在获取所述目标数据的访问总 量后的预设的第二时长内目标数据的访问总量;
[0023] 获取存储有目标数据的各数据存储节点中存储有目标数据的存储盘的随机读性 能的参数值,并对获取到的多个参数值进行求和运算,得到随机读性能的总参数值;
[0024] 对所确定出的访问总量与所述随机读性能的总参数值进行比较,如果所确定出的 访问总量大于所述随机读性能的总参数值,则向在预设的第一时长内被访问次数次多的目 标数据所在的数据存储节点发送第一控制指令。
[0025] 可选的,所述向存储有目标数据的数据存储节点发送第二控制指令,包括:
[0026] 从存储有目标数据的各数据存储节点中,确定出:在预设的第一时长内被访问次 数最少的目标数据所在的数据存储节点;
[0027] 向所确定的数据存储节点发送第二控制指令。
[0028] 可选的,所述方法还包括:
[0029] 根据所述目标数据的访问总量变化趋势,确定出:在获取所述目标数据的访问总 量后的预设的第二时长内目标数据的访问总量;
[0030] 获取存储有目标数据的各数据存储节点中存储有目标数据的存储盘的随机读性 能的参数值,并对获取到的多个参数值进行求和运算,得到随机读性能的总参数值;
[0031] 对所确定出的访问总量与所述随机读性能的总参数值进行比较,如果所确定出的 访问总量小于所述随机读性能的总参数值,则向在预设的第一时长内被访问次数次少的目 标数据所在的数据存储节点发送第二控制指令。
[0032] -种数据存储装置,应用于分布式异构存储系统中的控制节点,所述系统包括:至 少一个控制节点和多个数据存储节点,所述装置包括:
[0033] 访问总量获取模块,用于从存储有目标数据的各数据存储节点中,获取预设的第 一时长内所述目标数据的访问总量,所述目标数据的访问总量为:目标数据在所述各数据 存储节点中被访问次数之和;
[0034] 第一变化趋势生成模块,用于根据所述访问总量获取模块获取到的访问总量和本 地预先记录的、在获取所述目标数据的访问总量前的M个预设的第一时长内所述目标数据 的M个访问总量,获得在获取所述目标数据的访问总量后的预设的第二时长内,目标数据 的访问总量变化趋势,其中,M为预设的第一数量值;
[0035] 第一控制指令发送模块,用于在所述访问总量获取模块获取到的访问总量大于预 设的第一阈值、且预设的第二时长内目标数据的访问总量变化趋势为上升趋势的情况下, 向存储有目标数据的数据存储节点发送第一控制指令;
[0036] 第二控制指令发送模块,用于在所述访问总量获取模块获取到的访问总量小于预 设的第二阈值、且预设的第二时长内目标数据的访问总量变化趋势为下降趋势的情况下, 向存储有目标数据的数据存储节点发送第二控制指令;
[0037] 其中,所述第一控制指令用于控制数据存储节点将目标数据转移到本地的高性能 存储盘中,所述第二控制指令用于控制数据存储节点将目标数据转移到本地的低性能存储 盘中,所述预设的第二阈值小于所述预设的第一阈值。
[0038] 可选的,所述访问总量获取模块,具体用于:
[0039] 根据预设的时间周期,从存储有目标数据的各数据存储节点中,周期性地获取预 设的第一时长内所述目标数据的访问总量;
[0040] 其中,所述目标数据的访问总量为:目标数据在所述各数据存储节点中被访问次 数之和。
[0041] 可选的,所述第一变化趋势生成模块,具体用于:
[0042] 使用最小二乘算法,对所述访问总量获取模块获取到的访问总量和本地预先记录 的、在获取所述目标数据的访问总量前的M个预设的第一时长内所述目标数据的M个访问 总量进行处理,拟合出一条表达式为y = ax+b的直线;
[0043] 根据系数a的取值,获得在获取所述目标数据的访问总量后的预设的第二时长 内,目标数据的访问总量变化趋势;
[0044] 其中,a>0时,目标数据的访问总量变化趋势为上升趋势,a〈0时,目标数据的访问 总量变化趋势为下降趋势。
[0045] 可选的,所述第一控制指令发送模块,包括:
[0046] 第一确定子模块,用于在访问总量大于预设的第一阈值、且预设的第二时长内目 标数据的访问总量变化趋势为上升趋势的情况下,从存储有目标数据的各数据存储节点 中,确定出:在预设的第一时长内被访问次数最多的目标数据所在的数据存储节点;
[0047] 第一发送子模块,用于向所述第一确定子模块确定出的数据存储节点发送第一控 制指令;其中,所述第一控制指令用于控制数据存储节点将目标数据转移到本地的高性能 存储盘中。
[0048] 可选的,所述装置还包括:
[0049] 第一访问总量确定模块,用于根据所述第一变化趋势生成模块生成的目标数据的 访问总量变化趋势,确定出:在获取所述目标数据的访问总量后的预设的第二时长内目标 数据的访问总量;
[0050] 第一总参数值获取模块,用于获取存储有目标数据的各数据存储节点中存储有目 标数据的存储盘的随机读性能的参数值,并对获取到的多个参数值进行求和运算,得到随 机读性能的总参数值;
[0051 ] 第一比较模块,用于对所述第一访问总量确定模块确定出的访问总量与所述第一 总参数值获取模块获取到的随机读性能的总参数值进行比较,如果所确定出的访问总量大 于所述随机读性能的总参数值,则向在预设的第一时长内被访问次数次多的目标数据所在 的数据存储节点发送第一控制指令。
[0052] 可选的,所述第二控制指令发送模块,包括:
[0053] 第二确定子模块,用于在访问总量低于预设的第二阈值、且预设的第二时长内目 标数据的访问总量变化趋势为下降趋势的情况下,从存储有目标数据的各数据存储节点 中,确定出:在预设的第一时长内被访问次数最少的目标数据所在的数据存储节点;
[0054] 第二发送子模块,用于向所述第二确定子模块确定出的数据存储节点发送第二控 制指令;其中,所述第二控制指令用于控制数据存储节点将目标数据转移到本地的低性能 存储盘中,所述预设的第二阈值小于所述预设的第一阈值。
[0055] 可选的,所述装置还包括:
[0056] 第二访问总量确定模块,用于根据所述第一变化趋势生成模块生成的目标数据的 访问总量变化趋势,确定出:在获取所述目标数据的访问总量后的预设的第二时长内目标 数据的访问总量;
[0057] 第二总参数值获取模块,用于获取存储有目标数据的各数据存储节点中存储有目 标数据的存储盘的随机读性能的参数值,并对获取到的多个参数值进行求和运算,得到随 机读性能的总参数值;
[0058] 第二比较模块,用于对所述第二访问总量确定模块确定出的访问总量与所述第二 总参数值获取模块获取到的随机读性能的总参数值进行比较,如果所确定出的访问总量小 于所述随机读性能的总参数值,则向在预设的第一时长内被访问次数次少的目标数据所在 的数据存储节点发送第二控制指令。
[0059] 应用上述技术方案,与现有技术相比,本发明可以根据目标数据的访问总量,对目 标数据的存储位置进行实时调整,具体的,将访问总量较大的目标数据转移到高性能存储 盘中,将访问总量较小的目标数据转移到低性能存储盘中,充分利用数据存储节点中不同 类型的存储盘。

【专利附图】

【附图说明】
[0060] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0061] 图1为本发明提供的分布式存储系统的结构示意图;
[0062] 图2为本发明实施例提供的一种数据存储方法的流程图;
[0063] 图3为本发明实施例提供的另一种数据存储方法的流程图;
[0064] 图4为本发明实施例提供的一种数据存储装置的结构示意图;
[0065] 图5为本发明实施例提供的另一种数据存储装置的结构示意图。

【具体实施方式】
[0066] 为了使本领域技术人员更好地理解本发明中的技术方案,下面将结合本发明实施 例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例 仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通 技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范 围。
[0067] 分布式存储系统是一种将数据分散存储到多台独立设备上的系统,它通常由至少 一个控制节点和多个数据存储节点构成,控制节点的功能为:管理分布式存储系统中的元 数据(包括目录树和数据存储位置)和数据存储节点的状态,数据存储节点的功能为:对实 际的数据进行存储。为了保证系统中数据的可靠性,通常会对一份数据制作多个副本,将多 个副本分别存储到多个数据存储节点上。在实际应用中,本发明实施例中的分布式存储系 统可以为 GoogleGFS、HDFS、MooseFS 等。
[0068]由于分布式异构存储系统中数据存储节点自带的存储盘具有不同的性能,存储在 分布式异构系统中的数据也有"冷"(被读取次数较多)、"热"(被读取次数较少)之分,因 此,如果数据在数据存储节点中的存储位置始终保持不变,比如冷数据一直存储在随机读 性能较高的存储盘中,或热数据一直存储在随机读性能较低的存储盘中,就会造成存储盘 资源的浪费。为了解决上述问题,本发明实施例提供了一种数据存储方法及装置。
[0069] 下面首先对本发明实施例提供的一种数据存储方法进行介绍。
[0070] 如图2所示,本发明实施例提供的一种数据存储方法,应用于分布式异构存储系 统中的控制节点,所述系统包括:至少一个控制节点和多个数据存储节点,所述方法可以包 括:
[0071] S101,从存储有目标数据的各数据存储节点中,获取预设的第一时长内所述目标 数据的访问总量;其中,所述目标数据的访问总量为:目标数据在所述各数据存储节点中 被访问次数之和,存储有目标数据的每一台数据存储节点中存储有一份完整的目标数据。
[0072] 可以理解的是,为了满足分布式异构存储系统对数据冗余度的要求,比如要求每 一份数据必须存在3个以上的副本,该系统中的控制节点会对目标数据制作多个副本,即 多个目标数据副本;通常情况下,每个目标数据副本被存储至一台数据存储节点中,相应 的,多个目标数据副本被存储至多个数据存储节点中。由于目标数据副本的内容与目标数 据完全相同,为了便于叙述,在对目标数据副本进行描述时,均以目标数据代替描述。
[0073] 示例性的,分布式异构存储系统中的第一数据存储节点、第二数据存储节点、第三 数据存储节点,第四数据存储节点中均存储有一份完整的目标数据,本发明实施例可以分 别获取1小时内目标数据在第一、二、三、四数据存储节点中的第一、二、三、四被访问次数, 对第一访问次数、第二访问次数、第三访问次数、第四访问次数进行求和运算,就可以得到 目标数据的访问总量。
[0074] 需要说明的是,本发明实施例中的预设的第一时长的取值,可以依据经验值取为1 小时;当然,也可以根据实际需求,对其进行赋值,本发明实施例对此不作限定。
[0075] 可选的,在本发明的一个实施方式中,上述S101,可以包括:
[0076] 根据预设的时间周期,从存储有目标数据的各数据存储节点中,周期性地获取预 设的第一时长内所述目标数据的访问总量。
[0077] 或用户触发执行从存储有目标数据的各数据存储节点中,获取预设的第一时长内 所述目标数据的访问总量。本发明实施例对此不作限定。
[0078] S102,根据获取到的访问总量和本地预先记录的、在获取所述目标数据的访问总 量前的M个预设的第一时长内所述目标数据的M个访问总量,获得在获取所述目标数据的 访问总量后的预设的第二时长内,目标数据的访问总量变化趋势;其中,M为预设的第一数 量值。
[0079] 示例性的,假设本次获取到2014年12月9日上午12:00-13:00这1小时内的目 标数据的访问总量,M为3 ;
[0080] 此时,"本地预先记录的、在获取所述目标数据的访问总量前的M个预设的第一时 长内所述目标数据的M个访问总量"分别为:2014年12月9日上午11:00-12:00这1小时 内的目标数据的访问总量、2014年12月9日上午10:00-11:00这1小时内的目标数据的访 问总量、2014年12月9日上午9:00-10:00这1小时内的目标数据的访问总量。
[0081] 需要说明的是,本发明实施例中的M的取值,可以依据经验值取为3;当然,也可以 根据实际需求,对其进行赋值,本发明实施例对此不作限定。此外,本发明实施例中的预设 的第二时长的取值可以与本发明实施例中的预设的第一时长的取值相同,当然,也可以根 据实际需求,对其进行赋值,本发明实施例对此不作限定。
[0082] 本发明实施例中的目标数据的访问总量变化趋势可以为呈直线或曲线形式的单 调上升趋势、单调下降趋势、震荡趋势等等,本发明实施例对此不作限定。
[0083] 具体的,在本发明的一个实施例中,上述S103,可以包括:
[0084] 使用最小二乘算法,对获取到的访问总量和本地预先记录的、在获取所述目标数 据的访问总量前的M个预设的第一时长内所述目标数据的M个访问总量进行处理,拟合出 一条表达式为y = ax+b的直线;
[0085] 其中,最小二乘法计算公式为&=6---又*?)/{Χ2-(^)2}、b = F-a*Z,(X,Y) 为函数表达式中(x,y)的取值。可以理解的是,选取的坐标点的数量越多,拟合出的直线与 各坐标点越契合。
[0086] 根据系数a的取值,获得在获取所述目标数据的访问总量后的预设的第二时长 内,目标数据的访问总量变化趋势;其中,a>0时,目标数据的访问总量变化趋势为上升趋 势,a〈0时,目标数据的访问总量变化趋势为下降趋势。
[0087] 需要说明的是,其他可以拟合出表达式为y = ax+b的直线的方法,比如线性规划 法等等,都落在本发明实施例的保护范围中。
[0088] 可选的,可以首先拟合出整个时间轴范围内的被访问次数的变化趋势,然后再截 取出:在获取所述目标数据的访问总量后的预设的第二时长内,目标数据的访问总量变化 趋势;或仅仅拟合出:在获取所述目标数据的访问总量后的预设的第二时长内,目标数据 的访问总量变化趋势。本发明实施例对此不作限定。
[0089] S103,在访问总量大于预设的第一阈值、且预设的第二时长内目标数据的访问总 量变化趋势为上升趋势的情况下,向存储有目标数据的数据存储节点发送第一控制指令; 其中,所述第一控制指令用于控制数据存储节点将目标数据转移到本地的高性能存储盘 中。
[0090] 可以理解的是,在未来一段时间内如果数据的访问总量呈现递增趋势,说明该数 据很可能属于热数据,如果将该数据存储至数据存储节点的高性能存储盘中,无疑会提高 该数据的读取效率。
[0091] 可选的,可以向存储有目标数据的各个数据存储节点发送第一控制指令。
[0092] 考虑到数据存储节点中转移数据需要消耗一定的磁盘1/0,可以只需调整少数数 据存储节点中的目标数据的存储位置,在本发明的一个实施方式中,所述向存储有目标数 据的数据存储节点发送第一控制指令,可以包括:
[0093] 从存储有目标数据的各数据存储节点中,确定出:在预设的第一时长内被访问次 数最多的目标数据所在的数据存储节点;
[0094] 具体的,可以使用排序法,按照一个数据存储节点本地存储的目标数据在预设的 第一时长内被访问次数,对存储有目标数据的各数据存储节点进行排序,从而从存储有目 标数据的各数据存储节点中,确定出:在预设的第一时长内被访问次数最多的目标数据所 在的数据存储节点。比如,数据存储节点1、数据存储节点2、数据存储节点3和数据存储节 点4中均存储有一份完整的目标数据,上述4个节点中的目标数据在预设的第一时长内的 被访问次数分别为:20、30、40、50,可以按照被访问次数进行排序,得出数据存储节点4中 的目标数据被访问次数最多,数据存储节点3中的目标数据被访问次数次多。
[0095] 或可以使用比较法,按照一个数据存储节点本地存储的目标数据在预设的第一时 长内被访问次数,对存储有目标数据的各数据存储节点进行排序,从而从存储有目标数据 的各数据存储节点中,确定出:在预设的第一时长内被访问次数最多的目标数据所在的数 据存储节点。本发明实施例对此不做限定。
[0096] 在确定出:在预设的第一时长内被访问次数最多的目标数据所在的数据存储节点 之后,向所确定的数据存储节点发送第一控制指令。
[0097] 具体的,可以仅向目标数据被访问次数最多的数据存储节点发送第一控制指令, 以使该节点将本地的目标数据转移到高性能存储盘上,也可以同时向目标数据被访问次数 最多和次多的数据存储节点发送第一控制指令;也可以先向目标数据被访问次数最多的数 据存储节点发送第一控制指令,再向目标数据被访问次数次多的数据存储节点发送第一控 制指令,本发明实施例对此不做限定。
[0098] S104,在访问总量低于预设的第二阈值、且预设的第二时长内目标数据的访问总 量变化趋势为下降趋势的情况下,向存储有目标数据的数据存储节点发送第二控制指令; 其中,,所述第二控制指令用于控制数据存储节点将目标数据转移到本地的低性能存储盘 中,所述预设的第二阈值小于所述预设的第一阈值。
[0099] 可以理解的是,在未来一段时间内如果数据的访问总量呈现递减趋势,说明该数 据很可能属于冷数据,如果将该数据存储至数据存储节点的低性能存储盘中,空出高性能 存储盘来存储热数据,无疑会提高该数据存储节点中存储盘的利用效率。
[0100] 考虑到数据存储节点中转移数据需要消耗一定的磁盘1/0,可以只需调整少数数 据存储节点中的目标数据的存储位置,在本发明的一个实施方式中,所述向存储有目标数 据的数据存储节点发送第二控制指令,可以包括:
[0101] 从存储有目标数据的各数据存储节点中,确定出:在预设的第一时长内被访问次 数最少的目标数据所在的数据存储节点;
[0102] 具体的,可以使用排序法,按照一个数据存储节点本地存储的目标数据在预设的 第一时长内被访问次数,对存储有目标数据的各数据存储节点进行排序,从而从存储有目 标数据的各数据存储节点中,确定出:在预设的第一时长内被访问次数最少的目标数据所 在的数据存储节点。比如,数据存储节点1、数据存储节点2、数据存储节点3和数据存储节 点4中均存储有一份完整的目标数据,上述4个节点中的目标数据在预设的第一时长内的 被访问次数分别为:20、30、40、50,可以按照被访问次数进行排序,得出数据存储节点1中 的目标数据被访问次数最少,数据存储节点2中的目标数据被访问次数次少。
[0103] 或可以使用比较法,按照一个数据存储节点本地存储的目标数据在预设的第一时 长内被访问次数,对存储有目标数据的各数据存储节点进行排序,从而从存储有目标数据 的各数据存储节点中,确定出:在预设的第一时长内被访问次数最少的目标数据所在的数 据存储节点。本发明实施例对此不做限定。
[0104] 在确定出:在预设的第一时长内被访问次数最少的目标数据所在的数据存储节点 之后,向所确定的数据存储节点发送第二控制指令。
[0105] 具体的,可以仅向目标数据被访问次数最少的数据存储节点发送第二控制指令, 以使该节点将本地的目标数据转移到低性能存储盘上,也可以同时向目标数据被访问次数 最少和次少的数据存储节点发送第二控制指令;也可以先向目标数据被访问次数最少的数 据存储节点发送第二控制指令,再向目标数据被访问次数次少的数据存储节点发送第二控 制指令,本发明实施例对此不做限定。
[0106] 由此可见,本发明提供的数据存储方法可以从存储有目标数据的各数据存储节点 中,获取预设的第一时长内所述目标数据的访问总量,并根据获取到的访问总量和本地预 先记录的、在获取所述目标数据的访问总量前的M个预设的第一时长内所述目标数据的M 个访问总量,获得在获取所述目标数据的访问总量后的预设的第二时长内,目标数据的访 问总量变化趋势,如果访问总量大于预设的第一阈值、且预设的第二时长内目标数据的访 问总量变化趋势为上升趋势,向存储有目标数据的数据存储节点发送第一控制指令;如果 访问总量低于预设的第二阈值、且预设的第二时长内目标数据的访问总量变化趋势为下降 趋势,向存储有目标数据的数据存储节点发送第二控制指令。
[0107] 与现有技术相比,本发明可以根据目标数据的访问总量,对目标数据的存储位置 进行实时调整,比如将访问总量较大的目标数据转移到高性能存储盘中,将访问总量较小 的目标数据转移到低性能存储盘中,充分利用数据存储节点中不同类型的存储盘。
[0108] 可选的,在本发明的一个实施例中,如图3所示,由于图3中的S201、S202、S203和 S204分别与图2所示方法中的S101、S102、S103、S104基本相同,本发明实施例在此不再赘 述。
[0109] 为了使描述更为清楚,下面首先对S203所在的分支进行介绍。
[0110] S205,根据所述目标数据的访问总量变化趋势,确定出:在获取所述目标数据的访 问总量后的预设的第二时长内目标数据的访问总量。
[0111] S206,获取存储有目标数据的各数据存储节点中存储有目标数据的存储盘的随机 读性能的参数值,并对获取到的多个参数值进行求和运算,得到随机读性能的总参数值。
[0112] S207,对所确定出的访问总量与所述随机读性能的总参数值进行比较,如果所确 定出的访问总量大于所述随机读性能的总参数值,则向在预设的第一时长内被访问次数次 多的目标数据所在的数据存储节点发送第一控制指令。
[0113] 可以理解的是,仅控制一个数据存储节点将本地存储的目标数据转移到高性能存 储盘,可能仍不能满足数据读取需求;此时,可以进一步控制另外一个数据存储节点将本地 存储的目标数据转移到高性能存储盘,如果本次调整之后,仍不能满足数据读取需求,可以 再控制其他的数据存储节点将本地存储的目标数据转移到高性能存储盘,直至满足数据读 取需求为止。
[0114] 在对S203所在的分支进行介绍完之后,对S204所在的分支进行介绍。
[0115] S208,根据所述目标数据的访问总量变化趋势,确定出:在获取所述目标数据的访 问总量后的预设的第二时长内目标数据的访问总量。
[0116] S209,获取存储有目标数据的各数据存储节点中存储有目标数据的存储盘的随机 读性能的参数值,并对获取到的多个参数值进行求和运算,得到随机读性能的总参数值。
[0117] S210,对所确定出的访问总量与所述随机读性能的总参数值进行比较,如果所确 定出的访问总量小于所述随机读性能的总参数值,则向在预设的第一时长内被访问次数次 少的目标数据所在的数据存储节点发送第二控制指令。
[0118] 可以理解的是,仅控制一个数据存储节点将本地存储的目标数据转移到低性能存 储盘,可能仍不能满足数据读取需求;此时,可以进一步控制另外一个数据存储节点将本地 存储的目标数据转移到低性能存储盘,如果本次调整之后,仍不能满足数据读取需求,可以 再控制其他的数据存储节点将本地存储的目标数据转移到低性能存储盘,直至满足数据读 取需求为止。
[0119] 相应于上面的方法实施例,本发明实施例还提供了 一种数据存储装置。
[0120] 如图4所示,本发明实施例提供的一种数据存储装置,应用于分布式异构存储系 统中的控制节点,所述系统包括:至少一个控制节点和多个数据存储节点,所述装置可以包 括:
[0121] 访问总量获取模块401,用于从存储有目标数据的各数据存储节点中,获取预设的 第一时长内所述目标数据的访问总量,所述目标数据的访问总量为:目标数据在所述各数 据存储节点中被访问次数之和;
[0122] 第一变化趋势生成模块402,用于根据所述访问总量获取模块401获取到的访问 总量和本地预先记录的、在获取所述目标数据的访问总量前的M个预设的第一时长内所述 目标数据的M个访问总量,获得在获取所述目标数据的访问总量后的预设的第二时长内, 目标数据的访问总量变化趋势,其中,M为预设的第一数量值;
[0123] 第一控制指令发送模块403,用于在所述访问总量获取模块401获取到的访问总 量大于预设的第一阈值、且预设的第二时长内目标数据的访问总量变化趋势为上升趋势的 情况下,向存储有目标数据的数据存储节点发送第一控制指令;其中,所述第一控制指令用 于控制数据存储节点将目标数据转移到本地的高性能存储盘中;
[0124] 第二控制指令发送模块404,用于在所述访问总量获取模块401获取到的访问总 量小于预设的第二阈值、且预设的第二时长内目标数据的访问总量变化趋势为下降趋势的 情况下,向存储有目标数据的数据存储节点发送第二控制指令;其中,所述第二控制指令用 于控制数据存储节点将目标数据转移到本地的低性能存储盘中,所述预设的第二阈值小于 所述预设的第一阈值。
[0125] 由此可见,本发明提供的数据存储装置可以从存储有目标数据的各数据存储节点 中,获取预设的第一时长内所述目标数据的访问总量,并根据获取到的访问总量和本地预 先记录的、在获取所述目标数据的访问总量前的M个预设的第一时长内所述目标数据的M 个访问总量,获得在获取所述目标数据的访问总量后的预设的第二时长内,目标数据的访 问总量变化趋势,如果访问总量大于预设的第一阈值、且预设的第二时长内目标数据的访 问总量变化趋势为上升趋势,向存储有目标数据的数据存储节点发送第一控制指令;如果 访问总量低于预设的第二阈值、且预设的第二时长内目标数据的访问总量变化趋势为下降 趋势,向存储有目标数据的数据存储节点发送第二控制指令。
[0126] 与现有技术相比,本发明可以根据目标数据的访问总量,对目标数据的存储位置 进行实时调整,比如将访问总量较大的目标数据转移到高性能存储盘中,将访问总量较小 的目标数据转移到低性能存储盘中,充分利用数据存储节点中不同类型的存储盘。
[0127] 可选的,在本发明的另一个实施例中,所述访问总量获取模块401,具体可以用 于:
[0128] 根据预设的时间周期,从存储有目标数据的各数据存储节点中,周期性地获取预 设的第一时长内所述目标数据的访问总量;其中,所述目标数据的访问总量为:目标数据 在所述各数据存储节点中被访问次数之和。
[0129] 可选的,在本发明的另一个实施例中,所述第一变化趋势生成模块402,具体可以 用于:
[0130] 使用最小二乘算法,对所述访问总量获取模块401获取到的访问总量和本地预先 记录的、在获取所述目标数据的访问总量前的M个预设的第一时长内所述目标数据的M个 访问总量进行处理,拟合出一条表达式为y = ax+b的直线;
[0131] 根据系数a的取值,获得在获取所述目标数据的访问总量后的预设的第二时长 内,目标数据的访问总量变化趋势;
[0132] 其中,a>0时,目标数据的访问总量变化趋势为上升趋势,a〈0时,目标数据的访问 总量变化趋势为下降趋势。
[0133] 可选的,在本发明的另一个实施例中,如图5所示,本发明实施例提供的数据存储 装置,可以包括:
[0134] 访问总量获取模块501,用于从存储有目标数据的各数据存储节点中,获取预设的 第一时长内所述目标数据的访问总量,所述目标数据的访问总量为:目标数据在所述各数 据存储节点中被访问次数之和;
[0135] 第一变化趋势生成模块502,用于根据所述访问总量获取模块501获取到的访问 总量和本地预先记录的、在获取所述目标数据的访问总量前的M个预设的第一时长内所述 目标数据的M个访问总量,获得在获取所述目标数据的访问总量后的预设的第二时长内, 目标数据的访问总量变化趋势,其中,M为预设的第一数量值;
[0136] 第一控制指令发送模块503,包括:第一确定子模块,用于在访问总量大于预设的 第一阈值、且预设的第二时长内目标数据的访问总量变化趋势为上升趋势的情况下,从存 储有目标数据的各数据存储节点中,确定出:在预设的第一时长内被访问次数最多的目标 数据所在的数据存储节点;
[0137] 第一发送子模块,用于向所述第一确定子模块确定出的数据存储节点发送第一控 制指令;其中,所述第一控制指令用于控制数据存储节点将目标数据转移到本地的高性能 存储盘中。
[0138] 第二控制指令发送模块504,包括:第二确定子模块,用于在访问总量低于预设的 第二阈值、且预设的第二时长内目标数据的访问总量变化趋势为下降趋势的情况下,从存 储有目标数据的各数据存储节点中,确定出:在预设的第一时长内被访问次数最少的目标 数据所在的数据存储节点;
[0139] 第二发送子模块,用于向所述第二确定子模块确定出的数据存储节点发送第二控 制指令;其中,所述第二控制指令用于控制数据存储节点将目标数据转移到本地的低性能 存储盘中,所述预设的第二阈值小于所述预设的第一阈值。
[0140] 第一访问总量确定模块505,用于根据所述第一变化趋势生成模块502生成的目 标数据的访问总量变化趋势,确定出:在获取所述目标数据的访问总量后的预设的第二时 长内目标数据的访问总量;
[0141] 第一总参数值获取模块506,用于获取存储有目标数据的各数据存储节点中存储 有目标数据的存储盘的随机读性能的参数值,并对获取到的多个参数值进行求和运算,得 到随机读性能的总参数值;
[0142] 第一比较模块507,用于对所述第一访问总量确定模块505确定出的访问总量与 所述第一总参数值获取模块506获取到的随机读性能的总参数值进行比较,如果所确定出 的访问总量大于所述随机读性能的总参数值,则向在预设的第一时长内被访问次数次多的 目标数据所在的数据存储节点发送第一控制指令。
[0143] 第二访问总量确定模块508,用于根据所述第一变化趋势生成模块502生成的目 标数据的访问总量变化趋势,确定出:在获取所述目标数据的访问总量后的预设的第二时 长内目标数据的访问总量;
[0144] 第二总参数值获取模块509,用于获取存储有目标数据的各数据存储节点中存储 有目标数据的存储盘的随机读性能的参数值,并对获取到的多个参数值进行求和运算,得 到随机读性能的总参数值;
[0145] 第二比较模块510,用于对所述第二访问总量确定模块508确定出的访问总量与 所述第二总参数值获取模块509获取到的随机读性能的总参数值进行比较,如果所确定出 的访问总量小于所述随机读性能的总参数值,则向在预设的第一时长内被访问次数次少的 目标数据所在的数据存储节点发送第二控制指令。
[0146] 对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关 之处参见方法实施例的部分说明即可。
[0147] 为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本 发明时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
[0148] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实 体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存 在任何这种实际的关系或者顺序。而且,术语"包括"、"包含"或者其任何其他变体意在涵 盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要 素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备 所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除 在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0149] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部 分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实 施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例 的部分说明即可。
[0150] 本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中, 这里所称得的存储介质,如:R0M/RAM、磁碟、光盘等。
[0151] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在 本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围 内。
【权利要求】
1. 一种数据存储方法,其特征在于,应用于分布式异构存储系统中的控制节点,所述系 统包括:至少一个控制节点和多个数据存储节点,所述方法包括: 从存储有目标数据的各数据存储节点中,获取预设的第一时长内所述目标数据的访问 总量,所述目标数据的访问总量为:目标数据在所述各数据存储节点中被访问次数之和; 根据获取到的访问总量和本地预先记录的、在获取所述目标数据的访问总量前的M个 预设的第一时长内所述目标数据的M个访问总量,获得在获取所述目标数据的访问总量后 的预设的第二时长内,目标数据的访问总量变化趋势,其中,M为预设的第一数量值; 在访问总量大于预设的第一阔值、且预设的第二时长内目标数据的访问总量变化趋势 为上升趋势的情况下,向存储有目标数据的数据存储节点发送第一控制指令; 在访问总量低于预设的第二阔值、且预设的第二时长内目标数据的访问总量变化趋势 为下降趋势的情况下,向存储有目标数据的数据存储节点发送第二控制指令; 其中,所述第一控制指令用于控制数据存储节点将目标数据转移到本地的高性能存 储盘中,所述第二控制指令用于控制数据存储节点将目标数据转移到本地的低性能存储盘 中,所述预设的第二阔值小于所述预设的第一阔值。
2. 根据权利要求1所述的方法,其特征在于,所述从存储有目标数据的各数据存储节 点中,获取预设的第一时长内所述目标数据的访问总量,包括: 根据预设的时间周期,从存储有目标数据的各数据存储节点中,周期性地获取预设的 第一时长内所述目标数据的访问总量。
3. 根据权利要求1所述的方法,其特征在于,所述根据获取到的访问总量和本地预先 记录的、在获取所述目标数据的访问总量前的M个预设的第一时长内所述目标数据的M个 访问总量,获得在获取所述目标数据的访问总量后的预设的第二时长内,目标数据的访问 总量变化趋势,包括: 使用最小二乘算法,对获取到的访问总量和本地预先记录的、在获取所述目标数据的 访问总量前的M个预设的第一时长内所述目标数据的M个访问总量进行处理,拟合出一条 表达式为y = ax+b的直线; 根据系数a的取值,获得在获取所述目标数据的访问总量后的预设的第二时长内,目 标数据的访问总量变化趋势; 其中,a〉0时,目标数据的访问总量变化趋势为上升趋势,a<0时,目标数据的访问总量 变化趋势为下降趋势。
4. 根据权利要求1所述的方法,其特征在于,所述向存储有目标数据的数据存储节点 发送第一控制指令,包括: 从存储有目标数据的各数据存储节点中,确定出:在预设的第一时长内被访问次数最 多的目标数据所在的数据存储节点; 向所确定的数据存储节点发送第一控制指令。
5. 根据权利要求4所述的方法,其特征在于,所述方法还包括: 根据所述目标数据的访问总量变化趋势,确定出:在获取所述目标数据的访问总量后 的预设的第二时长内目标数据的访问总量; 获取存储有目标数据的各数据存储节点中存储有目标数据的存储盘的随机读性能的 参数值,并对获取到的多个参数值进行求和运算,得到随机读性能的总参数值; 对所确定出的访问总量与所述随机读性能的总参数值进行比较,如果所确定出的访问 总量大于所述随机读性能的总参数值,则向在预设的第一时长内被访问次数次多的目标数 据所在的数据存储节点发送第一控制指令。
6. 根据权利要求1所述的方法,其特征在于,所述向存储有目标数据的数据存储节点 发送第二控制指令,包括: 从存储有目标数据的各数据存储节点中,确定出:在预设的第一时长内被访问次数最 少的目标数据所在的数据存储节点; 向所确定的数据存储节点发送第二控制指令。
7. 根据权利要求6所述的方法,其特征在于,所述方法还包括: 根据所述目标数据的访问总量变化趋势,确定出;在获取所述目标数据的访问总量后 的预设的第二时长内目标数据的访问总量; 获取存储有目标数据的各数据存储节点中存储有目标数据的存储盘的随机读性能的 参数值,并对获取到的多个参数值进行求和运算,得到随机读性能的总参数值; 对所确定出的访问总量与所述随机读性能的总参数值进行比较,如果所确定出的访问 总量小于所述随机读性能的总参数值,则向在预设的第一时长内被访问次数次少的目标数 据所在的数据存储节点发送第二控制指令。
8. -种数据存储装置,其特征在于,应用于分布式异构存储系统中的控制节点,所述系 统包括:至少一个控制节点和多个数据存储节点,所述装置包括: 访问总量获取模块,用于从存储有目标数据的各数据存储节点中,获取预设的第一时 长内所述目标数据的访问总量,所述目标数据的访问总量为:目标数据在所述各数据存储 节点中被访问次数之和; 第一变化趋势生成模块,用于根据所述访问总量获取模块获取到的访问总量和本地预 先记录的、在获取所述目标数据的访问总量前的M个预设的第一时长内所述目标数据的M 个访问总量,获得在获取所述目标数据的访问总量后的预设的第二时长内,目标数据的访 问总量变化趋势,其中,M为预设的第一数量值; 第一控制指令发送模块,用于在所述访问总量获取模块获取到的访问总量大于预设的 第一阔值、且预设的第二时长内目标数据的访问总量变化趋势为上升趋势的情况下,向存 储有目标数据的数据存储节点发送第一控制指令; 第二控制指令发送模块,用于在所述访问总量获取模块获取到的访问总量小于预设的 第二阔值、且预设的第二时长内目标数据的访问总量变化趋势为下降趋势的情况下,向存 储有目标数据的数据存储节点发送第二控制指令; 其中,所述第一控制指令用于控制数据存储节点将目标数据转移到本地的高性能存 储盘中,所述第二控制指令用于控制数据存储节点将目标数据转移到本地的低性能存储盘 中,所述预设的第二阔值小于所述预设的第一阔值。
9. 根据权利要求8所述的装置,其特征在于,所述访问总量获取模块,具体用于: 根据预设的时间周期,从存储有目标数据的各数据存储节点中,周期性地获取预设的 第一时长内所述目标数据的访问总量; 其中,所述目标数据的访问总量为:目标数据在所述各数据存储节点中被访问次数之 和。
10. 根据权利要求8所述的装置,其特征在于,所述第一变化趋势生成模块,具体用于: 使用最小二乘算法,对所述访问总量获取模块获取到的访问总量和本地预先记录的、 在获取所述目标数据的访问总量前的M个预设的第一时长内所述目标数据的M个访问总量 进行处理,拟合出一条表达式为y = ax+b的直线; 根据系数a的取值,获得在获取所述目标数据的访问总量后的预设的第二时长内,目 标数据的访问总量变化趋势; 其中,a〉0时,目标数据的访问总量变化趋势为上升趋势,a<0时,目标数据的访问总量 变化趋势为下降趋势。
11. 根据权利要求8所述的装置,其特征在于,所述第一控制指令发送模块,包括: 第一确定子模块,用于在访问总量大于预设的第一阔值、且预设的第二时长内目标数 据的访问总量变化趋势为上升趋势的情况下,从存储有目标数据的各数据存储节点中,确 定出;在预设的第一时长内被访问次数最多的目标数据所在的数据存储节点; 第一发送子模块,用于向所述第一确定子模块确定出的数据存储节点发送第一控制指 令;其中,所述第一控制指令用于控制数据存储节点将目标数据转移到本地的高性能存储 盘中。
12. 根据权利要求11所述的装置,其特征在于,所述装置还包括: 第一访问总量确定模块,用于根据所述第一变化趋势生成模块生成的目标数据的访问 总量变化趋势,确定出:在获取所述目标数据的访问总量后的预设的第二时长内目标数据 的访问总量; 第一总参数值获取模块,用于获取存储有目标数据的各数据存储节点中存储有目标数 据的存储盘的随机读性能的参数值,并对获取到的多个参数值进行求和运算,得到随机读 性能的总参数值; 第一比较模块,用于对所述第一访问总量确定模块确定出的访问总量与所述第一总参 数值获取模块获取到的随机读性能的总参数值进行比较,如果所确定出的访问总量大于所 述随机读性能的总参数值,则向在预设的第一时长内被访问次数次多的目标数据所在的数 据存储节点发送第一控制指令。
13. 根据权利要求8所述的装置,其特征在于,所述第二控制指令发送模块,包括: 第二确定子模块,用于在访问总量低于预设的第二阔值、且预设的第二时长内目标数 据的访问总量变化趋势为下降趋势的情况下,从存储有目标数据的各数据存储节点中,确 定出;在预设的第一时长内被访问次数最少的目标数据所在的数据存储节点; 第二发送子模块,用于向所述第二确定子模块确定出的数据存储节点发送第二控制指 令;其中,所述第二控制指令用于控制数据存储节点将目标数据转移到本地的低性能存储 盘中,所述预设的第二阔值小于所述预设的第一阔值。
14. 根据权利要求13所述的装置,其特征在于,所述装置还包括: 第二访问总量确定模块,用于根据所述第一变化趋势生成模块生成的目标数据的访问 总量变化趋势,确定出:在获取所述目标数据的访问总量后的预设的第二时长内目标数据 的访问总量; 第二总参数值获取模块,用于获取存储有目标数据的各数据存储节点中存储有目标数 据的存储盘的随机读性能的参数值,并对获取到的多个参数值进行求和运算,得到随机读 性能的总参数值; 第二比较模块,用于对所述第二访问总量确定模块确定出的访问总量与所述第二总参 数值获取模块获取到的随机读性能的总参数值进行比较,如果所确定出的访问总量小于所 述随机读性能的总参数值,则向在预设的第一时长内被访问次数次少的目标数据所在的数 据存储节点发送第二控制指令。
【文档编号】G06F17/30GK104462577SQ201410838360
【公开日】2015年3月25日 申请日期:2014年12月29日 优先权日:2014年12月29日
【发明者】郭磊涛 申请人:北京奇艺世纪科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1