一种数据处理方法、备份服务器及存储系统与流程

文档序号:11133956阅读:432来源:国知局
一种数据处理方法、备份服务器及存储系统与制造工艺

本发明涉及计算机技术领域,特别涉及一种数据处理方法、备份服务器及存储系统。



背景技术:

在数据存储领域,重复数据删除技术是一种节约数据存储空间的关键技术,它可以检测并消除数据冗余,对相同的数据只留下一个副本,不仅可以较大地节约磁盘空间,而且能够提升数据的写入性能,以及节约网络带宽,被广泛应用于文件备份、在线存储服务、电子邮件服务等领域。

现有技术中,存储系统中存储有指纹表,指纹表中保存有已存储在存储系统中的数据的指纹。在接收到数据存储请求时,存储系统将待存储数据块的指纹与指纹表中的指纹进行比对,以确定待存储数据块是否为重复数据,进而确定对待存储数据块的存储方式。

但是,将待存储数据块的指纹与指纹表中的指纹进行比对时,需要将指纹表中的指纹读取到备份服务器的内存中,由于指纹表中保存有海量的指纹,因此,在全部指纹表中进行指纹比对将产生大量的数据搬运,需要消耗大量的输入输出(英文:input/output;简称:I/O)资源,花费大量的时间,导致存储系统存储数据的效率低下。



技术实现要素:

本发明实施例提供一种数据处理方法、备份服务器及存储系统,用于解决因指纹比对消耗大量I/O资源导致数据存储的效率较低的问题。

第一方面,本发明实施例提供一种数据处理方法,所述方法由存储系统中 的备份服务器执行,所述存储系统中包括所述备份服务器以及多个存储器,所述存储系统中存储有多个指纹表,所述多个指纹表中记录有已存储于所述多个存储器中的数据块的指纹,所述方法包括:

根据指纹索引表中的索引指纹以及待存储数据块的指纹确定第一指纹集合,其中,所述第一指纹集合中包含有第一索引指纹、第二索引指纹,所述第一索引指纹用于代表第一指纹表中的多个指纹,所述第二索引指纹用于代表第二指纹表中的多个指纹,所述待存储数据块的指纹属于所述第一索引指纹所代表的多个指纹以及所述第二索引指纹所代表的多个指纹的指纹范围;

根据所述第一索引指纹获得第一指纹表中包含有与所述待存储数据块的指纹相同的指纹的第一概率,并根据所述第二索引指纹获得所述第二指纹表中包含有与所述待存储数据块的指纹相同的指纹的第二概率,其中,所述第一概率是根据所述第一索引指纹代表的多个指纹确定的,所述第二概率是根据所述第二索引指纹代表的多个指纹确定的;

根据所述第一概率和第二概率确定第二指纹集合,其中,所述第二指纹集合中至少包含有所述第一索引指纹,根据所述第一索引指纹确定的第一概率不小于预设阈值;

获得所述第一索引指纹所代表的多个指纹与所述待存储数据块的指纹的匹配结果。

结合第一方面,在第一方面的第一种可能的实现方式中,所述第一指纹表存储在所述多个存储器中的第一存储器中,所述第二指纹表存储在所述多个存储器中的第二存储器中;所述根据所述第一索引指纹获得第一指纹表中包含有与所述待存储数据块的指纹相同的指纹的第一概率,包括:

将所述待存储数据块的指纹以及所述第一索引指纹发送至所述第一存储器;

接收所述第一存储器返回的所述第一概率,所述第一概率用于表示在所述第一索引指纹所代表的多个指纹中包含有与所述待存储数据块的指纹相同的 指纹的概率;

所述根据所述第二索引指纹获得所述第二指纹表中包含有与所述待存储数据块的指纹相同的指纹的第二概率,包括:

将所述待存储数据块的指纹以及所述第二索引指纹发送至所述第二存储器;

接收所述第二存储器返回的所述第一概率,所述第一概率用于表示在所述第二索引指纹所代表的多个指纹中包含有与所述待存储数据块的指纹相同的指纹的概率。

结合第一方面,在第一方面的第二种可能的实现方式中,所述备份服务器包括辅助存储器,所述第一指纹表以及所述第二指纹表存储在所述辅助存储器中;

所述根据所述第一索引指纹获得第一指纹表中包含有与所述待存储数据块的指纹相同的指纹的第一概率,并根据所述第二索引指纹获得所述第二指纹表中包含有与所述待存储数据块的指纹相同的指纹的第二概率,包括:

将所述待存储数据块的指纹以及所述第一索引指纹、所述第二索引指纹发送至所述辅助存储器;

接收所述辅助存储器返回的在所述第一索引指纹所代表的多个指纹中包含有与所述待存储数据块的指纹相同的指纹的所述第一概率,以及在所述第二索引指纹所代表的多个指纹中包含有与所述待存储数据块的指纹相同的指纹的所述第二概率。

结合第一方面、第一方面的第一种可能的实现方式以及第一方面的第二种可能的实现方式中的任一项,在第一方面的第三种可能的实现方式中,所述第一指纹表中的每个指纹包含M位,每个M位指纹包含N个区间,所述N个区间中的每个区间包括M位中连续的S位,所述N个区间中任意两个区间不重叠,所述N个区间的位数之和为M,N为大于或者等于2的自然数,S为自然数;

所述存储系统中存储有第一统计表,所述第一统计表包含有所述第一索引指纹所代表的多个指纹在所述N个区间的数值的统计信息,所述第一概率的确定方式包括:

根据所述第一统计表确定ai在所述第一索引指纹所代表的多个指纹的所述第i区间的数值中的出现频次ti,其中,ai为待存储数据块的指纹的第i个区间的数值,i的取值范围为1至N;

根据获得的t1至tN中的最小值确定所述第一概率。

结合第一方面、第一方面的第一种可能的实现方式以及第一方面的第二种可能的实现方式中的任一项,在第一方面的第四种可能的实现方式中,所述存储系统中存储有第一统计表,所述第一统计表包含所述第一索引指纹所代表的多个指纹的第一区间的数值的统计信息,以及所述第一索引指纹所代表的多个指纹的第二区间的数值的统计信息,所述第一区间为各指纹的第h位至第i位的区间,所述第二区间为各指纹的第j位至第k位的区间,其中,h、i、j、k均为自然数,h的值不大于i的值,j的值不大于k的值,所述第一区间和所述第二区间不重叠;所述第一概率的确定方式包括:

根据所述第一统计表确定a在所述第一索引指纹所代表的多个指纹的所述第一区间的数值中的出现频次t1以及b在所述第一索引指纹所代表的多个指纹的所述第二区间的数值中出现的频次t2,其中,a为待存储数据块的指纹的第h位至第i位的数值,b为待存储数据块的指纹的第j位至第k位的数值;

根据所述t1和t2中的最小值确定所述第一概率。

