建立数据区块的索引方法

文档序号:6335870阅读:374来源:国知局
专利名称:建立数据区块的索引方法
技术领域
本发明公开了一种建立数据区块的索引方法,特别有关于一种应用在重复数据删除程序之中,将经过重复数据删除的切分程序后所产生的数据区块相应的建立数据区块的索引方法。
背景技术
重复数据删除是一种数据缩减技术,通常用于基于磁盘的备份系统,主要目的在于减少存储系统中使用的存储容量。它的工作方式是在某个时间周期内查找不同文件中不同位置的重复可变大小数据块。重复的数据块用指示符取代。由于存储系统中总是充斥着大量的冗余数据。为了解决这个问题,节省更多空间,“重复删除”技术便顺理成章地成了人们关注的焦点。采用“重复删除”技术可以将存储的数据缩减为原来的1/20,从而让出更多的备份空间,不仅可以使存储系统上的备份数据保存更长的时间,而且还可以节约离线存储时所需的大量的带宽。请参考图1所示,其为现有技术的重复数据删除的存取的示意图。为能有效的掌控已储存的文件数据,因此在服务器端中会透过哈希(Hash)列表来记录各输入文件的数据区块。在哈希列表中记录了数据区块所相应的哈希值。由于哈希算法具有单向转换 (One-ffay transform)的特点,所以每一个数据区块必然只有一组唯一的哈希值。重复删除程序也藉此特性,将相同哈希值的数据区块视为相同的。所以在储存设备中只要存储一份数据区块,并记录不同文件中相同的数据区块的对应关系即可。然而,面对日益增加的数据量,也将使得哈希列表的长度也随之增加。这样一来, 将哈希列表加载内存的时间与查找哈希列表的时间也会拉长。

发明内容
鉴于以上的问题,本发明在于提供一种建立数据区块的索引方法,应用在重复数据删除程序之中,将经过重复数据删除中的切分程序后,所产生的数据区块建立相应的索引文件。为达上述目的,本发明所公开的建立数据区块的索引方法包括以下步骤加载索引文件,在索引文件包括多个位置区块,每一位置区块中更包括多个存储字段,每一存储字段记录数据区块所相应的主哈希值;对数据区块的一主哈希值进行第一哈希程序,计算区块编号;对同一数据区块的主哈希值进行第二哈希程序,计算字段编号;加载位置冲突列表;将字段编号与位置冲突列表中的字段编号进行比对,查找位置冲突列表中是否已经存储有相同的字段编号;若位置冲突列表中不存在字段编号时,则将主哈希值写入相应的区块编号与字段编号之中。本发明所提出的阶层式索引文件用以记录数据区块的所在位置,藉以提高重复数据删除程序在内存(或硬盘中)查找索引文件的存取效率。有关本发明的特征与实作,配合附图作最佳实施例详细说明如下。


