一种实现海量数据存取的系统及方法

文档序号:6435448阅读:120来源:国知局
专利名称:一种实现海量数据存取的系统及方法
技术领域
本发明涉及计算机数据存储技术,尤其涉及海量数据存储的方法及系统。
背景技术
针对目前TB (TeraByte,万亿字节)级、PB (PetaByte,千万亿字节)级甚至更高级的海量数据存储,如何高效地提取和安全地存储海量数据,已成为用户以及业界的关注重
点ο在现阶段,针对海量数据的存储和为用户提供服务主要存在如下问题(1)数据的高效读取难以实现在海量数据的存储系统中,首先需要将数据进行不确定性大小的数据分块,当用户需要调用存储中的文件时,系统会按照索引表对数据块进行索引并进行数据的整合供用户使用。在对数据块进行索引时需要耗费较长的时间,因此对频繁调用的数据没有通过预处理机制进行整合,会使得数据存储的读取速度不高,因而会影响到数据读取的效率。(2)安全备份未能针对数据的重要性实现因为面临非法攻击、管理员的误操作、磁盘损坏、寿命限制以及数据中心遭受地震等自然灾害,会使数据存储的介质有不安全的因素或隐患,一旦发生上述情况,会导致数据丢失。因此,海量数据的存储必须制定合适的备份策略,如采取本地备份和远程备份相结合的备份方案。而在目前并未采取针对不同数据块的重要性备份不同数量的措施,因而难以安全确保用户重要数据的完整性。综上所述可知,现有的海量数据存储存在着数据存取效率较低及数据存储安全性不高的问题,亟待提供一种实现海量数据存取的方法及系统,能够提高海量数据的存取效率,并能够针对用户重要数据确保其存储的安全性。

发明内容
本发明所要解决的技术问题是提供一种实现海量数据存储的方法及系统,能够提高数据存取的效率。为了解决上述技术问题,本发明提供了一种实现海量数据存取的系统,包括文件索引数据库和数据块索引数据库,其中文件索引数据库在通过文件索引来访问存储的一个或多个文件时访问到数据块索引数据库中一个或多个的数据块;数据块索引数据库,至少包括数据索引预处理模块,用于在一段时间内一个或多个数据块被访问的同时,记录被访数据块的最近访问次数。进一步地,数据索引预处理模块在记录的最近访问次数超过预置的阀值时,将相应的数据块重新整合为一个新的数据块;或者,将相应的数据块重新整合为一个新文件,存储在文件索引数据库中。
进一步地,数据块索引数据库还包括数据备份模块,用于在一个或多个数据块被访问的同时,将每一数据块的引用次数作为被依赖度累计,根据累计的引用次数确定数据块的备份数量,并按照确定的备份数量将数据块备份在不同位置的介质上。进一步地,数据索引预处理模块包括依次连接的最近访问次数统计单元和数据重新整合单元,其中最近访问次数统计单元,用于在一段时间内一个或多个数据块被访问的同时,记录被访数据块的最近访问次数,当记录的最近访问次数超过预置的阀值时,将相应数据块的标识输出给数据重新整合单元;数据重新整合单元,用于根据数据块的标识将相应的数据块重新整合为一个新的数据块,或者重新整合为一个新文件存储在文件索引数据库中。进一步地,数据备份模块包括依次连接的数据块引用次数统计单元和数据块备份量化单元,其中数据块引用次数统计单元,用于在一个或多个数据块被访问的同时,累计每一数据块的引用次数,并将各数据块的标识及累计的所述引用次数输出给数据块备份量化单元;数据块备份量化单元,用于按照如下公式计算出数据块的备份数量η = f (num) -1 = [min (max (2, a+b lg(num)),blockmax) ] -1 ;式中,η表示计算出的数据块的备份数量;num表示数据块的引用次数;a是根据num设置的常数;b是根据数据块重要性级别设置的常数;blockmax表示数据块的备份数量的上限值;并按照计算的备份数量将数据块备份在不同位置的介质上。为了解决上述技术问题,本发明提供了一种实现海量数据存取的方法,涉及文件索引数据库和数据块索引数据库,该方法包括文件索引数据库通过文件索引访问存储的一个或多个文件时,访问到数据块索引数据库中一个或多个的数据块;数据块索引数据库在一段时间内一个或多个数据块被访问的同时,记录被访数据块的最近访问次数。进一步地,该方法还包括数据块索引数据库在记录的最近访问次数超过预置的阀值时,将相应的数据块重新整合。进一步地,数据块索引数据库将相应的数据块重新整合,包括将相应的数据块重新整合为一个新的数据块;或者,将相应的数据块重新整合为一个新文件,存储在文件索引数据库中。进一步地,该方法还包括数据块索引数据库在一个或多个数据块被访问的同时,将每一数据块的引用次数作为被依赖度累计,根据累计的引用次数确定数据块的备份数量,并按照确定的备份数量将数据块备份在不同位置的介质上。进一步地,数据块索引数据库根据累计的引用次数确定数据块的备份数量,按照如下公式计算确定所述数据块的备份数量η = f (num) -1 = [min (max (2, a+b lg(num)),blockmax) ] -1 ;式中,η表示计算出的数据块的备份数量;num表示数据块的引用次数;a是根据num设置的常数;b是根据数据块的重要性级别设置的常数;blockmax表示数据块的备份数量的上限值。本发明基于现有的重复数据删除的分布式存储技术,在文件和数据块的双索引数据库策略基础上,根据数据块最近访问次数超出预置阈值来重新整合数据,同时,采用量化的机制根据累计记录的每个数据块的被文件依赖程度的大小计算出相应的备份数量对数据块进行不同位置介质上的备份,从而实现海量数据的高效存取,同时保证海量数据中用户重要数据的完整性及安全性需求。