第二方面,本发明实施例提供一种备份服务器,所述备份服务器应用于存储系统中,所述存储系统包括所述备份服务器以及多个存储器,所述存储系统中存储有多个指纹表,所述多个指纹表中记录有已存储于所述多个存储器中的数据块的指纹,所述备份服务器包括:

确定模块,用于根据指纹索引表中的索引指纹以及待存储数据块的指纹确定第一指纹集合,其中,所述第一指纹集合中包含有第一索引指纹、第二索引 指纹,所述第一索引指纹用于代表第一指纹表中的多个指纹,所述第二索引指纹用于代表第二指纹表中的多个指纹,所述待存储数据块的指纹属于所述第一索引指纹所代表的多个指纹以及所述第二索引指纹所代表的多个指纹的指纹范围;

获得模块,用于根据所述第一索引指纹获得第一指纹表中包含有与所述待存储数据块的指纹相同的指纹的第一概率,并根据所述第二索引指纹获得所述第二指纹表中包含有与所述待存储数据块的指纹相同的指纹的第二概率,其中,所述第一概率是根据所述第一索引指纹代表的多个指纹确定的,所述第二概率是根据所述第二索引指纹代表的多个指纹确定的;

所述确定模块,还用于根据所述第一概率和第二概率确定第二指纹集合,其中,所述第二指纹集合中至少包含有所述第一索引指纹,根据所述第一索引指纹确定的第一概率不小于预设阈值;

处理模块,用于获得所述第一索引指纹所代表的多个指纹与所述待存储数据块的指纹的匹配结果。

结合第二方面,在第二方面的第一种可能的实现方式中,所述第一指纹表存储在所述多个存储器中的第一存储器中,所述第二指纹表存储在所述多个存储器中的第二存储器中;

所述获得模块具体用于:将所述待存储数据块的指纹以及所述第一索引指纹发送至所述第一存储器;并接收所述第一存储器返回的所述第一概率,所述第一概率用于表示在所述第一索引指纹所代表的多个指纹中包含有与所述待存储数据块的指纹相同的指纹的概率;以及

将所述待存储数据块的指纹以及所述第二索引指纹发送至所述第二存储器;并接收所述第二存储器返回的所述第二概率,所述第二概率用于表示在所述第二索引指纹所代表的多个指纹中包含有与所述待存储数据块的指纹相同的指纹的概率。

结合第二方面,在第二方面的第二种可能的实现方式中,所述备份服务器 还包括:

辅助存储器,用于存储第一指纹表以及所述第二指纹表;

所述获得模块具体用于:将所述待存储数据块的指纹以及所述第一索引指纹、所述第二索引指纹发送至所述辅助存储器;接收所述辅助存储器返回的在所述第一索引指纹所代表的多个指纹中包含有与所述待存储数据块的指纹相同的指纹的所述第一概率,以及在所述第二索引指纹所代表的多个指纹中包含有与所述待存储数据块的指纹相同的指纹的所述第二概率。

结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述第一指纹表中的每个指纹包含M位,每个M位指纹包含N个区间,所述N个区间中的每个区间包括M位中连续的S位,所述N个区间中任意两个区间不重叠,所述N个区间的位数之和为M,N为大于或者等于2的自然数,S为自然数;所述辅助存储器中还用于存储第一统计表,所述第一统计表包含所述第一索引指纹所代表的多个指纹的所述N个区间的数值的统计信息;

所述辅助存储器还用于:根据所述第一统计表确定ai在所述第一索引指纹所代表的多个指纹的所述第i区间的数值中的出现频次ti,其中,ai为待存储数据块的指纹的第i区间的数值,i的取值范围为1至N,并根据所t1至tN中的最小值确定所述第一概率。

结合第二方面的第二种可能的实现方式,在第二方面的第四种可能的实现方式中,所述辅助存储器还用于存储第一统计表,所述第一统计表包含所述第一索引指纹所代表的多个指纹的第一区间的数值的统计信息,以及所述第一索引指纹所代表的多个指纹的第二区间的数值的统计信息,所述第一区间为各指纹的第h位至第i位的区间,所述第二区间为各指纹的第j位至第k位的区间,其中,h、i、j、k均为自然数,h的值不大于i的值,j的值不大于k的值,所述第一区间和所述第二区间不重叠;

所述辅助存储器还用于:根据所述第一统计表确定a在所述第一索引指纹 所代表的多个指纹的所述第一区间的数值中的出现频次t1以及b在所述第一索引指纹所代表的多个指纹的所述第二区间的数值中出现的频次t2,其中,a为待存储数据块的指纹的第h位至第i位的数值,b为待存储数据块的指纹的第j位至第k位的数值;并根据所述t1和t2中的最小值确定所述第一概率。

第三方面,本发明实施例提供一种存储系统,包括备份服务器以及多个存储器,所述存储系统中存储有多个指纹表,所述多个指纹表中记录有已存储于所述多个存储器中的数据块的指纹;

所述备份服务器用于:

根据指纹索引表中的索引指纹以及待存储数据块的指纹确定第一指纹集合,其中,所述第一指纹集合中包含有第一索引指纹、第二索引指纹,所述第一索引指纹用于代表第一指纹表中的多个指纹,所述第二索引指纹用于代表第二指纹表中的多个指纹,所述待存储数据块的指纹属于所述第一索引指纹所代表的多个指纹以及所述第二索引指纹所代表的多个指纹的指纹范围;

根据所述第一索引指纹获得第一指纹表中包含有与所述待存储数据块的指纹相同的指纹的第一概率,并根据所述第二索引指纹获得所述第二指纹表中包含有与所述待存储数据块的指纹相同的指纹的第二概率,其中,所述第一概率是根据所述第一索引指纹代表的多个指纹确定的,所述第二概率是根据所述第二索引指纹代表的多个指纹确定的;

根据所述第一概率和第二概率确定第二指纹集合,其中,所述第二指纹集合中至少包含有所述第一索引指纹,根据所述第一索引指纹确定的第一概率不小于预设阈值;

获得所述第一索引指纹所代表的多个指纹与所述待存储数据块的指纹的匹配结果。

结合第三方面,在第三方面的第一种可能的实现方式中,所述第一指纹表存储在所述多个存储器中的第一存储器中,所述第二指纹表存储在所述多个存储器中的第二存储器中;所述备份服务器具体用于:

将所述待存储数据块的指纹以及所述第一索引指纹发送至所述第一存储器;以及接收所述第一存储器返回的所述第一概率,所述第一概率用于表示在所述第一索引指纹所代表的多个指纹中包含有与所述待存储数据块的指纹相同的指纹的概率;

将所述待存储数据块的指纹以及所述第二索引指纹发送至所述第二存储器;以及接收所述第二存储器返回的所述第一概率,所述第一概率用于表示在所述第二索引指纹所代表的多个指纹中包含有与所述待存储数据块的指纹相同的指纹的概率;

所述第一存储器具体用于:接收所述备份服务器发送的第一索引指纹以及所述待存储数据块的指纹,并确定在所述第一索引指纹代表的多个指纹中包含与所述待存储数据块的指纹相同的指纹的第一概率,并将所述第一概率发送至所述备份服务器;

所述第二存储器具体用于:接收所述备份服务器发送的第二索引指纹以及所述待存储数据块的指纹,并确定在所述第二索引指纹代表的多个指纹中包含与所述待存储数据块的指纹相同的指纹的第二概率,并将所述第二概率发送至所述备份服务器。

结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述第一指纹表中的每个指纹包含M位,每个M位指纹包含N个区间,所述N个区间中的每个区间包括M位中连续的S位,所述N个区间中任意两个区间不重叠,所述N个区间的位数之和为M,N为大于或者等于2的自然数,S为自然数;所述第一存储器上存储有第一统计表,所述第一统计表包含所述第一索引指纹所代表的多个指纹的所述N个区间的数值的统计信息;

所述第一存储器具体用于:根据所述第一统计表确定ai在所述第一索引指纹所代表的多个指纹的所述第i区间的数值中的出现频次ti,其中,ai为待存储数据块的指纹的第i区间的数值,i的取值范围为1至N;

根据所t1至tN中的最小值确定所述第一概率。

结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第三种可能的实现方式中,所述第一存储器上存储有第一统计表,所述第一统计表包含所述第一索引指纹所代表的多个指纹的第一区间的数值的统计信息,以及所述第一索引指纹所代表的多个指纹的第二区间的数值的统计信息,所述第一区间为各指纹的第h位至第i位的区间,所述第二区间为各指纹的第j位至第k位的区间,其中,h、i、j、k均为自然数,h的值不大于i的值,j的值不大于k的值,所述第一区间和所述第二区间不重叠;

所述第一存储器具体用于:

根据所述第一统计表确定a在所述第一索引指纹所代表的多个指纹的所述第一区间的数值中的出现频次t1以及b在所述第一索引指纹所代表的多个指纹的所述第二区间的数值中出现的频次t2,其中,a为待存储数据块的指纹的第h位至第i位的数值,b为待存储数据块的指纹的第j位至第k位的数值;

根据所述t1和t2中的最小值确定所述第一概率。

本发明实施例中,备份服务器首先根据指纹索引表中的索引指纹以及待存储数据块的指纹确定出可能包含有待存储数据块的指纹的第一指纹集合。然后,备份服务器根据所述第一指纹集合中的第一索引指纹获得第一指纹表中包含有与所述待存储数据块的指纹相同的指纹的第一概率,并根据所述第一指纹集合中的第二索引指纹获得第二指纹表中包含有与所述待存储数据块的指纹相同的指纹的第二概率。再根据获得的第一概率和第二概率中大于预设阈值的概率确定第二指纹集合,并将所述第二指纹集合中的索引指纹所代表的多个指纹与所述待存储数据块的指纹进行匹配,以获得匹配结果。通过本发明实施例提供的数据处理方法,在指纹匹配过程中,可以只将待存储数据块的指纹与获得的第二指纹集合中的索引指纹所代表的多个指纹进行匹配,而无需将待存储数据块的指纹与指纹库中的所有数据的指纹进行匹配,减少了指纹比对过程中数据的搬运量,提高了数据处理的效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例的附图。

图1为本发明实施例提供的一种存储系统的结构示意图;

图2为本发明实施例提供的一种指纹表的示意图;

图3为本发明实施例提供的一种数据处理方法的流程示意图;

图4为本发明实施例提供的一种存储系统的结构示意框图;

图5为本发明实施例提供的一种指纹索引表的示意图;

图6为本发明实施例提供的一种指纹表的索引指纹的示意图;

图7为本发明实施例提供的又一种存储系统的结构示意框图;

图8为本发明实施例提供的一种统计表的实现方式的示意图;

图9为本发明实施例提供的又一种统计表的实现方式的示意图;

图10为本发明实施例提供的一种备份服务器的结构示意框图。

具体实施方式

针对存储系统在进行指纹比对时消耗大量I/O资源,导致数据存储的效率较低的问题,本发明实施例提供一种数据处理方法、备份服务器及存储系统。下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。

为了便于理解本发明实施例提供的技术方案,下面首先介绍本发明实施例的一种应用场景。如图1所示,图1为本发明实施例提供的一种存储系统的结构示意图。存储系统10包括备份服务器11和多个存储器12,其中,存储器 12用于存储数据,备份服务器11用于确定待存储数据块是否为重复数据,以及调度存储器12对待存储数据块进行存储。存储系统10中存储有指纹(英文:Fingerprint;简称:FP)表,图2为指纹表的示意图,指纹表中保存有存储在存储器12的数据的指纹以及该数据的的存储位置。

存储系统10在接收到存储数据的请求后,备份服务器11将待存储数据块的指纹与指纹表中的指纹进行比对,如果在指纹表中检索到与待存储数据块的指纹相同的指纹,则表明待存储数据块为重复数据,存储系统不用再存储该数据块,只需更新其引用关系;反之,如果在指纹表中没有检索到与待存储数据块的指纹相同的指纹,则表明待存储数据块为新数据,存储系统将分配存储空间存储该数据块。

下面结合附图重点介绍本发明实施例提供的用于指纹比对的技术方案。

图3为本发明实施例提供的数据处理方法的流程示意图,该方法可以包括:

步骤101:根据指纹索引表中的索引指纹以及待存储数据块的指纹确定第一指纹集合,其中,第一指纹集合中包含有第一索引指纹、第二索引指纹,第一索引指纹用于代表第一指纹表中的多个指纹,第二索引指纹用于代表第二指纹表中的多个指纹,待存储数据块的指纹属于第一索引指纹所代表的多个指纹以及第二索引指纹所代表的多个指纹的指纹范围;

步骤102:根据第一索引指纹获得第一指纹表中包含有与待存储数据块的指纹相同的指纹的第一概率,并根据第二索引指纹获得第二指纹表中包含有与待存储数据块的指纹相同的指纹的第二概率,其中,第一概率是根据第一索引指纹代表的多个指纹确定的,第二概率是根据第二索引指纹代表的多个指纹确定的;

步骤103:根据第一概率和第二概率确定第二指纹集合,其中,第二指纹集合中至少包含有第一索引指纹,根据第一索引指纹确定的第一概率不小于预设阈值;

步骤104:获得第一索引指纹所代表的多个指纹与待存储数据块的指纹的 匹配结果。

本发明实施例中,步骤101~步骤104对应的数据处理方法可以有至少两种实施方式,下面分别予以介绍。

实施方式1

图4为实施方式1对应的存储系统20的结构示意图,存储系统20包括:备份服务器21以及多个存储器22。在实施方式1中,步骤101~步骤104由备份服务器21来执行。

其中,备份服务器21包括:处理器211、内存212、以及辅助存储器213,辅助存储器213包括处理单元214,因此,辅助存储器213具有运算能力。存储系统中的指纹表存储在辅助存储器213中,实际情况中,辅助存储器213的数量可以为1个,也可以为2个或以上。备份服务器21中存储有指纹索引表,指纹索引表具体可以存放在内存212之中,也可以存放在辅助存储器213之中,或者是备份服务器21的其它存储单元之中。

图5为指纹索引表的示意图,指纹索引表中保存有每个指纹表的至少两个索引指纹,每个索引指纹代表一个指纹表中的多个指纹,每个指纹表的所有索引指纹所代表的指纹之和即为该指纹表所包含的所有指纹。图5中的Ti表示第i指纹表,Li表示指纹表的第i索引指纹,例如,FP14为第1指纹表的第2索引指纹,其代表第1指纹表中中的FP14至FP17间(不包括FP17)的指纹,具体为FP14、FP15、FP16

实际情况中,每个指纹表中指纹可以根据指纹大小进行排列,图6为指纹表1对应的索引指纹的示意图,图6中的指纹FP1至FP9依次增大,可以将指纹表1的指纹分为FP1~FP3、FP4~FP6、FP7~FP9这3个部分,以FP1、FP4、FP7作为该指纹表的3个索引指纹,索引指纹表中的FP1代表指纹表中的FP1~FP3,索引指纹表中的FP4代表指纹表中的FP4~FP6,索引指纹表中的FP7代表指纹表中的FP7~FP9。由于FP1至FP9的指纹大小依次增大,所以索引指纹表中的FP1、FP4、FP7各自代表的多个指纹的指纹范围不重叠。

本发明实施例中,从索引指纹表中可以确定出每个索引指纹所代表的多个指纹的指纹范围,其实现方式可以为:其一,以指纹表中连续的多个指纹中的第一个指纹作为这部分指纹的索引指纹,可以根据指纹表对应的索引指纹中相邻的两个索引指纹确定出在前索引指纹代表的多个指纹的指纹范围,沿用图6的指纹表1,根据相连的索引指纹的FP1、FP4可以确定FP1代表的多个指纹的指纹范围为[FP1,FP4)。其二,索引指纹表中包含指纹范围属性,针对每个索引指纹保存其所代表的多个指纹的指纹范围。

步骤101中,备份服务器21的处理器211根据待存储数据块的指纹的大小,从指纹索引表确定出所代表的多个指纹的指纹范围包括待存储数据块的指纹的索引指纹,确定出的索引指纹的集合为第一指纹集合。

为了便于描述,本发明实施例中以第一指纹表、第二指纹表为例进行说明,但不能以此限定本发明实施例中存储系统中只包含有第一指纹表和第二指纹表,也不能限定本发明实施例中仅对指纹索引表中第一指纹表和第二指纹表对应的索引指纹进行步骤101的操作。实际情况中,针对每个指纹表对应的索引指纹均进行步骤101操作,由于每个指纹表的多个索引指纹各自对应的指纹范围不重叠,所以,针对每个指纹表,从其对应的多个索引指纹中至多可以确定出一个索引指纹。

然后,执行步骤102,备份服务器21确定出每个指纹表中包含与待存储数据块相同指纹的概率,由于步骤101中已经从每个指纹表中确定出对应的指纹范围包括待存储数据块的索引指纹,则该指纹表的其它索引指纹所代表的指纹中一定不包含待存储数据块的指纹,因此,第一指纹表中包含与待存储数据块相同指纹的概率,实质为步骤101中确定出的第一索引指纹代表的多个指纹中包含与待存储数据块相同指纹的概率,同理,第二指纹表中包含与待存储数据块相同指纹的概率,实质为步骤101中确定出的第二索引指纹代表的多个指纹中包含与待存储数据块相同指纹的概率。

具体实施时,处理器211将待存储数据块的指纹以及第一指纹集合中的索 引指纹发送至辅助存储器213,由辅助存储器213通过其处理单元214确定从第一指纹集合中的每个索引指纹所代表的多个指纹中检索到待存储数据块的指纹的概率,然后,辅助存储器213将确定出的概率值返回给处理器211。其中,辅助存储器213具体可以根据接收的索引指纹所代表的多个指纹的统计信息(如指纹在待存储数据块的指纹的数值附近的分布信息、指纹的值在各指纹维度下的频次统计信息,等等)来确定在索引指纹所代表的多个指纹中包含与待存储数据块的指纹相同的指纹的概率。

在备份服务器21包括两个或以上的辅助存储器213时,处理器可以只向辅助存储器213发送第一指纹集合中与该辅助存储器保存的指纹表相关的索引指纹。例如,备份服务器21包括第一辅助存储器和第二辅助存储器,其中,第一辅助存储器保存有第一指纹表,第二辅助存储器保存有第二指纹表,处理器211将待存储数据块的指纹以及第一索引指纹发送至第一辅助存储器,将待存储数据块的指纹以及第二索引指纹发送至第二辅助存储器。第一辅助存储器通过其处理单元确定出第一概率,并返回给处理器211;第二辅助存储器通过其处理单元确定出第二概率,并返回给处理器211。

然后,执行步骤103,备份服务器21根据接收到的从每个指纹表中检索到待存储数据块的指纹的概率,确定出第二指纹集合,第二指纹集合中包含第一指纹集合中满足预设条件的索引指纹,该预设条件为:在索引指纹代表的多个指纹中检索到待存储数据块的指纹的概率(即:步骤102中确定出的,存储该索引指纹代表的多个指纹的指纹表中包括与待存储数据块的指纹的指纹相同的指纹的概率)大于预设阈值。其中,预设阈值的值可以为0,即从第一指纹集合中剔除一部分索引指纹形成第二指纹集合,被剔除的索引指纹为在其代表的多个指纹中检索到待存储数据块的概率为0的这部分索引指纹。

例如,不妨设辅助存储器213返回给处理器211的在第二索引指纹代表的多个指纹中检索到待存储数据块的指纹的第二概率小于预设阈值,而在第一索引指纹代表的多个指纹中检索到待存储数据块的指纹的第一概率大于预设阈 值,则第一索引指纹包含在第二指纹集合之中,而第二索引指纹没有包含在第二指纹集合之中。

然后,执行步骤104,备份服务器21在第二指纹集合中的索引指纹代表的多个指纹中进行指纹比对,获得指纹比对结果,以此确定待存储数据块是否为重复数据。具体实施时,包括两种实现方式:其一,处理器211将辅助存储器213中保存的指纹表中的第二指纹集合中的索引指纹所代表的多个指纹读取到内存212中,然后在内存212中进行指纹的比对。其二,由辅助存储器213通过自身包含的处理单元214完成指纹的比对,即辅助存储器213通过自身的处理单元214将自身存储的指纹表中的、第二指纹集合中的索引指纹所代表的多个指纹读取到辅助存储器213的缓冲器中,进行指纹比对。其中,辅助存储器213的缓冲器可以是随机存储器(英语:Random Access Memory;简称:RAM),也可以为高速缓存(Cache)。由于通过辅助存储器213进行指纹比对时,无需进行数据的外部搬运,能够减少因数据搬运而产生的耗时。

实际情况中,步骤103中的预设阈值也可以为大于0的概率值,备份服务器21首先在根据大于0的预设阈值确定出的第二指纹集合中的索引指纹所代表的多个指纹中进行指纹比对,如果比对结果无法确认待存储数据块是否为重复数据,则备份服务器21在对应的概率值在(0,预设阈值)之间的索引指纹所代表的多个指纹中进行指纹比对。即,备份服务器先在概率较大的索引指纹代表的多个指纹中进行指纹比对,在比对结果无法确认待存储数据块的重复性时,再在概率较小的索引指纹代表的多个指纹中进行指纹比对,能够有效减少指纹比对的耗时。

指纹比对的另一种实现方式为:步骤103中预设阈值的值为0,确定对应的概率值大于0的索引指纹为第二指纹集合的元素,然后,备份服务器21可以对第二指纹集合中的索引指纹按其对应的概率值进行排序,处理器211在将第二指纹集合中的索引指纹代表的多个指纹读取到内存进行指纹检索时,根据索引指纹的概率值排序确定指纹读取的顺序。即,首先读取对应的概率值最大 的索引指纹所代表的多个指纹,在无法根据这部分指纹确定待存储指纹是否为重复数据后,再将概率值排在第二位的索引指纹代表的多个指纹读取到内存进行指纹比对。以此类推,直至检索到与待存储数据块的指纹相同的指纹;或者,确定在所有的概率值大于0的索引指纹所代表的多个指纹中均没有包含与待存储数据块的指纹相同的指纹。前一种情况表明待存储数据块为重复数据,后一种情况表明待存储数据块为新数据。

上述技术方案中,备份服务器21通过指纹索引表在每个指纹表中确定出一个索引指纹代表的多个指纹,该索引指纹代表的多个指纹的指纹范围包括待存储数据块的指纹的多个指纹,然后基于从每个指纹表中确定出的多个指纹进行下一步的指纹比对操作,减少了指纹搬运的工作量。不仅如此,针对每个指纹表计算在其(确定出的多个指纹)中检索到待存储数据块的指纹的概率,然后在概率不小于预设阈值的指纹表的确定出的多个指纹中进行指纹比对,减少指纹比对时指纹的搬运量,减少指纹比对的耗时,提高存储数据的效率。

实施方式2

图7为实施方式2对应的存储系统30的结构示意图,存储系统30包括:备份服务器31以及多个存储器32。在实施方式2中,步骤101~步骤104由备份服务器31来执行。

其中,存储器32用于存储数据块以及指纹表,指纹表的形式可以参照图5,存储器32存储的指纹表可以由存储在该存储器上的数据块对应的指纹信息所形成,存储器32存储的指纹表也可以与存储器32自身存储的数据块无关的其他数据块的指纹信息。备份服务器31包括处理器311以及内存312。备份服务器31中存储有指纹索引表,指纹索引表具体可以存放在内存312之中,也可以存放在备份服务器31的其它存储单元之中。

步骤101中,处理器311确定第一指纹集合的方式与前述处理器211确定第一指纹集合的方式相同,本发明实施例不予重复。

然后,备份服务器31执行步骤102,获得在每个指纹表(对应的属于第一 指纹集合的索引指纹代表的多个指纹)中检索到待存储数据块的指纹的概率。具体实现方式包括:其一,存储有指纹表的存储器32包含处理单元321,与备份服务器21获得概率值类似,备份服务器31可以将待存储数据块的指纹以及第一指纹集合中的索引指纹发送至存储器32,存储器32通过自身的处理单元321以及自身保存的指纹统计信息确定出上述概率值,然后将该概率值发送至备份服务器31。其二,处理器311将存储在存储器32上的指纹的统计信息读取到内存312中,处理器311自己根据存入内存312的统计信息确定上述概率值。

然后,备份服务器31执行步骤103,其实现方式与前述备份服务器21执行步骤103一致。

然后,备份服务器31执行步骤104,获得在第二指纹集合的索引指纹代表的多个指纹中对待存储数据块的指纹进行比对的结果。与前述备份服务器21执行步骤104类似,备份服务器31可以通过处理器311将存储在存储器32上的第二指纹集合中的索引指纹代表的多个指纹读取到内存中进行指纹比对,即指纹比对的工作由备份服务器31自己完成。此外,备份服务器31获得指纹比对结果的另一种方式为:备份服务器31将第二指纹集合中的索引指纹以及待存储数据块的指纹发送给存储器32,由存储器32通过自身的处理单元321在存储器32本地进行指纹比对,这种方式能够减少数据的搬运,而且多个存储器32之间能够以并行的方式进行指纹比对,能够提高指纹比对的效率。

根据步骤103~步骤104进行指纹比对的一种实现方式为:步骤103中预设阈值的值为0,确定对应的概率值大于0的索引指纹为第二指纹集合的元素,然后,备份服务器31可以对第二指纹集合中的索引指纹按其对应的概率值进行排序,处理器311在将第二指纹集合中的索引指纹代表的多个指纹读取到内存进行指纹检索时,根据索引指纹的概率值排序确定指纹读取的顺序。即,首先读取对应的概率值最大的索引指纹所代表的多个指纹,在无法根据这部分指纹确定待存储指纹是否为重复数据后,再将概率值排在第二位的索引指纹代表 的多个指纹读取到内存进行指纹比对。以此类推,直至检索到与待存储数据块的指纹相同的指纹;或者,确定在所有的概率值大于0的索引指纹所代表的多个指纹中均没有包含与待存储数据块的指纹相同的指纹。前一种情况表明待存储数据块为重复数据,后一种情况表明待存储数据块为新数据。

上述步骤101~步骤104的两种实现方式中,在指纹匹配过程中,可以只将待存储数据块的指纹与获得的第二指纹集合中的索引指纹所代表的多个指纹进行匹配,而无需将待存储数据块的指纹与指纹库中的所有数据的指纹进行匹配,减少了指纹比对过程中数据的搬运量,提高了数据处理的效率。

可选的,在存储系统20中的备份服务器21包含2个或以上的辅助存储器213时,指纹索引表中还可以包含第一索引指纹所属的第一指纹表的位置信息,即第一指纹表保存在哪个辅助存储器中的信息,备份服务器21执行步骤102时,处理器211只需根据第一索引指纹对应的位置信息定位出存储第一指纹表的辅助存储器,对应将第一索引指纹和待存储数据块的指纹发送至该辅助存储器,以使该辅助存储器确定在第一指纹表中包括待存储数据块的指纹相同的指纹的概率。

可选的,在存储系统30中,指纹索引表中还可以包含第一索引指纹所属的第一指纹表的位置信息,即保存有第一指纹表的第一存储器的标识,备份服务器31执行步骤102时,处理器311只需根据第一索引指纹对应的位置信息定位出第一存储器,对应将第一索引指纹和待存储数据块的指纹发送至第一存储器,以使第一存储器确定在第一指纹表中包括待存储数据块的指纹相同的指纹的概率。

在一种情况下,第一指纹表存储在多个存储器中的第一存储器中,第二指纹表存储在多个存储器中的第二存储器中。

步骤102中,根据第一索引指纹获得第一指纹表中包含有与待存储数据块的指纹相同的指纹的第一概率,实施时包括如下步骤:

将待存储数据块的指纹以及第一索引指纹发送至第一存储器;

接收第一存储器返回的第一概率,第一概率用于表示在第一索引指纹所代表的多个指纹中包含有与待存储数据块的指纹相同的指纹的概率。

在步骤102中,根据第二索引指纹获得第二指纹表中包含有与待存储数据块的指纹相同的指纹的第二概率,实施时包括如下步骤:将待存储数据块的指纹以及第二索引指纹发送至第二存储器;接收第二存储器返回的第二概率,第二概率用于表示在第二索引指纹所代表的多个指纹中包含有与待存储数据块的指纹相同的指纹的概率。

具体的,上述方式对应前述实施方式2中备份服务器31执行步骤102的情形,第一存储器以及第二存储器为两个存储器32,能够根据自身包含的处理单元321进行指纹比对。其具体实施方式在实施方式2中已经有详细描述,在此不再重复。

在另一种情况下,备份服务器包括辅助存储器,第一指纹表以及第二指纹表存储在辅助存储器中。

在步骤102中:根据第一索引指纹获得第一指纹表中包含有与待存储数据块的指纹相同的指纹的第一概率,并根据第二索引指纹获得第二指纹表中包含有与待存储数据块的指纹相同的指纹的第二概率,实施时包括如下步骤:

将待存储数据块的指纹以及第一索引指纹、第二索引指纹发送至辅助存储器;接收辅助存储器返回的在第一索引指纹所代表的多个指纹中包含有与待存储数据块的指纹相同的指纹的第一概率,以及在第二索引指纹所代表的多个指纹中包含有与待存储数据块的指纹相同的指纹的第二概率。

具体的,上述方式对应前述实施方式1中备份服务器21执行步骤102的情形,本实施例中的辅助存储器即为实施方式1中的辅助存储器213,能够根据自身包含的处理单元214进行指纹比对。其具体实施方式在实施方式1中已经有详细描述,在此不再重复。

可选的,本发明实施例中,第一指纹表中的每个指纹包含M位,每个M位指纹包含N个区间,N个区间中的每个区间包括M位中连续的S位,N个 区间中任意两个区间不重叠,N个区间的位数之和为M,N为大于或者等于2的自然数,S为自然数。通过上述设定,可以将指纹表中的每个指纹划分为N个区间,每个区间相当于一个指纹维度。例如,64比特(bit)的指纹可以划分为4维16bit的数值组成,即1bit~16bit为第一维,17bit~32bit为第二维,33bit~48bit为第三维,49bit~64bit为第四维。实际情况中,不限定每一维数值所占的比特数,也不限定所有维度所占的比特数均相同。

存储系统中存储有第一统计表,第一统计表包含有第一索引指纹所代表的多个指纹在N个区间的数值的统计信息。图8为一种第一统计表的示意图,不妨设第一索引指纹所代表的3个指纹分别为01020504H、01030504H、02030102H,每个指纹划分为4维,以01025004H为例,其四个指纹维度的值分别为1、2、5、4。第一统计表记录了每个维度中可能的数值在第一索引指纹所代表的多个指纹中相应维度中的出现频次,例如,数值“1”在第一维中出现的频次2,数值“2”在第一维中出现的频次1,数值“3”、“4”、“5”在第一维中出现的频次均为0。

第一概率的确定方式包括:根据第一统计表确定ai在第一索引指纹所代表的多个指纹的第i区间的数值中的出现频次ti,其中,ai为待存储数据块的指纹的第i个区间的数值,i的取值范围为1至N;根据获得的t1至tN中的最小值确定第一概率。

具体的,在前述存储系统20中,第一统计表可以存储在保存第一指纹表的辅助存储器213上,第一概率由该辅助存储器213通过自身的处理单元214所确定。例如,不妨设待存储数据块的指纹为01020404H,该指纹在四个指纹维度中的数值分别为1、2、4、4。计算在图5所示的表块中检索到该待检索指纹的概率指标的方式为:在表中第一维度中查找数值1的频次为2,在第二维度查找数值2的频次为1,在第三维度查找数值4的频次为0,在第四维度中查找数值4的频次为2,则概率指标为频次中的最小值0。

在前述存储系统30中,第一统计表可以存储在保存第一指纹表的存储器 32中,第一概率由该存储器通过其处理单元321所确定,具体确定方法与上述处理单元214根据第一统计表确定第一概率的方式相同。

实际情况中,第二概率也可以采用上述方式,利用指纹的统计表来进行确定,本发明实施例在此不再重复。

上述技术方案中,通过第一统计表来确定在第一索引指纹代表的多个指纹中检索到待存储数据块的指纹的第一概率,其实现方式简单,运算量小,耗时较少,且结果准确。

可选的,作为另一实施例,存储系统中存储有第一统计表,图9为另一种第一统计表的示意图,第一统计表包含第一索引指纹所代表的多个指纹的第一区间的数值的统计信息,以及第一索引指纹所代表的多个指纹的第二区间的数值的统计信息,第一区间为各指纹的第h位至第i位的区间,第二区间为各指纹的第j位至第k位的区间,其中,h、i、j、k均为自然数,h的值不大于i的值,j的值不大于k的值,第一区间和第二区间不重叠。

第一概率的确定方式包括:根据第一统计表确定a在第一索引指纹所代表的多个指纹的第一区间的数值中的出现频次t1以及b在第一索引指纹所代表的多个指纹的第二区间的数值中出现的频次t2,其中,a为待存储数据块的指纹的第h位至第i位的数值,b为待存储数据块的指纹的第j位至第k位的数值;根据t1和t2中的最小值确定第一概率。

实际情况中,确定第一概率的作用主要为从第一指纹集合中排除一部分索引指纹,这些被排除的索引指纹代表的多个指纹中包含与待存储数据块的指纹相同的指纹的概率为0。本发明实施例中,参照图9,第一统计表中只包含指纹的部分维度的统计信息,沿用第一索引指纹代表01020504H、01030504H、02030102H这3个指纹的例子,第一统计表中可以只保存第一维以及第三维的统计信息,不妨设待存储数据块的指纹为01020404H,其第三维为“4”,根据图9的第一统计表可以确定在第三维出现“4”的频次为0,表明在第一索引指纹代表的多个指纹中不包含待存储数据块的指纹。同理,本实施例中的第一 统计表可以保存在存储系统20的辅助存储器213之中,则第一概率由辅助存储器213根据其自身的处理单元214所确定。第一统计表也可以保存在存储系统30中的存储器32之中,则第一概率由存储器32自身的处理单元321所确定。