图1为现有技术的重复数据删除的存取的示意图;图2为本发明的架构示意图;图3A为本发明的索引文件建立流程示意图;图;3B为本发明的索引文件架构示意图;图4为本发明的查询索引文件的流程示意图。其中,附图标记客户端210服务器端220索引文件221位置冲突列表22具体实施例方式请参考图2所示,其为本发明的架构示意图。本发明包括客户端210与服务器端 220。客户端210可以通过因特网(Internet)或企业内网(intranet)的方式连接于服务器端220,也可以将客户端210与服务器端220同时运行于同一台计算器装置上。而客户端210用以对所输入的文件进行重复数据删除程序,并透过服务器端根据本发明将产生相应的输入文件的该些数据区块的索引文件221。在服务器端220中存储索引文件221与位置冲突列表222。索引文件221记录多组数据区块的哈希值。为能提高索引文件221的查找效率,并降低索引文件221在内存或高速缓存间的存取时间。因此提出索引文件221的建立方法,请同时参考图3A与图;3B所示,其分别为本发明的索引文件建立流程示意图与索引文件架构示意图。步骤S310 加载索引文件,在索引文件包括多个位置区块,每一位置区块中更包括多个存储字段,每一存储字段记录数据区块所相应的主哈希值;步骤S320 对数据区块的主哈希值进行第一哈希程序,计算区块编号;步骤S330 对同一数据区块的主哈希值进行第二哈希程序,计算字段编号;步骤S340 建立位置冲突列表,用以记录字段编号相同者;步骤S350 将字段编号与位置冲突列表中的字段编号进行比对,查找位置冲突列表中是否已经存储有相同的字段编号;以及步骤S360 若位置冲突列表中不存在字段编号时,则将主哈希值写入相应的区块编号与字段编号之中。如图;3B所示,索引文件221包括多个位置区块,每一位置区块中更包括多个存储字段,每一存储字段记录数据区块所相应的主哈希值。在索引文件221中的存储字段均是定长。在本发明中存储字段的数量透过下式1所产生N=位置区块的容量/存储字段的容量式1N:存储字段的数量。而位置区块的数量由式2所产生M=数据区块的数量/N式2M 位置区块的数量。
索引文件221被划分成多个容量为固定大小的位置区块(以下以M个位置区块作为说明)。数据区块对应的主哈希值(可透过SHA 1或SHA 256算法得到)进行第一哈希程序的处理,使区块编号能散列于M个区块编号的范围之内。为能达成散落于M个区块编号的范围的目的,可以将主哈希值透过模数计算(mod),使得主哈希值的余数可以确定落于 M个区块编号的范围之内(如图:3B所示,用以选择相应的位置区块)。第一哈希程序所产生的哈希值只用于分配主哈希值的存储分配,所以其计算结果(区块编号)是不会占用实际的内存和硬盘空间。接着,再对主哈希值的做第二哈希程序,用以将所产生的第二哈希值作为相应数据区块的字段编号。字段编号用以标示在区块编号中的特定字段。同理,为能使字段标号散落在N个存储字段的范围之内(如图:3B所示,用以选择相应的存储字段),可以将主哈希值透过模数计算(mod)。当主哈希值经过N的模数计算后,主哈希值的余数将仅会分布于N 个存储字段的范围之内。如此一来,则完成索引文件221的建立。请参考图4所示,其为本发明的查询索引文件221的流程示意图。查询索引文件 221包括以下步骤步骤S410 客户端接收区块查询请求,用以查询索引文件中是否存在相应的数据区块;步骤S420 若索引文件中不存在区块查询请求所要查询的数据区块时,则在内存中产生暂存索引文件,并在暂存索引文件中记录数据区块被查询的次数;以及步骤S430 当数据区块被查询的次数符合门坎值时,则于索引文件中建立数据区块的相应区块编号与字段编号。首先,客户端210向服务器端220发出对一输入文件的查询要求时,服务器端220 根据索引文件221对输入文件进行比对是否在服务器端220中已经存在有相同的数据区块。如果欲查询的第二哈希值已见于索引文件221之中(意即经过第二哈希程序的主哈希值),则把主哈希值的字段编号都保存在位置冲突列表222中。将字段编号记录于位置冲突列表222中并且利用地址指针记录字段编号所相应的数据区块。换言之,就是以链表的记录方式,将每一条记录都有一个字段记录与主哈希值相同的下一条记录的记录号。如果在记录号的后面没有冲突的记录这个字段值时,则可以将此一记录号设置成无效值。当第二哈希值出现与之前的主哈希值重复冲突时,对主哈希值再进行一次哈希将其散列在位置冲突列表222中。在本发明中炼表的处理程序可以透过下述方式所实现假设对主哈希值取N的模数运算(mod),则位置冲突列表222的项次数量即为N个,并请同时参考表1。
权利要求
1.一种建立数据区块的索引方法,应用在一重复数据删除程序之中,将经过该重复数据删除程序的一切分程序后所产生的一数据区块建立相应的索引文件,其特征在于,该建立数据区块的索引方法包括以下步骤加载一索引文件,在该索引文件包括多个位置区块,每一该位置区块中更包括多个存储字段,每一该存储字段记录该数据区块所相应的一主哈希值;对该数据区块的该主哈希值进行一第一哈希程序,计算并产生一区块编号;对同一该数据区块的该主哈希值进行一第二哈希程序,计算并产生一字段编号;建立一位置冲突列表,用以记录该字段编号相同者;将该字段编号与该位置冲突列表中的该些字段编号进行比对,查找该位置冲突列表中是否已经存储有相同的该字段编号;以及若该位置冲突列表中不存在该字段编号时,则将该主哈希值写入相应的该区块编号与该字段编号之中。
2.如权利要求1所述的建立数据区块的索引方法,其特征在于,若该位置冲突列表中存在该字段编号时的步骤中还包括将该字段编号记录于该位置冲突列表中并且利用一地址指针记录该字段编号所相应的该数据区块。
3.如权利要求1所述的建立数据区块的索引方法,其特征在于,在完成该索引文件后还包括接收一区块查询请求,用以查询该索引文件中是否存在相应的该数据区块;若该索引文件中不存在该区块查询请求所要查询的该数据区块时,则在一内存中产生一暂存索引文件,并在该暂存索引文件中记录该数据区块被查询的次数;以及当该数据区块被查询的次数符合一门坎值时,则于该索引文件中建立该数据区块的相应该区块编号与该字段编号。
全文摘要
本发明公开了一种建立数据区块的索引方法,应用在重复数据删除程序之中。建立索引方法包括加载索引文件,在索引文件包括多个位置区块,每一位置区块中更包括多个存储字段,每一存储字段记录数据区块所相应的主哈希值;对数据区块的一主哈希值进行第一哈希程序,计算区块编号;对同一数据区块的主哈希值进行第二哈希程序,计算字段编号;加载位置冲突列表;将字段编号与位置冲突列表中的字段编号进行比对,查找位置冲突列表中是否已经存储有相同的字段编号;若位置冲突列表中不存在字段编号时,则将主哈希值写入相应的区块编号与字段编号之中。
文档编号G06F12/06GK102467458SQ20101054437
公开日2012年5月23日 申请日期2010年11月5日 优先权日2010年11月5日
发明者朱明胜, 王云松, 陈志丰 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1