CN105242983B - 一种数据存储方法以及一种数据存储管理服务器 - Google Patents

一种数据存储方法以及一种数据存储管理服务器 Download PDF

Info

Publication number
CN105242983B
CN105242983B CN201410292889.5A CN201410292889A CN105242983B CN 105242983 B CN105242983 B CN 105242983B CN 201410292889 A CN201410292889 A CN 201410292889A CN 105242983 B CN105242983 B CN 105242983B
Authority
CN
China
Prior art keywords
data block
back end
storage number
data
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410292889.5A
Other languages
English (en)
Other versions
CN105242983A (zh
Inventor
曾凡丽
林鹏
林起芊
汪渭春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201410292889.5A priority Critical patent/CN105242983B/zh
Priority to US15/321,221 priority patent/US10001945B2/en
Priority to PCT/CN2014/090212 priority patent/WO2015196686A1/zh
Priority to EP14895667.5A priority patent/EP3163446B1/en
Publication of CN105242983A publication Critical patent/CN105242983A/zh
Application granted granted Critical
Publication of CN105242983B publication Critical patent/CN105242983B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup

Abstract

本发明公开了一种数据存储方法:当接收到针对任一数据块x的存储请求时,确定数据块x的初始存储份数,并按照所述初始存储份数对数据块x进行存储;周期性地进行以下处理:确定数据块x当前的重要等级,并确定所述重要等级对应的存储份数与数据块x当前的存储份数是否相同,如果否,则将数据块x当前的存储份数调整为与所述重要等级对应的存储份数相同;其中,重要等级越高,对应的存储份数越大,重要等级越低,对应的存储份数越小。本发明同时公开了一种数据存储管理服务器。应用本发明所述方案,能够使存储资源得到合理的利用。

Description

一种数据存储方法以及一种数据存储管理服务器
技术领域
本发明涉及数据处理技术,特别涉及一种数据存储方法以及一种数据存储管理服务器。
背景技术
现有技术中,在进行数据存储时,通常会对存储的原数据进行数据备份。
数据备份是指对原数据进行复制或拷贝后单独存储,当原数据由于硬件故障、病毒、人为等因素造成丢失或损坏时,利用备份数据对原数据进行恢复的一种技术。
为了提高数据的可靠性等,通常需要增加备份份数,但是,当需要备份的原数据很多时,如果不区分这些原数据的重要等级,均备份固定份数的话,将会造成存储资源的不合理利用。
比如,所述固定份数为2,那么某一重要等级较高的原数据和另一重要等级较低的原数据均将备份2份,而对于重要等级较高的原数据来说,备份份数会过少,但对于重要等级较低的原数据来说,备份份数又会过多,从而造成了存储资源的不合理利用。
发明内容
有鉴于此,本发明提供了一种数据存储方法以及一种数据存储管理服务器,能够使存储资源得到合理的利用。
为了达到上述目的,本发明的技术方案是这样实现的:
一种数据存储方法,包括:
当接收到针对任一数据块x的存储请求时,确定数据块x的初始存储份数,并按照所述初始存储份数对数据块x进行存储;
周期性地进行以下处理:确定数据块x当前的重要等级,并确定所述重要等级对应的存储份数与数据块x当前的存储份数是否相同,如果否,则将数据块x当前的存储份数调整为与所述重要等级对应的存储份数相同;其中,重要等级越高,对应的存储份数越大,重要等级越低,对应的存储份数越小。
一种数据存储管理服务器,包括:
第一处理模块,用于当接收到用户设备发送来的、针对任一数据块x的存储请求时,确定数据块x的初始存储份数,通知所述用户设备按照所述初始存储份数将数据块x存储到数据节点中,并通知第二处理模块执行自身功能;
所述第二处理模块,用于周期性地进行以下处理:确定数据块x当前的重要等级,并确定所述重要等级对应的存储份数与数据块x当前的存储份数是否相同,如果否,则将数据块x当前的存储份数调整为与所述重要等级对应的存储份数相同;其中,重要等级越高,对应的存储份数越大,重要等级越低,对应的存储份数越小。
可见,采用本发明所述方案,针对任一数据块x,初始状态,可按照确定出的初始存储份数对其进行存储,所存储的各份数据互为备份,并且,可根据数据块x的重要等级变化,自适应地对数据块x的存储份数进行调整,即重要等级变高,则增加存储份数,重要等级变低,则减少存储份数,从而克服了现有技术中存在的问题,进而使得存储资源得到了合理的利用。
附图说明
图1为本发明数据存储方法实施例的流程图。
图2为本发明用户设备、数据存储管理服务器和数据节点之间的连接关系示意图。
图3为本发明数据块x对应的索引信息的示意图。
图4为本发明数据存储管理服务器实施例的组成结构示意图。
具体实施方式
针对现有技术中存在的问题,本发明中提出一种数据存储方案,能够使存储资源得到合理的利用。
图1为本发明数据存储方法实施例的流程图。如图1所示,包括以下步骤11~步骤12。
步骤11:当接收到针对任一数据块x的存储请求时,确定数据块x的初始存储份数,并按照所述初始存储份数对数据块x进行存储。
为便于表述,用数据块x来表示任一待存储的数据块。
步骤12:周期性地进行以下处理:确定数据块x当前的重要等级,并确定所述重要等级对应的存储份数与数据块x当前的存储份数是否相同,如果否,则将数据块x当前的存储份数调整为与所述重要等级对应的存储份数相同;其中,重要等级越高,对应的存储份数越大,重要等级越低,对应的存储份数越小。
本发明所述方案中没有原数据和备份数据之分,对于数据块x来说,如果将其存储3份,那么每份的地位都是平等的。
上述各步骤的执行主体通常为数据存储管理服务器,数据存储管理服务器接收来自用户设备的存储请求,数据块x将被存储到数据节点上,在实际应用中,可将系统中的每一个存储服务器称为一个数据节点。
图2为本发明用户设备、数据存储管理服务器和数据节点之间的连接关系示意图,如图2所示,数据节点的个数通常为多个,用户设备的个数通常也为多个,为简化附图,图2中只表示出了一个用户设备。
以下结合上述具体设备,对本发明所述方案的具体实现进行详细说明。
1)初始存储
数据存储管理服务器接收到用户设备发送来的、针对数据块x的存储请求后,可根据获取到的数据块x的数据类型和重要程度,确定出数据块x的初始存储份数,初始存储份数可能为1份,也可能为多份。
数据块x的数据类型和重要程度可由用户设备在发送存储请求的同时,发送给数据存储管理服务器,重要程度可由用户设定。
如何根据数据块x的数据类型和重要程度来确定出数据块x的初始存储份数不作限制。比如,可为不同的数据类型和不同的重要程度分别赋予不同的取值,并计算两个取值的加权平均值,作为所述初始存储份数。
另外,数据存储管理服务器可分别获取系统中的各数据节点当前的负载情况,并按照负载从低到高的顺序对各数据节点进行排序,选出排序后处于前P位的数据节点,P的取值与初始存储份数相同,为正整数。
之后,数据存储管理服务器可将确定出的初始存储份数和P个数据节点通知给用户设备,以便用户设备分别在这P个数据节点上存储一份数据块x。
所述负载情况可包括:数据节点承担的服务路数、网络流量(码流)、中央处理单元(CPU,Central Processing Unit)占用率、系统输入/输出(I/O,Input/Output)情况和内存情况等,数据存储管理服务器如何获取各数据节点的负载情况为现有技术。
2)存储份数调整
数据存储管理服务器可周期性地进行以下处理:确定数据块x当前的重要等级,并确定数据块x当前的重要等级对应的存储份数与数据块x当前的存储份数是否相同,如果否,则将数据块x当前的存储份数调整为与数据块x当前的重要等级对应的存储份数相同;其中,重要等级越高,对应的存储份数越大,重要等级越低,对应的存储份数越小。
不同的重要等级分别对应的存储份数的具体取值可根据实际需要预先设定,本发明所述方案中不作限制,但需要遵循重要等级越高对应的存储份数越大、重要等级越低对应的存储份数越小的原则。
数据存储管理服务器可根据获取到的数据块x的数据类型和重要程度,以及最新一个周期内数据块x的访问总次数,确定出数据块x当前的重要等级。
本发明所述方案中对如何确定出数据块x当前的重要等级不作限制,比如,可采用预定的计算公式进行计算。另外,假设数据块x共被存储了3份,那么最新一个周期内数据块x的访问总次数即指这3份的访问总次数。
所述存储份数调整可包括两种情况,即增加存储份数和减少存储份数,具体来说,如果数据块x当前的存储份数小于数据块x当前的重要等级对应的存储份数,则需要增加数据块x的存储份数,如果数据块x当前的存储份数大于数据块x当前的重要等级对应的存储份数,则需要减少数据块x的存储份数。当然,如果数据块x当前的存储份数等于数据块x当前的重要等级对应的存储份数,则不需要对数据块x的存储份数进行调整。
以下分别对增加存储份数和减少存储份数的具体实现进行说明。
2.1)增加存储份数
当数据块x当前的存储份数小于数据块x当前的重要等级对应的存储份数时,则需要增加数据块x的存储份数,具体实现可如以下步骤A~步骤D所示。
A、确定出数据块x当前的重要等级对应的存储份数与数据块x当前的存储份数之差N1,并确定出未存储有数据块x的数据节点数M1,N1即指要增加的存储份数,显然,M1和N1均为正整数;
如果M1大于N1,则执行步骤B;
如果M1等于N1,则执行步骤C;
如果M1小于N1,则执行步骤D。
B、如果M1大于N1,则分别获取未存储有数据块x的M1个数据节点当前的负载情况,并按照负载从低到高的顺序对这M1个数据节点进行排序,选出排序后处于前N1位的数据节点,分别在这N1个数据节点上存储一份数据块x;
比如,M1的取值为6,N1的取值为3,那么可分别获取未存储有数据块x的6个数据节点当前的负载情况,并按照负载从低到高的顺序对这6个数据节点进行排序,选出排序后处于前3位的数据节点,分别在这3个数据节点上存储一份数据块x。
C、如果M1等于N1,则在未存储有数据块x的M1个数据节点上分别存储一份数据块x;
比如,M1的取值为3,N1的取值也为3,那么可分别在未存储有数据块x的3个数据节点上存储一份数据块x。
D、如果M1小于N1,则按照每个数据节点上至少存储一份的原则,在未存储有数据块x的M1个数据节点上存储N1份数据块x,即将增加任务尽可能均匀地分配给M1个数据节点;
比如,M1的取值为2,N1的取值为3,那么则可在未存储有数据块x的2个数据节点上存储3份数据块x;假设2个未存储有数据块x的数据节点分别为数据节点a和数据节点b,且数据节点a的负载低于数据节点b的负载,那么较佳地,可在数据节点a上存储2份数据块x,在数据节点b上存储1份数据块x;
需要说明的是,以上均为举例说明,具体如何进行增加存储份数操作可根据实际需要灵活设定。
可以看出,采用上述方式后,在对数据块x进行存储时,会将数据块x尽可能地分散到不同的数据节点上,从而提高了数据的安全性。
另外,特殊地,如果M1等于0,即不存在未存储有数据块x的数据节点,那么可将要增加的存储份数增加到存储有数据块x的数据节点上,并尽量选择一些负载较轻的数据节点进行存储。
再有,以上述步骤B为例,假设N1的取值为3,数据存储管理服务器需要在选出的3个数据节点上分别存储一份数据块x,假设这3个数据节点分别为数据节点a、数据节点b和数据节点c,那么,数据存储管理服务器可分别获取存储有数据块x的各数据节点当前的负载情况,并选出其中负载最低的数据节点,从中读取出数据块x,分别发送给数据节点a、数据节点b和数据节点c,并将各自的存储份数(此处为1份)分别通知给数据节点a、数据节点b和数据节点c,以便数据节点a、数据节点b和数据节点c相应地完成存储。
2.2)减少存储份数
当数据块x当前的存储份数大于数据块x当前的重要等级对应的存储份数时,则需要减少数据块x的存储份数,具体实现可如以下步骤A~步骤D所示。
A、确定出数据块x当前的存储份数与数据块x当前的重要等级对应的存储份数之差N2,并确定出存储有数据块x的数据节点数M2,N2即指要减少的存储份数,显然,M2和N2均为正整数;
如果M2大于N2,则执行步骤B;
如果M2等于N2,则执行步骤C;
如果M2小于N2,则执行步骤D。
B、如果M2大于N2,则分别获取存储有数据块x的M2个数据节点当前的负载情况,并按照负载从高到低的顺序对这M2个数据节点进行排序,选出排序后处于前N2位的数据节点,分别从这N2个数据节点上删除一份数据块x;
比如,M2的取值为6,N2的取值为3,那么可分别获取存储有数据块x的6个数据节点当前的负载情况,并按照负载从高到低的顺序对这6个数据节点进行排序,选出排序后处于前3位的数据节点,分别从这3个数据节点上删除一份数据块x。
C、如果M2等于N2,则从存储有数据块x的M2个数据节点上分别删除一份数据块x;
比如,M2的取值为3,N2的取值也为3,那么可从存储有数据块x的3个数据节点上分别删除一份数据块x。
D、如果M2小于N2,则按照每个数据节点上至少删除一份的原则,从存储有数据块x的M2个数据节点上删除N2份数据块x,即将减少任务尽可能均匀地分配给M2个数据节点;
比如,M2的取值为2,N2的取值为3,假设存储有数据块x的2个数据节点分别为数据节点a和数据节点b,数据节点a和数据节点b上分别存储有2份数据块x,并假设数据节点a的负载高于数据节点b的负载,那么较佳地,可从数据节点a上删除2份数据块x,从数据节点b上删除1份数据块x;
需要说明的是,以上均为举例说明,具体如何进行减少存储份数操作可根据实际需要灵活设定。
3)索引信息
针对数据块x,可建立一条索引信息,并且,当该索引信息中的内容发生变化时,对该索引信息进行更新。
其中,该索引信息中可包括:数据块x的数据类型、数据块x的重要程度、最新一个周期内数据块x的访问总次数、数据块x最新的存储份数,以及,所存储的每份数据块x所在的数据节点及在数据节点中的具体位置。
在实际应用中,本发明所述数据块通常为视频数据块,那么相应地,数据块x的索引信息中还可进一步包括:数据块x的开始时间和结束时间,即视频播放的开始时间和结束时间。
图3为本发明数据块x对应的索引信息的示意图。当数据块x的存储份数或访问总次数等发生变化时,则需要相应地对图3所示索引信息进行更新。另外,数据存储管理服务器可通过查询图3所示索引信息,获取自身所需的信息,如哪些数据节点上存储有数据块x,数据块x的数据类型、重要程度、访问总次数等。
4)数据读取
如前所述,本发明所述数据块通常为视频数据块,那么当数据存储管理服务器接收到用户设备发送来的、针对一指定时间范围内的视频数据的查询请求时,可按照以下步骤A~步骤C所示方式进行处理。
A、根据所存储的各数据块的索引信息,确定出各数据块中满足以下条件的数据块:该数据块的开始时间和结束时间限定出的时间范围与所述指定时间范围之间存在交集;
比如,所述指定时间范围为1:00~3:00,数据块a的开始时间和结束时间分别为12:30和1:30,数据块b的开始时间和结束时间分别为1:30和2:30,数据块c的开始时间和结束时间分别为2:30和3:30,那么,数据块a、数据块b和数据块c均为开始时间和结束时间限定出的时间范围与所述指定时间范围之间存在交集的数据块。
B、针对确定出的每个数据块,分别进行以下处理:分别获取存储有该数据块的各数据节点当前的负载情况,并选出其中负载最低的数据节点,作为该数据块的读取节点;
比如,可从存储有数据块a的各数据节点中选出负载最低的数据节点a,作为数据块a的读取节点,从存储有数据块b的各数据节点中选出负载最低的数据节点b,作为数据块b的读取节点,从存储有数据块c的各数据节点中选出负载最低的数据节点c,作为数据块c的读取节点。
C、分别从各读取节点中进行对应的数据块读取;
较佳地,数据存储管理服务器可并发地向作为读取节点的数据节点a、数据节点b和数据节点c发送读取命令,以便完成数据块a、数据块b和数据块c的读取,具体实现为现有技术。
基于上述介绍,图4为本发明数据存储管理服务器实施例的组成结构示意图。如图4所示,包括:第一处理模块和第二处理模块。
第一处理模块,用于当接收到用户设备发送来的、针对任一数据块x的存储请求时,确定数据块x的初始存储份数,通知用户设备按照初始存储份数将数据块x存储到数据节点中,并通知第二处理模块执行自身功能;
第二处理模块,用于周期性地进行以下处理:确定数据块x当前的重要等级,并确定所述重要等级对应的存储份数与数据块x当前的存储份数是否相同,如果否,则将数据块x当前的存储份数调整为与所述重要等级对应的存储份数相同;其中,重要等级越高,对应的存储份数越大,重要等级越低,对应的存储份数越小。
较佳地,
第一处理模块可根据获取到的数据块x的数据类型和重要程度,确定出数据块x的初始存储份数,其中,所述重要程度由用户设定;
第二处理模块可根据获取到的数据块x的数据类型和重要程度,以及最新一个周期内数据块x的访问总次数,确定出数据块x当前的重要等级。
另外,
第一处理模块可进一步用于,分别获取各数据节点当前的负载情况,并按照负载从低到高的顺序对各数据节点进行排序;选出排序后处于前P位的数据节点,P的取值与初始存储份数相同,并通知用户设备分别在选出的P个数据节点上存储一份数据块x。
另外,
第二处理模块可进一步用于,当数据块x当前的存储份数小于所述重要等级对应的存储份数时,确定出所述重要等级对应的存储份数与数据块x当前的存储份数之差N1,并确定出未存储有数据块x的数据节点数M1;
如果M1大于N1,则分别获取未存储有数据块x的M1个数据节点当前的负载情况,并按照负载从低到高的顺序对这M1个数据节点进行排序,选出排序后处于前N1位的数据节点,分别在这N1个数据节点上存储一份数据块x;
如果M1等于N1,则在未存储有数据块x的M1个数据节点上分别存储一份数据块x;
如果M1小于N1,则按照每个数据节点上至少存储一份的原则,在未存储有数据块x的M1个数据节点上存储N1份数据块x。
第二处理模块还可进一步用于,分别获取存储有数据块x的各数据节点当前的负载情况,并选出其中负载最低的数据节点,从中读取出数据块x,进行N1份存储。
再有,
第二处理模块还可进一步用于,当数据块x当前的存储份数大于所述重要等级对应的存储份数时,确定出数据块x当前的存储份数与所述重要等级对应的存储份数之差N2,并确定出存储有数据块x的数据节点数M2;
如果M2大于N2,则分别获取存储有数据块x的M2个数据节点当前的负载情况,并按照负载从高到低的顺序对这M2个数据节点进行排序,选出排序后处于前N2位的数据节点,分别从这N2个数据节点上删除一份数据块x;
如果M2等于N2,则从存储有数据块x的M2个数据节点上分别删除一份数据块x;
如果M2小于N2,则按照每个数据节点上至少删除一份的原则,从存储有数据块x的M2个数据节点上删除N2份数据块x。
再有,
第一处理模块还可进一步用于,为数据块x建立一条索引信息,当所述索引信息中的内容发生变化时,对所述索引信息进行更新;
所述索引信息中包括:数据块x的数据类型、数据块x的重要程度、最新一个周期内数据块x的访问总次数、数据块x最新的存储份数,以及,所存储的每份数据块x所在的数据节点及在数据节点中的具体位置。
较佳地,
当数据块x为视频数据块时,所述索引信息中还可进一步包括:数据块x的开始时间和结束时间;
相应地,第二处理模块还可进一步用于,当接收到针对一指定时间范围内的视频数据的查询请求时,根据所存储的各数据块的索引信息,确定出各数据块中满足以下条件的数据块:该数据块的开始时间和结束时间限定出的时间范围与所述指定时间范围之间存在交集;针对确定出的每个数据块,分别进行以下处理:分别获取存储有该数据块的各数据节点当前的负载情况,并选出其中负载最低的数据节点,作为该数据块的读取节点;分别向各读取节点发送读取命令,完成对应的数据块读取。
较佳地,第二处理模块并发地向各读取节点发送读取命令。
总之,采用本发明所述方案,针对任一数据块x,初始状态,可按照确定出的初始存储份数对其进行存储,所存储的各份数据互为备份,并且,可根据数据块x的重要等级变化,自适应地对数据块x的存储份数进行调整,即重要等级变高,则增加存储份数,重要等级变低,则减少存储份数,从而克服了现有技术中存在的问题,进而使得存储资源得到了合理的利用;
而且,现有技术中的备份操作通常都需要手动完成,而本发明所述方案的各个环节均可自动完成,从而降低了用户的操作复杂度;
另外,本发明所述方案在进行数据存储以及调整存储份数等操作时,均考虑了负载均衡的因素,而且在进行数据读取时,并发地向各读取节点发送读取命令,从而提升了系统的整体性能以及稳定性;
再有,现有技术中,备份数据只有在原数据丢失或损坏的情况下,才能发挥作用,否则,备份数据所占用的存储资源将完全处于闲置状态,而本发明所述方案中没有原数据和备份数据之分,如当对数据块x进行读取时,可能会从存储有数据块x的任一数据节点(负载最低)上进行读取,也就是说,存储每份数据块x所占用的存储资源都不会完全处于闲置状态,从而提高了存储资源的利用率。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种数据存储方法,其特征在于,包括:
当接收到针对任一数据块x的存储请求时,确定数据块x的初始存储份数,并按照所述初始存储份数对数据块x进行存储;
周期性地进行以下处理:确定数据块x当前的重要等级,并确定所述重要等级对应的存储份数与数据块x当前的存储份数是否相同,如果否,则将数据块x当前的存储份数调整为与所述重要等级对应的存储份数相同;其中,重要等级越高,对应的存储份数越大,重要等级越低,对应的存储份数越小;
其中,所述确定数据块x当前的重要等级包括:根据获取到的数据块x的数据类型和重要程度,以及最新一个周期内数据块x的访问总次数,确定出数据块x当前的重要等级。
2.根据权利要求1所述的方法,其特征在于,
所述确定数据块x的初始存储份数包括:根据获取到的数据块x的数据类型和重要程度,确定出数据块x的初始存储份数,其中,所述重要程度由用户设定。
3.根据权利要求2所述的方法,其特征在于,
所述按照所述初始存储份数对数据块x进行存储包括:
分别获取各数据节点当前的负载情况,并按照负载从低到高的顺序对各数据节点进行排序;
选出排序后处于前P位的数据节点,P的取值与所述初始存储份数相同,分别在选出的P个数据节点上存储一份数据块x。
4.根据权利要求3所述的方法,其特征在于,
所述将数据块x当前的存储份数调整为与所述重要等级对应的存储份数相同包括:
当数据块x当前的存储份数小于所述重要等级对应的存储份数时,确定出所述重要等级对应的存储份数与数据块x当前的存储份数之差N1,并确定出未存储有数据块x的数据节点数M1;
如果M1大于N1,则分别获取未存储有数据块x的M1个数据节点当前的负载情况,并按照负载从低到高的顺序对这M1个数据节点进行排序,选出排序后处于前N1位的数据节点,分别在这N1个数据节点上存储一份数据块x;
如果M1等于N1,则在未存储有数据块x的M1个数据节点上分别存储一份数据块x;
如果M1小于N1,则按照每个数据节点上至少存储一份的原则,在未存储有数据块x的M1个数据节点上存储N1份数据块x。
5.根据权利要求3所述的方法,其特征在于,
所述将数据块x当前的存储份数调整为与所述重要等级对应的存储份数相同包括:
当数据块x当前的存储份数大于所述重要等级对应的存储份数时,确定出数据块x当前的存储份数与所述重要等级对应的存储份数之差N2,并确定出存储有数据块x的数据节点数M2;
如果M2大于N2,则分别获取存储有数据块x的M2个数据节点当前的负载情况,并按照负载从高到低的顺序对这M2个数据节点进行排序,选出排序后处于前N2位的数据节点,分别从这N2个数据节点上删除一份数据块x;
如果M2等于N2,则从存储有数据块x的M2个数据节点上分别删除一份数据块x;
如果M2小于N2,则按照每个数据节点上至少删除一份的原则,从存储有数据块x的M2个数据节点上删除N2份数据块x。
6.根据权利要求4或5所述的方法,其特征在于,
该方法进一步包括:为数据块x建立一条索引信息,当所述索引信息中的内容发生变化时,对所述索引信息进行更新;
所述索引信息中包括:数据块x的数据类型、数据块x的重要程度、最新一个周期内数据块x的访问总次数、数据块x最新的存储份数,以及,所存储的每份数据块x所在的数据节点及在数据节点中的具体位置。
7.根据权利要求6所述的方法,其特征在于,
当数据块x为视频数据块时,所述索引信息中进一步包括:数据块x的开始时间和结束时间;
该方法进一步包括:
当接收到针对一指定时间范围内的视频数据的查询请求时,根据所存储的各数据块的索引信息,确定出各数据块中满足以下条件的数据块:该数据块的开始时间和结束时间限定出的时间范围与所述指定时间范围之间存在交集;
针对确定出的每个数据块,分别进行以下处理:分别获取存储有该数据块的各数据节点当前的负载情况,并选出其中负载最低的数据节点,作为该数据块的读取节点;
分别从各读取节点中进行对应的数据块读取。
8.一种数据存储管理服务器,其特征在于,包括:
第一处理模块,用于当接收到用户设备发送来的、针对任一数据块x的存储请求时,确定数据块x的初始存储份数,通知所述用户设备按照所述初始存储份数将数据块x存储到数据节点中,并通知第二处理模块执行自身功能;
所述第二处理模块,用于周期性地进行以下处理:确定数据块x当前的重要等级,并确定所述重要等级对应的存储份数与数据块x当前的存储份数是否相同,如果否,则将数据块x当前的存储份数调整为与所述重要等级对应的存储份数相同;其中,重要等级越高,对应的存储份数越大,重要等级越低,对应的存储份数越小;
其中,所述第二处理模块根据获取到的数据块x的数据类型和重要程度,以及最新一个周期内数据块x的访问总次数,确定出数据块x当前的重要等级。
9.根据权利要求8所述的数据存储管理服务器,其特征在于,
所述第一处理模块根据获取到的数据块x的数据类型和重要程度,确定出数据块x的初始存储份数,其中,所述重要程度由用户设定。
10.根据权利要求9所述的数据存储管理服务器,其特征在于,
所述第一处理模块进一步用于,分别获取各数据节点当前的负载情况,并按照负载从低到高的顺序对各数据节点进行排序;选出排序后处于前P位的数据节点,P的取值与所述初始存储份数相同,并通知所述用户设备分别在选出的P个数据节点上存储一份数据块x。
11.根据权利要求10所述的数据存储管理服务器,其特征在于,
所述第二处理模块进一步用于,当数据块x当前的存储份数小于所述重要等级对应的存储份数时,确定出所述重要等级对应的存储份数与数据块x当前的存储份数之差N1,并确定出未存储有数据块x的数据节点数M1;
如果M1大于N1,则分别获取未存储有数据块x的M1个数据节点当前的负载情况,并按照负载从低到高的顺序对这M1个数据节点进行排序,选出排序后处于前N1位的数据节点,分别在这N1个数据节点上存储一份数据块x;
如果M1等于N1,则在未存储有数据块x的M1个数据节点上分别存储一份数据块x;
如果M1小于N1,则按照每个数据节点上至少存储一份的原则,在未存储有数据块x的M1个数据节点上存储N1份数据块x。
12.根据权利要求11所述的数据存储管理服务器,其特征在于,
所述第二处理模块进一步用于,分别获取存储有数据块x的各数据节点当前的负载情况,并选出其中负载最低的数据节点,从中读取出数据块x,进行N1份存储。
13.根据权利要求10所述的数据存储管理服务器,其特征在于,
所述第二处理模块进一步用于,当数据块x当前的存储份数大于所述重要等级对应的存储份数时,确定出数据块x当前的存储份数与所述重要等级对应的存储份数之差N2,并确定出存储有数据块x的数据节点数M2;
如果M2大于N2,则分别获取存储有数据块x的M2个数据节点当前的负载情况,并按照负载从高到低的顺序对这M2个数据节点进行排序,选出排序后处于前N2位的数据节点,分别从这N2个数据节点上删除一份数据块x;
如果M2等于N2,则从存储有数据块x的M2个数据节点上分别删除一份数据块x;
如果M2小于N2,则按照每个数据节点上至少删除一份的原则,从存储有数据块x的M2个数据节点上删除N2份数据块x。
14.根据权利要求11、12或13所述的数据存储管理服务器,其特征在于,
所述第一处理模块进一步用于,为数据块x建立一条索引信息,当所述索引信息中的内容发生变化时,对所述索引信息进行更新;
所述索引信息中包括:数据块x的数据类型、数据块x的重要程度、最新一个周期内数据块x的访问总次数、数据块x最新的存储份数,以及,所存储的每份数据块x所在的数据节点及在数据节点中的具体位置。
15.根据权利要求14所述的数据存储管理服务器,其特征在于,
当数据块x为视频数据块时,所述索引信息中进一步包括:数据块x的开始时间和结束时间;
所述第二处理模块进一步用于,当接收到针对一指定时间范围内的视频数据的查询请求时,根据所存储的各数据块的索引信息,确定出各数据块中满足以下条件的数据块:该数据块的开始时间和结束时间限定出的时间范围与所述指定时间范围之间存在交集;针对确定出的每个数据块,分别进行以下处理:分别获取存储有该数据块的各数据节点当前的负载情况,并选出其中负载最低的数据节点,作为该数据块的读取节点;分别向各读取节点发送读取命令,完成对应的数据块读取。
16.根据权利要求15所述的数据存储管理服务器,其特征在于,所述第二处理模块并发地向各读取节点发送读取命令。
CN201410292889.5A 2014-06-26 2014-06-26 一种数据存储方法以及一种数据存储管理服务器 Active CN105242983B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201410292889.5A CN105242983B (zh) 2014-06-26 2014-06-26 一种数据存储方法以及一种数据存储管理服务器
US15/321,221 US10001945B2 (en) 2014-06-26 2014-11-04 Method of storing data and data storage managing server
PCT/CN2014/090212 WO2015196686A1 (zh) 2014-06-26 2014-11-04 一种数据存储方法以及一种数据存储管理服务器
EP14895667.5A EP3163446B1 (en) 2014-06-26 2014-11-04 Data storage method and data storage management server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410292889.5A CN105242983B (zh) 2014-06-26 2014-06-26 一种数据存储方法以及一种数据存储管理服务器