上述技术方案中,通过指纹的部分维度的统计信息来确定在第一索引指纹代表的多个指纹中检索到待存储数据块的指纹的第一概率,以从第一指纹集合中剔除部分对应的概率值为0的索引指纹,减少指纹比对时的数据搬运量,而且其实现方式简单,运算量小,耗时较少。

可选的,作为另一实施例,在第一指纹集合为空集合时,备份服务器21或备份服务器31确定待存储数据块为新数据。

可选的,作为另一实施例,在预设阈值为0时,在第二指纹集合为空集合时,备份服务器21或备份服务器31确定待存储数据块为新数据。

可选的,作为另一实施例,备份服务器在执行步骤101之前,还包括如下步骤:对待存储数据块的指纹进行指纹过滤,并确定通过指纹过滤无法判断待存储数据块的指纹是否为重复指纹。

具体的,备份服务器在从指纹表中检索待存储数据块的指纹之前,可以根据指纹过滤技术对待检索指纹进行预判,预判的结果包括三种,其一,确定指纹表中存在待存储数据块的指纹,待存储数据块为重复数据;其二,确定指纹表中不包含待存储数据块的指纹,待存储数据块为新数据;其三,无法断言指纹表中是否包含待存储数据块的指纹,只有在这种情况下,备份服务器才执行步骤101~步骤104。

具体实施时,可以采用布隆过滤器(Bloom Filter),或者局部性保持(英文:Locality Preserved Caching;简称:LPC)技术等指纹过滤技术,也可以采用两种或以上的指纹过滤技术的结合,例如,先采用布隆过滤器对指纹进行过滤,如果布隆过滤器无法判断待存储数据块的指纹是否为重复指纹,则进一步采用LPC技术进行过滤。指纹过滤技术的具体实现方式请参照现有技术,本 发明实施例不予详述。

上述技术方案中备份服务器先通过指纹过滤技术对待存储数据块的指纹进行预判,只有在不能预判待检索指纹的情况下,才执行步骤101~步骤104。通过指纹过滤技术能够大幅缩短部分指纹的比对耗时,提高备份服务器的性能。

可选的,在存储系统20中,指纹表的维护方式可以为:在内存212中实时创建新的指纹表,当确定出当前存储的指纹表中不包含待存储数据块的指纹时,确定待存储数据块为新数据,并将其指纹添加到内存实施创建的指纹表中,当内存中的指纹表的指纹数达到设定值后,将该指纹表存到辅助存储器213上。另外,将该指纹表对应的每个索引指纹添加到索引指纹表之中。再者,将该指纹表对应的每个索引指纹对应的多个指纹的维度值的统计表存到辅助存储器213上。

在采用上述方式维护指纹表时,备份服务器在进行指纹比对时,首先在内存中在创建的指纹表中进行比对,比对结果不能确定待存储数据块是否为重复指纹时,才执行步骤101~步骤104,在存储在内存之外的指纹表中进行指纹比对。

可选的,在存储系统30中,指纹表的维护方式可以为:在确定待存储数据块为新数据时,在保存该数据块的存储器32的指纹表中添加该数据块的指纹,然后,更新该指纹表的统计表。