图1是本发明的实现海量数据存取的系统实施例的结构示意图;图2为图1中数据块索引数据库内数据索引预处理模块实施例的结构框图;图3为图1中数据块索引数据库内数据备份模块实施例的结构框图。
具体实施例方式下面结合附图和优选实施例对本发明的技术方案进行地详细描述。应该理解,以下例举的实施例仅用于说明和解释本发明,而不构成对本发明技术方案的限制。本发明提供的实现海量数据存取的系统实施例的结构如图1所示,包括文件索引数据库和数据块索引数据库,其中文件索引数据库,用于在通过文件索引来访问存储的一个或多个文件时,访问到数据块索引数据库中一个或多个的数据块;数据块索引数据库,至少包括数据索引预处理模块,用于在一段时间内一个或多个数据块被访问的同时,记录被访数据块的最近访问次数。如图1所示的数据块索引数据库,从左向右,假如数据块1丢失会影响3个文件, 数据块2丢失会破坏4个文件,以此类推。当读取文件索引数据库中的一个文件时,必须收集与它相关的数据块索引数据库内所有的数据块,以保证不发生任何数据块丢失。在上述系统实施例中,数据块索引数据库中的数据索引预处理模块在记录的最近访问次数超过预置的阀值时,将相应的数据块重新整合为一个新的数据块;或者,将相应的数据块重新整合为一个新文件,存储在文件索引数据库中。本发明的上述系统实施例,对于一些数据块在某一段时间内访问频率突然增高,采用统计的最近访问次数这一参数表示这种情况,当有数据的最近访问次数超过预定义的阀值时,将这些数据重新整合,以减少短时间内对同一数据不断整合的开销,加快数据查询速度,从而提高系统的响应速度。在上述实施例中,数据块索引数据库还包括数据备份模块,用于在一个或多个数据块被访问的同时,将每一数据块的引用次数作为被依赖度累计,根据累计的引用次数确定数据块的备份数量,并按照确定的备份数量将数据块备份在不同位置的介质上。在上述系统实施例中,数据索引预处理模块一实施例的结构如图2所示,进一步包括依次连接的最近访问次数统计单元和数据重新整合单元,其中最近访问次数统计单元,用于在一段时间内一个或多个数据块被访问的同时,记录被访数据块的最近访问次数,当记录的最近访问次数超过预置的阀值时,将相应数据块的标识输出给数据重新整合单元;数据重新整合单元,用于根据数据块的标识将相应的数据块重新整合为一个新的数据块;或者重新整合为一个新文件,存储在文件索引数据库中。在上述系统实施例中,数据备份模块一实施例的结构如图3所示,进一步包括依次连接的数据块引用次数统计单元和数据块备份量化单元,其中数据块引用次数统计单元,用于在一个或多个数据块被访问的同时,将每一数据块的引用次数作为被依赖度累计,并将各数据块的标识及累计的引用次数输出给数据块备份量化单元;数据块备份量化单元,用于根据输入的数据块的引用次数计算出数据块的备份数量,并按照计算的备份数量将数据块备份在不同位置的介质上。数据块备份量化单元按如下公式计算数据块的备份数量η = f (num) -1 = [min (max (2, a+b lg(num)),blockmax) ] -1 ;式中,η表示计算出的数据块的备份数量;num表示数据块的引用次数;a、b是表示每一数据块重要性的常数;其中,a与num具有直接关系,b与数据的重要性级别有关。譬如,根据num对常数a进行如下设置当 0 < num 彡 10 时,设 a = 2 ;当 10 < num 彡 100 时,设 a = 3 ;......,以此类催。或者,根据num对常数a进行如下设置a = Ig num+1。譬如,对于普通数据可以取b = 0,较重要数据取b = 1,绝密数据取b = 2,......,
以次类催。blockmax表示一个数据块备份数量的上限值。 通过上述公式可以看出,常数a、b和参数blockmax与数据块的引用次数num —起共同影响系统中数据的存储效率和可靠性。 针对上述系统实施例,本发明相应地还提供了实现海量数据存储的方法实施例, 涉及文件索引数据库和数据块索引数据库,该方法实施例包括
文件索引数据库通过文件索引访问存储的一个或多个文件时,访问到数据块索引数据库中一个或多个的数据块;数据块索引数据库在一段时间内一个或多个数据块被访问的同时,记录被访数据块的最近访问次数。上述方法实施例还包括当数据块索引数据库记录的最近访问次数超过预置的阀值时,将相应的数据块重新整合。上述方法实施例中,数据块索引数据库将相应的数据块重新整合,具体包括将相应的多个数据块重新整合为一个新的数据块;或者,将相应的多个数据块重新整合为一个新文件,存储在文件索引数据库中。上述方法实施例还包括数据块索引数据库在一个或多个数据块被访问的同时,将每一数据块的引用次数作为被依赖度累计,根据累计的引用次数确定数据块的备份数量。在上述方法实施例中,数据块索引数据库根据累计的引用次数确定数据块的备份数量,具体通过如下公式计算确定η = f(num)_l = [min (max (2, a+b lg(num)),blockmax) ]-1 ;式中各参数的含义前已述及,此不再赘述。上述方法实施例还包括数据块索引数据库按照确定的备份数量将数据块备份在不同位置的介质上。本发明基于文件索引数据库和数据块索引数据库的分离管理,根据数据块最近访问次数超出预置阈值来重新整合数据,由此可加快数据查询速度,从而实现海量数据的高效存取。对于海量数据,通过采取将数据不固定大小分块与分布存储的策略,存储的每个文件都会依赖不同数目、不同大小的数据块,采用量化的机制根据累计的每个数据块的被依赖度的大小(即引用次数)计算确定数据块的备份数量,按照确定的备份数量进行不同位置的介质备份,,从而保证海量数据中用户重要数据的完整性及安全性需求。对于本领域的专业人员来说,在了解了本发明内容和原理后,能够在不背离本发明的原理和范围的情况下,根据本发明的方法进行形式和细节上的各种修正和改变,但是这些基于本发明的修正和改变仍在本发明的权利要求保护范围之内。
权利要求
1.一种实现海量数据存取的系统,包括文件索引数据库和数据块索引数据库,其中文件索引数据库在通过文件索引来访问存储的一个或多个文件时访问到数据块索引数据库中一个或多个的数据块,其特征在于数据块索引数据库,至少包括数据索引预处理模块,用于在一段时间内一个或多个数据块被访问的同时,记录被访数据块的最近访问次数。
2.按照权利要求1所述的系统,其特征在于,所述数据索引预处理模块在记录的所述最近访问次数超过预置的阀值时,将相应的数据块重新整合为一个新的数据块;或者,将相应的数据块重新整合为一个新文件,存储在所述文件索引数据库中。
3.按照权利要求1或2所述的系统,其特征在于,所述数据块索引数据库还包括数据备份模块,用于在一个或多个数据块被访问的同时,将每一数据块的引用次数作为被依赖度累计,根据累计的引用次数确定数据块的备份数量,并按照确定的所述备份数量将数据块备份在不同位置的介质上。
4.按照权利要求1或2所述的系统,其特征在于,所述数据索引预处理模块包括依次连接的最近访问次数统计单元和数据重新整合单元,其中最近访问次数统计单元,用于在一段时间内一个或多个数据块被访问的同时,记录被访数据块的最近访问次数,当记录的所述最近访问次数超过预置的阀值时,将相应数据块的标识输出给数据重新整合单元;数据重新整合单元,用于根据所述数据块的标识将相应的数据块重新整合为一个新的数据块,或者重新整合为一个新文件存储在所述文件索引数据库中。
5.按照权利要求3所述的系统,其特征在于,所述数据备份模块包括依次连接的数据块引用次数统计单元和数据块备份量化单元,其中数据块引用次数统计单元,用于在一个或多个数据块被访问的同时,累计每一数据块的引用次数,并将各数据块的标识及累计的所述引用次数输出给数据块备份量化单元; 数据块备份量化单元,用于按照如下公式计算出所述数据块的备份数量 η = f(num)_l = [min (max (2,a+b Ig (num)),blockmax) ]-1 ; 式中,所述η表示计算出的所述数据块的备份数量;所述rmm表示所述数据块的引用次数;所述a是根据所述num设置的常数;所述b是根据所述数据块的重要性级别设置的常数;所述blockmax表示所述数据块的备份数量的上限值;并按照计算的所述备份数量将所述数据块备份在不同位置的介质上。
6.一种实现海量数据存取的方法,涉及文件索引数据库和数据块索引数据库,该方法包括文件索引数据库通过文件索引访问存储的一个或多个文件时,访问到数据块索引数据库中一个或多个的数据块;数据块索引数据库在一段时间内一个或多个数据块被访问的同时,记录被访数据块的最近访问次数。
7.按照权利要求6所述的方法,其特征在于,还包括所述数据块索引数据库在记录的所述最近访问次数超过预置的阀值时,将相应的数据块重新整合。
8.按照权利要求7所述的方法,其特征在于,所述数据块索引数据库将相应的数据块重新整合,包括将相应的数据块重新整合为一个新的数据块;或者,将相应的数据块重新整合为一个新文件,存储在所述文件索引数据库中。
9.按照权利要求6至8任一项所述的方法,其特征在于,还包括所述数据块索引数据库在一个或多个数据块被访问的同时,将每一数据块的引用次数作为被依赖度累计,根据累计的所述引用次数确定所述数据块的备份数量,并按照确定的备份数量将所述数据块备份在不同位置的介质上。
10.按照权利要求9所述的方法,其特征在于,所述数据块索引数据库根据累计的所述引用次数确定所述数据块的备份数量,按照如下公式计算确定所述数据块的备份数量η = f(num)_l = [min (max (2,a+b Ig (num)),blockmax) ]-1 ; 式中,所述η表示计算出的所述数据块的备份数量; 所述rmm表示所述数据块的引用次数; 所述a是根据所述num设置的常数; 所述b是根据所述数据块的重要性级别设置的常数; 所述blockmax表示所述数据块的备份数量的上限值。
全文摘要
本发明披露了一种实现海量数据存取的系统及方法,其中系统包括文件索引数据库在通过文件索引来访问存储的一个或多个文件时访问到数据块索引数据库中一个或多个的数据块;数据块索引数据库至少包括数据索引预处理模块,用于在一段时间内一个或多个数据块被访问的同时,记录被访数据块的最近访问次数;当记录的最近访问次数超过预置的阀值时,将相应的数据块重新整合。本发明实现了海量数据的高效存取,同时保证了海量数据中用户重要数据的完整性及安全性需求。
文档编号G06F17/30GK102436478SQ20111030888
公开日2012年5月2日 申请日期2011年10月12日 优先权日2011年10月12日
发明者刘正伟, 张砚波 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1