Publications (2)

Publication Number Publication Date
CN105242983A CN105242983A (zh) 2016-01-13
CN105242983B true CN105242983B (zh) 2018-06-01

Family

ID=54936627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410292889.5A Active CN105242983B (zh) 2014-06-26 2014-06-26 一种数据存储方法以及一种数据存储管理服务器

Country Status (4)

Country Link
US (1) US10001945B2 (zh)
EP (1) EP3163446B1 (zh)
CN (1) CN105242983B (zh)
WO (1) WO2015196686A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10169125B2 (en) * 2015-05-29 2019-01-01 International Business Machines Corporation Re-encoding data in a dispersed storage network
CN110058790B (zh) * 2018-01-18 2022-05-13 伊姆西Ip控股有限责任公司 用于存储数据的方法、设备和计算机程序产品
US11914860B2 (en) * 2018-08-20 2024-02-27 Macronix International Co., Ltd. Data storage for artificial intelligence-based applications
CN109714398B (zh) * 2018-12-11 2021-09-21 新华三技术有限公司 数据存储方法和装置
CN109614269A (zh) * 2018-12-15 2019-04-12 无锡北方数据计算股份有限公司 一种结合快照技术的持续数据保护系统及方法
US20200313859A1 (en) * 2019-03-29 2020-10-01 Accenture Global Solutions Limited Cryptologic Blockchain-Based Off-Chain Storage Verification
WO2021007863A1 (en) 2019-07-18 2021-01-21 Nokia Technologies Oy Integrity auditing for multi-copy storage
US11307781B2 (en) * 2019-12-19 2022-04-19 Red Hat, Inc. Managing replicas of content in storage systems
CN113656501B (zh) * 2021-08-18 2024-01-12 北京百度网讯科技有限公司 一种数据读取方法、装置、设备以及存储介质
CN115016743B (zh) * 2022-08-08 2022-12-20 广东省信息工程有限公司 分布式文件存储和访问控制方法、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101187948A (zh) * 2007-12-20 2008-05-28 中国科学院计算技术研究所 一种持续数据保护系统及其实现方法
CN101394347A (zh) * 2008-11-10 2009-03-25 中国移动通信集团安徽有限公司 一种业务数据管理方法和系统
CN102096698A (zh) * 2010-12-14 2011-06-15 青岛海信网络科技股份有限公司 一种视频数据存储格式、存储方法及检索方法
CN102622184A (zh) * 2011-01-27 2012-08-01 北京东方广视科技股份有限公司 数据存储系统和方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7343356B2 (en) * 2004-04-30 2008-03-11 Commvault Systems, Inc. Systems and methods for storage modeling and costing
WO2010122606A1 (en) * 2009-04-24 2010-10-28 Hitachi, Ltd. Storage system and data management method of the same
US8700571B2 (en) * 2010-09-24 2014-04-15 Hitachi Data Systems Corporation System and method for optimizing protection levels when replicating data in an object storage system
JP5475702B2 (ja) * 2011-02-14 2014-04-16 株式会社日立製作所 メール保存バックアップシステムおよびバックアップ方法
US9106721B2 (en) * 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US9471450B2 (en) * 2013-03-07 2016-10-18 International Business Machines Corporation Reducing data loss in a computing storage environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101187948A (zh) * 2007-12-20 2008-05-28 中国科学院计算技术研究所 一种持续数据保护系统及其实现方法
CN101394347A (zh) * 2008-11-10 2009-03-25 中国移动通信集团安徽有限公司 一种业务数据管理方法和系统
CN102096698A (zh) * 2010-12-14 2011-06-15 青岛海信网络科技股份有限公司 一种视频数据存储格式、存储方法及检索方法
CN102622184A (zh) * 2011-01-27 2012-08-01 北京东方广视科技股份有限公司 数据存储系统和方法