需要说明的是,以上处理器211、处理器311、处理单元214以及处理单元321,可以是一个独立的处理器,也可以是多个处理元件的统称。例如,处理器211、处理器311、处理单元214以及处理单元321可以是中央处理器(英文:Central Processing Unit;简称:CPU),也可以是特定集成电路(英文:Application Specific Intergrated Circuit;简称:ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(英文:digital singnal processor;简称:DSP),或,一个或者多个现场可编程门阵列(英文: Field Programmable Gate Array;简称:FPGA)。

基于相同的发明构思,本发明实施例提供一种备份服务器40,应用于存储系统中,该存储系统包括备份服务器以及多个存储器,存储系统中存储有多个指纹表,多个指纹表中记录有已存储于多个存储器中的数据块的指纹。图10为备份服务器40的结构示意框图,备份服务器40包括:

确定模块41,用于根据指纹索引表中的索引指纹以及待存储数据块的指纹确定第一指纹集合,其中,第一指纹集合中包含有第一索引指纹、第二索引指纹,第一索引指纹用于代表第一指纹表中的多个指纹,第二索引指纹用于代表第二指纹表中的多个指纹,待存储数据块的指纹属于第一索引指纹所代表的多个指纹以及第二索引指纹所代表的多个指纹的指纹范围;

获得模块42,用于根据第一索引指纹获得第一指纹表中包含有与待存储数据块的指纹相同的指纹的第一概率,并根据第二索引指纹获得第二指纹表中包含有与待存储数据块的指纹相同的指纹的第二概率,其中,第一概率是根据第一索引指纹代表的多个指纹确定的,第二概率是根据第二索引指纹代表的多个指纹确定的;

确定模块41,还用于根据第一概率和第二概率确定第二指纹集合,其中,第二指纹集合中至少包含有第一索引指纹,根据第一索引指纹确定的第一概率不小于预设阈值;

处理模块43,用于获得第一索引指纹所代表的多个指纹与待存储数据块的指纹的匹配结果。

可选的,本发明实施例中,第一指纹表存储在多个存储器中的第一存储器中,第二指纹表存储在多个存储器中的第二存储器中;

获得模块42具体用于:将待存储数据块的指纹以及第一索引指纹发送至第一存储器;并接收第一存储器返回的第一概率,第一概率用于表示在第一索引指纹所代表的多个指纹中包含有与待存储数据块的指纹相同的指纹的概率;以及

将待存储数据块的指纹以及第二索引指纹发送至第二存储器;并接收第二存储器返回的第二概率,第二概率用于表示在第二索引指纹所代表的多个指纹中包含有与待存储数据块的指纹相同的指纹的概率。

可选的,本发明实施例中,备份服务器40还包括:

辅助存储器,用于存储第一指纹表以及第二指纹表;

获得模块42具体用于:将待存储数据块的指纹以及第一索引指纹、第二索引指纹发送至辅助存储器;接收辅助存储器返回的在第一索引指纹所代表的多个指纹中包含有与待存储数据块的指纹相同的指纹的第一概率,以及在第二索引指纹所代表的多个指纹中包含有与待存储数据块的指纹相同的指纹的第二概率。

可选的,本发明实施例中,辅助存储器还用于存储第一统计表,第一统计表包含第一索引指纹所代表的多个指纹的第一区间的数值的统计信息,以及第一索引指纹所代表的多个指纹的第二区间的数值的统计信息,第一区间为各指纹的第h位至第i位的区间,第二区间为各指纹的第j位至第k位的区间,其中,h、i、j、k均为自然数,h的值不大于i的值,j的值不大于k的值,第一区间和第二区间不重叠;

辅助存储器还用于:根据第一统计表确定a在第一索引指纹所代表的多个指纹的第一区间的数值中的出现频次t1以及b在第一索引指纹所代表的多个指纹的第二区间的数值中出现的频次t2,其中,a为待存储数据块的指纹的第h位至第i位的数值,b为待存储数据块的指纹的第j位至第k位的数值;并根据t1和t2中的最小值确定第一概率。

可选的,本发明实施例中,第一指纹表中的每个指纹包含M位,每个M位指纹包含N个区间,N个区间中的每个区间包括M位中连续的S位,N个区间中任意两个区间不重叠,N个区间的位数之和为M,N为大于或者等于2的自然数,S为自然数;辅助存储器中还用于存储第一统计表,第一统计表包含第一索引指纹所代表的多个指纹的N个区间的数值的统计信息;

辅助存储器还用于:根据第一统计表确定ai在第一索引指纹所代表的多个指纹的第i区间的数值中的出现频次ti,其中,ai为待存储数据块的指纹的第i区间的数值,i的取值范围为1至N,并根据所t1至tN中的最小值确定第一概率。

本实施例中的备份服务器40与图3对应的数据处理方法是基于同一发明构思下的两个方面,在前面已经对方法的实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施例中的备份服务器的40结构及实施过程,为了说明书的简洁,在此就不再赘述了。

基于相同的发明构思,本发明实施例中提供一种存储系统,包括备份服务器以及多个存储器,存储系统中存储有多个指纹表,多个指纹表中记录有已存储于多个存储器中的数据块的指纹。

该备份服务器用于:

根据指纹索引表中的索引指纹以及待存储数据块的指纹确定第一指纹集合,其中,第一指纹集合中包含有第一索引指纹、第二索引指纹,第一索引指纹用于代表第一指纹表中的多个指纹,第二索引指纹用于代表第二指纹表中的多个指纹,待存储数据块的指纹属于第一索引指纹所代表的多个指纹以及第二索引指纹所代表的多个指纹的指纹范围;

根据第一索引指纹获得第一指纹表中包含有与待存储数据块的指纹相同的指纹的第一概率,并根据第二索引指纹获得第二指纹表中包含有与待存储数据块的指纹相同的指纹的第二概率,其中,第一概率是根据第一索引指纹代表的多个指纹确定的,第二概率是根据第二索引指纹代表的多个指纹确定的;

根据第一概率和第二概率确定第二指纹集合,其中,第二指纹集合中至少包含有第一索引指纹,根据第一索引指纹确定的第一概率不小于预设阈值;

获得第一索引指纹所代表的多个指纹与待存储数据块的指纹的匹配结果。

可选的,本发明实施例中,第一指纹表存储在多个存储器中的第一存储器中,第二指纹表存储在多个存储器中的第二存储器中;备份服务器具体用于:

将待存储数据块的指纹以及第一索引指纹发送至第一存储器;以及接收第一存储器返回的第一概率,第一概率用于表示在第一索引指纹所代表的多个指纹中包含有与待存储数据块的指纹相同的指纹的概率;

将待存储数据块的指纹以及第二索引指纹发送至第二存储器;以及接收第二存储器返回的第一概率,第一概率用于表示在第二索引指纹所代表的多个指纹中包含有与待存储数据块的指纹相同的指纹的概率;

第一存储器具体用于:接收备份服务器发送的第一索引指纹以及待存储数据块的指纹,并确定在第一索引指纹代表的多个指纹中包含与待存储数据块的指纹相同的指纹的第一概率,并将第一概率发送至备份服务器;

第二存储器具体用于:接收备份服务器发送的第二索引指纹以及待存储数据块的指纹,并确定在第二索引指纹代表的多个指纹中包含与待存储数据块的指纹相同的指纹的第二概率,并将第二概率发送至备份服务器。

可选的,本发明实施例中,第一存储器上存储有第一统计表,第一统计表包含第一索引指纹所代表的多个指纹的第一区间的数值的统计信息,以及第一索引指纹所代表的多个指纹的第二区间的数值的统计信息,第一区间为各指纹的第h位至第i位的区间,第二区间为各指纹的第j位至第k位的区间,其中,h、i、j、k均为自然数,h的值不大于i的值,j的值不大于k的值,第一区间和第二区间不重叠;

第一存储器具体用于:

根据第一统计表确定a在第一索引指纹所代表的多个指纹的第一区间的数值中的出现频次t1以及b在第一索引指纹所代表的多个指纹的第二区间的数值中出现的频次t2,其中,a为待存储数据块的指纹的第h位至第i位的数值,b为待存储数据块的指纹的第j位至第k位的数值;

根据t1和t2中的最小值确定第一概率。

可选的,本发明实施例中,第一指纹表中的每个指纹包含M位,每个M位指纹包含N个区间,N个区间中的每个区间包括M位中连续的S位,N个 区间中任意两个区间不重叠,N个区间的位数之和为M,N为大于或者等于2的自然数,S为自然数;第一存储器上存储有第一统计表,第一统计表包含第一索引指纹所代表的多个指纹的N个区间的数值的统计信息;

第一存储器具体用于:根据第一统计表确定ai在第一索引指纹所代表的多个指纹的第i区间的数值中的出现频次ti,其中,ai为待存储数据块的指纹的第i区间的数值,i的取值范围为1至N;

根据所t1至tN中的最小值确定第一概率。

本实施例中的存储系统与图3对应的数据处理方法是基于同一发明构思下的两个方面,在前面已经对方法的实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施例中的存储系统的结构及实施过程,为了说明书的简洁,在此就不再赘述了。

本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

上述技术方案中,备份服务器通过指纹索引表在每个指纹表中确定出一个索引指纹代表的多个指纹,该索引指纹代表的多个指纹的指纹范围包括待存储数据块的指纹,然后基于从每个指纹表中确定出的多个指纹进行下一步的指纹比对操作,减少了指纹搬运的工作量。不仅如此,针对每个指纹表计算在其(确定出的多个指纹)中检索到待存储数据块的指纹的概率,然后在概率不小于预设阈值的指纹表的确定出的多个指纹中进行指纹比对,减少指纹比对时指纹的搬运量,减少指纹比对的耗时,亦即减少确定待存储数据块是否为重复数据块的时间,提高存储数据的效率。

本领域内的技术人员应明白,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变 形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本发明实施例还提供一种数据处理的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于执行前述任意一个方法实施例所述的方法流程。本领域普通技术人员可以理解,前述的存储介质包括:U盘、移动硬盘、磁碟、光盘、随机存储器(Random-Access Memory,RAM)、固态硬盘(Solid State Disk,SSD)或者非易失性存储器(non-volatile memory)等各种可以存储程序代码的非短暂性的(non-transitory)机器可读介质。

需要说明的是,本申请所提供的实施例仅仅是示意性的。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本发明实施例、权利要求以及附图中揭示的特征可以独立存在也可以组合存在。在本发明实施例中以硬件形式描述的特征可以通过软件来执行,反之亦然。在此不做限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1