Also Published As

Publication number Publication date
EP3163446A4 (en) 2018-04-18
CN105242983A (zh) 2016-01-13
EP3163446A1 (en) 2017-05-03
EP3163446B1 (en) 2019-08-14
WO2015196686A1 (zh) 2015-12-30
US10001945B2 (en) 2018-06-19
US20170153819A1 (en) 2017-06-01

Similar Documents

Publication Publication Date Title
CN105242983B (zh) 一种数据存储方法以及一种数据存储管理服务器
US8412899B2 (en) Real time backup storage node assignment
CN112256438B (zh) 负载均衡控制方法和装置、存储介质及电子设备
CN111522636B (zh) 应用容器的调整方法、调整系统、计算机可读介质及终端设备
CN105354315B (zh) 分布式数据库中子表分裂的方法、子表节点和系统
CN109981702B (zh) 一种文件存储方法及系统
CN107766159A (zh) 一种元数据管理方法、装置和计算机可读存储介质
CN102970379A (zh) 在多个服务器之间实现负载均衡的方法
CN110244901B (zh) 任务分配方法及装置、分布式存储系统
CN107656807A (zh) 一种虚拟资源的自动弹性伸缩方法及装置
CN108900626A (zh) 一种云环境下数据存储方法、装置及系统
CN101583160A (zh) 一种实现分层服务质量业务的装置及方法
CN114153580A (zh) 一种跨多集群的工作调度方法及装置
CN103248622B (zh) 一种自动伸缩的在线视频服务质量保障方法及系统
CN105262842B (zh) 基于渲染特性的云渲染文件高速传输方法
CN107885859A (zh) 一种文件个数配额的方法、装置和计算机可读存储介质
CN108574718A (zh) 一种云主机创建方法及装置
CN106254516A (zh) 负载均衡方法及装置
CN115827646A (zh) 索引配置方法、装置和电子设备
CN110300011A (zh) 一种告警根因定位方法、装置和计算机可读存储介质
US8452869B2 (en) System and method for managing customized service level agreement monitoring
CN107846429A (zh) 一种文件备份方法、装置和系统
CN116820323A (zh) 数据存储方法、装置、电子设备及计算机可读存储介质
CN110677544B (zh) Pcrf位置脚本更新方法、装置、设备及存储介质
CN106991121A (zh) 超融合数据存储方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant