会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 专利权 / 专利合作条约 / 第I章 / 国际申请 / 摘要 / 在重复数据删除系统中减少摘要存储消耗的方法和系统

在重复数据删除系统中减少摘要存储消耗的方法和系统

阅读:324发布:2021-02-24

IPRDB可以提供在重复数据删除系统中减少摘要存储消耗的方法和系统专利检索,专利查询,专利分析的服务。并且为了在计算环境下在使用处理器设备的重复数据删除系统中减少摘要存储消耗,为输入数据计算摘要值。将该摘要值用于定位与存储在中心库中的数据的匹配。将该摘要值存储在中心库中。删除确定与输入数据冗余的存储在中心库中的数据的摘要值。,下面是在重复数据删除系统中减少摘要存储消耗的方法和系统专利的具体信息内容。

1.一种在计算环境下在使用处理器设备的重复数据删除系统中减少摘要存储消耗的方法,包含:为输入数据计算摘要值;

将该摘要值用于定位与存储在中心库中的数据的匹配;

将该摘要值存储在中心库中;以及

删除确定与输入数据冗余的存储在中心库中的数据的摘要值。

2.如权利要求1所述的方法,进一步包括以数据中摘要值的出现顺序线性地将摘要值存储在中心库中。

3.如权利要求1所述的方法,进一步包括以这样的形式将摘要值存储在中心库中,该形式独立于存储摘要值所描述的数据的形式。

4.如权利要求1所述的方法,进一步包括将存储在中心库中、用于产生与输入数据的匹配的数据确定成与输入数据冗余。

5.如权利要求1所述的方法,进一步包括将输入数据的摘要值与存储在中心库中的摘要值匹配,以定位与存储在中心库中的数据的匹配。

6.如权利要求1所述的方法,进一步包括将输入数据划分成大数据块以及将大数据块分组成大块集。

7.如权利要求6所述的方法,进一步包括将摘要值存储在与大块集相对应的集合中,其中可以有效地存取和删除摘要值集合。

8.如权利要求1所述的方法,进一步包括删除冗余中心库数据的摘要,使摘要存储消耗与存储在中心库中的数据的加因子大小相联系,而不是与中心库中的总数据大小相联系。

9.一种在计算环境的重复数据删除系统中减少摘要存储消耗的系统,该系统包含:重复数据删除系统;

工作在该重复数据删除系统中的中心库;

可工作在计算存储环境中以便控制该重复数据删除系统的至少一个处理器设备,其中该至少一个处理器设备:为输入数据计算摘要值,

将该摘要值用于定位与存储在中心库中的数据的匹配,将该摘要值存储在中心库中,以及

删除确定与输入数据冗余的存储在中心库中的数据的摘要值。

10.如权利要求9所述的系统,其中该至少一个处理器设备以数据中摘要值的出现顺序线性地将摘要值存储在中心库中。

11.如权利要求9所述的系统,其中该至少一个处理器设备以这样的形式将摘要值存储在中心库中,该形式独立于存储摘要值所描述的数据的形式。

12.如权利要求9所述的系统,其中该至少一个处理器设备将存储在中心库中、用于产生与输入数据的匹配的数据确定成与输入数据冗余。

13.如权利要求9所述的系统,其中该至少一个处理器设备将输入数据的摘要值与存储在中心库中的摘要值匹配,以定位与存储在中心库中的数据的匹配。

14.如权利要求9所述的系统,其中该至少一个处理器设备将输入数据划分成大数据块以及将大数据块分组成大块集。

15.如权利要求14所述的系统,其中该至少一个处理器设备将摘要值存储在与大块集相对应的集合中,其中可以有效地存取和删除摘要值集合。

16.如权利要求9所述的系统,其中该至少一个处理器设备删除冗余中心库数据的摘要,使摘要存储消耗与存储在中心库中的数据的加因子大小相联系,而不是与中心库中的总数据大小相联系。

说明书全文

在重复数据删除系统中减少摘要存储消耗的方法和系统

技术领域

[0001] 本发明一般涉及计算机,尤其涉及在计算环境下在重复数据删除系统(data deduplication system)中减少摘要存储消耗。

背景技术

[0002] 在当今社会里,计算机系统是司空见惯的。在工作场所,在家里,或在学校都可以找到计算机系统。计算机系统可以包括数据存储系统或盘存储系统来处理和存储数据。每天都必须处理大量数据,当前的趋势暗示着在可预见的将来这些数量将继续日益增加。缓解该问题的有效途径是使用重复删除。重复删除系统所依据的概念是利用通过定位重复数据和只存储它的第一次出现,一而再地复制可用数据的大部分的事实。随后的副本用指向所存储出现的指针来取代,如果数据的确是重复的,则显著降低了存在要求。

发明内容

[0003] 在一个实施例中,提供了在计算环境下在使用处理器设备的重复数据删除系统中减少摘要存储消耗的方法。在一个实施例中,仅举例来说,为输入数据计算摘要值。将该摘要值用于计算与存储在中心库中的数据的匹配。将该摘要值存储在中心库中。删除确定与输入数据冗余的存储在中心库中的数据的摘要值。
[0004] 在另一个实施例中,提供了在计算环境下,在使用处理器设备的重复数据删除系统中减少摘要存储消耗的计算机系统。该计算机系统包括计算机可读介质和可操作地与该计算机可读介质通信的处理器。在一个实施例中,仅举例来说,该处理器为输入数据计算摘要值。将该摘要值用于计算与存储在中心库中的数据的匹配。将该摘要值存储在中心库中。删除(remove)确定与输入数据冗余的存储在中心库中的数据的摘要值。
[0005] 在进一步的实施例中,提供了在计算环境下,在使用处理器设备的重复数据删除系统中减少摘要存储消耗的计算机程序产品。该计算机可读存储介质含有存储在上面的计算机可读程序代码部分。该计算机可读程序代码部分包括为输入数据计算摘要值的第一可执行部分。将该摘要值用于计算与存储在中心库中的数据的匹配。将该摘要值存储在中心库中。删除确定与输入数据冗余的存储在中心库中的数据的摘要值。
[0006] 除了前面的示范性方法实施例之外,还提供了其它示范性系统和计算机产品实施例,它们也具有相关优点。提供前面的总结是为了以简化形式介绍下面在详细描述中作进一步描述的构思的选择。这个总结无意标识要求保护的主题的关键特征或基本特征,也无意用于帮助确定要求保护的主题的范围。要求保护的主题不限于解决在背景技术中所述的任何或所有缺点的实现。

附图说明

[0007] 为了易于了解本发明的优点,将参照例示在附图中的特定实施例给出上面简述的本发明的更具体描述。当明白这些图形是描绘本发明的实施例,因此不认为是限制其范围时,将使用附图以另外的特征和细节描述和说明本发明,在附图中:
[0008] 图1是例示含有可以实现本发明的各个方面的示范性存储设备的计算系统环境的框图;
[0009] 图2是例示可以实现本发明的各个方面的计算机系统中的数据存储系统的硬件结构的框图;
[0010] 图3是例示在可以实现本发明的各个方面的重复数据删除系统中在重复删除处理中根据相似搜索进行摘要检索的示范性方法的流程图;
[0011] 图4是例示在可以实现本发明的各个方面的重复数据删除系统中在重复删除处理中根据相似搜索进行摘要检索的示范性可替代方法的流程图;
[0012] 图5是例示在可以实现本发明的各个方面的重复数据删除系统中,使用滚动散列值的单次线性计算有效计算相似搜索值和摘要块的边界两者的示范性方法的流程图;
[0013] 图6是例示包含可以实现本发明的各个方面的每个大块集的记录的紧缩数据结构的框图;
[0014] 图7是例示在可以实现本发明的各个方面的重复数据删除系统中减少摘要存储消耗的示范性方法的流程图;
[0015] 图8是例示在可以实现本发明的各个方面的重复数据删除系统中减少摘要存储消耗的可替代示范性方法的流程图;以及
[0016] 图9是例示在可以实现本发明的各个方面的重复数据删除系统中,为了从中心库中删除与大块集相联系的摘要,按大块集跟踪当前在相似搜索结构中的相似元素的数量的示范性方法的流程图。

具体实施方式

[0017] 重复数据删除在计算存储系统中是高度重要和充满活力的领域。重复数据删除指的是减少和/或消除冗余数据。在重复数据删除中,将可以是文件、数据流、或一些其它形式的数据的数据对象分解成称为大块或块的一个或多个部分。在重复数据删除过程中,分别减少或消除数据的重复副本,留下数据的最少量冗余副本或单个副本。重复数据删除系统的目标是存储重复数据的单个副本,实现这一目标所面临的挑战是在通常大型的中心库中有效寻找重复数据模式,并以存储划算重复删除形式存储数据模式。重复删除存储系统中的重大挑战是可伸缩地支持数据的巨大中心库。这样的大型中心库可以达到拍字节(150
拍字节=2 字节)或更大的规模。支持这样中心库规模的重复删除存储系统必须提供在中心库中寻找重复数据模式的有效处理,其中用实现重复删除的资源消耗来度量有效性(该资源可以是CPU循环、RAM存储、持久性存储、联网等)。在一个实施例中,重复删除存储系统可以基于保留称为指纹或摘要的数值的搜索优化索引,其中一个(小)指纹代表中心库中的一个(较大)块数据。指纹值可以是根据块的数据计算的保密散列值。在一个实施例中,可以使用作为保密散列函数一族的安全散列算法(SHA),例如,SHA-1或SHA-256。使用索引查找表识别指纹匹配使得能够存储对已存在于中心库中的数据的引用。
[0018] 为了在这种做法中提供合理的重复删除,生成指纹所基于的数据块的平均尺寸必须限于较小尺寸而不得过大。数据块内位的变化将概率性地改变数据块的相应指纹,因此含有大数据块的原因使该方案与含有小块相比对数据的更新更敏感。取决于应用的类型和工作负荷,典型的数据块尺寸的范围可以从4KB到64KB。因此,仅举例来说,小数据块的范围可以直到64KB的尺寸,而大数据块是尺寸大于64KB的那些数据块。
[0019] 为了支持可伸缩到拍字节的巨大中心库(例如,可伸缩到至少一个拍字节的中心库),与指纹的尺寸(范围在16个字节与64个字节之间)耦合存储的指纹的数量大得惊人。例如,对于1拍字节的重复删除数据,4KB平均数据块尺寸,以及32字节指纹尺寸(例如,SHA-256),存储指纹所需的存储是8太字节。为这样体量的指令保留搜索优化数据结构是困难的,需要优化技术。但是,现有优化技术无法在保持性能的同时可伸缩到这些尺寸。由于这个原因,为了提供合理性能,支持的中心库必须相对较小(数十TB的数量级)。即使对于这样的较小尺寸,由于指纹索引的大尺度,也会引起相当大的挑战和运行时成本,这给重复删除处理带来瓶颈。
[0020] 为了解决这个问题,在一个实施例中,重复删除系统可以基于在重复删除期间搜索数据模式的两步做法。在第一步中,在中心库中从大块输入数据(例如,几兆字节)中搜索现有数据的相似(而不是相同)大数据块,相应地将输入大数据块划分成区间并与相应(相似)中心库区间配对。在第二步中,将逐个字节匹配算法应用在相似区间对上,以识别已存储在数据的中心库中的相同子区间。第二步的匹配算法依赖于读取中心库中的所有相关相似数据,以便逐个字节地将它与输入数据相比较。
[0021] 然而,源于作为第二步的匹配算法的基础的数据的逐个字节比较的问题是为了比较的目的,应该从中心库中读取与输入数据大致相同的数据。例如,每秒处理1GB输入数据的系统为了逐个字节比较,应该从中心库中每秒大约读取1GB的数据。这要求存储中心库数据的存储设备具有相当高的每秒I/O(输入/输出)能力,这又使它们的成本增加。
[0022] 信息技术与上面的问题一致的另外趋势如下:(1)通过提高CPU(中央处理单元)速度和增加CPU内核的数量提高计算能力;以及(2)在盘吞吐量保持相对恒定或只适度提高的同时,提高盘密度。这意味着相对于数据容量存在较少的主轴,因此实际上使总吞吐量减少。由于上述的问题,需要设计出无需从中心库中高速/大体量读取、要并入上述的两步重复删除系统实施例中的可替代解决方案。
[0023] 因此,仅举例来说,另外的实施例解决了这个问题,以及从盘到CPU的转移资源消耗,以便从上面的趋势中获益。本文所述的实施例被并入上述的两步和可伸缩重复删除实施例中,在重复删除期间使用相似搜索把重点放在摘要的查找表上。在一个实施例中,将全局相似搜索用作把重点放在对最有可能与输入数据匹配的中心库数据的摘要的搜索上的基础。
[0024] 本文所述的实施例显著降低了基本盘所要求的每秒I/O能力,从计算能力和盘密度的提高中受益,以及相当大地降低了处理的成本,以及维护成本和环境额外开销(例如,功耗)。
[0025] 在一个实施例中,将输入数据分段成小段(例如,4KB),并为每个这样的段计算摘要(加密散列值,例如,SHA1)。首先,将如上所述的相似搜索算法应用在输入的大块数据(例如,16MB)上,并寻找中心库中最相似参考数据的位置。然后将这些位置用于查找相似参考数据的摘要。以与它们在数据中的出现相对应的形式存储和检索包含在中心库中的所有数据的摘要。给定包含在中心库中的数据的一部分的位置,在中心库中有效地定位和检索数据的相关摘要。接着,将这些参考摘要装载到存储器中,并取代比较数据来寻找,匹配输入摘要和装载的参考摘要。
[0026] 因此,在一个实施例中,重复数据删除系统的新基本做法将首先基于逐个节点数据比较、后面接着搜索相同匹配段的可伸缩两步做法与有效得多和成本划算的基于摘要/指纹匹配算法合并,这使得可以只读取以前要求的体量的一小部分(例如,1%)。借助于本文所述的当前新发明,重复删除系统在获得了相当大的附加效率,提高了性能和降低了基本硬件的成本的同时,保持了其对巨大数据中心库的独特可伸缩性。
[0027] 在一个实施例中,仅举例来说,术语“相似数据”可能指的是:对于任何给定输入数据,将与输入数据相似的数据定义成与输入数据几乎相同(即,不完全相同但至少50%相似)的数据。从二进制的角度(视角)观看数据,这意味着相似数据是大多数字节与输入数据相同(即,不完全相同但至少50%相似)。
[0028] 在一个实施例中,仅举例来说,术语“相似搜索”可能指的是对数据的中心库中与输入数据相似的数据的搜索过程。在一个实施例中,这个过程可以使用内部保留和搜索的、相似元素的搜索结构来进行。
[0029] 在一个实施例中,仅举例来说,术语“相似元素”指的是可以根据数据计算的和有助于对数据的中心库中与输入数据相似的数据的全局搜索的计算元素。一般说来,计算一个或多个相似元素,它们代表大块(例如,至少16MB)数据。
[0030] 因此,本文所述的各种实施例为在计算环境下,在使用处理器设备的重复数据删除系统中,在重复删除处理中基于相似搜索的摘要检索提供了各种解决方案。在一个实施例中,仅举例来说,将输入数据划分成固定尺寸大数据块。为每个固定尺寸大数据块计算相似元素、摘要块边界和摘要值。在数据的中心库中每个固定尺寸大数据块从包含相似元素的搜索结构(即,索引)中搜索匹配相似元素。定位中心库中相似数据的位置。将相似数据的位置用于定位和向存储器装载中心库中的相似数据的所存储摘要值和相应所存储摘要块边界。应该注意到,在一个实施例中,该位置可以是物理的或逻辑的(即,虚拟的)。该位置属于数据的中心库内部的数据。“位置”的重要性质是,给定中心库的数据的位置(物理的或逻辑的),就可以有效地定位和存取那个位置中的数据。将输入数据的摘要值和相应摘要块边界与所存储摘要值和相应所存储摘要块边界匹配以寻找数据匹配。
[0031] 因此,本文所述的各种实施例为在计算环境下,在使用处理器设备的重复数据删除系统中,在重复删除处理中基于相似搜索的摘要检索提供了各种解决方案。在一个实施例中,仅举例来说,将输入数据划分成固定尺寸大数据块。为每个固定尺寸大数据块计算相似元素、摘要块边界和摘要值。在数据的中心库中每个固定尺寸大数据块从包含相似元素的搜索结构(即,索引)中搜索匹配相似元素。在中心库中定位相似数据的位置。将相似数据的位置用于定位和向存储器装载中心库中的相似数据的所存储摘要值和相应所存储摘要块边界。将输入数据的摘要值和相应摘要块边界与所存储摘要值和相应所存储摘要块边界匹配以寻找数据匹配。
[0032] 在一个实施例中,本发明提供了为了有效的重复删除处理,利用相似搜索将相关摘要从中心库装载到存储器中的解决方案。在重复数据删除系统中,通过将数据划分成大固定尺寸块,以及对于每个大块,计算相似元素、摘要块和相应摘要值进行重复删除。该重复数据删除系统从相似元素的搜索结构中搜索匹配相似元素,并在中心库中寻找相似数据的位置。该重复数据删除系统使用相似数据的这些位置来定位和向存储器装载相似中心库数据的所存储摘要,然后匹配输入数据和中心库摘要值以寻找数据匹配。
[0033] 在一个实施例中,本发明为使用滚动散列值的单次线性计算,有效计算相似搜索元素和摘要块的分段(即,边界)两者创造了条件。在重复数据删除系统中,将数据划分成大块,以及对于每个大块,计算一组滚动散列值。滚动散列值的单线性扫描产生了相似搜索元素和大块的摘要块的分段两者。每个滚动散列值以字节偏移量对应于字节的相继窗口。相似搜索元素用于在中心库中搜索相似数据。摘要块分段用于为摘要匹配计算大块的摘要值。将每个滚动散列值贡献给相似元素的计算和摘要块分段的计算。在贡献给计算之后丢弃每个滚动散列值。
[0034] 因此,如上所述,本发明的重复删除做法在重复删除期间将两步过程用于搜索数据模式。在第一步中,在中心库中从大块输入数据(例如,16兆字节“MB”)中搜索现有数据的相似(而不是相同)大块,相应地将输入大块划分成区间并与相应(相似)中心库区间配对。用在第一步中的相似搜索结构(或“索引”)是紧缩的,易于在内部保留和搜索,因为用于相似搜索的元素相对于它们所代表的数据是非常紧缩的(例如,16字节代表4兆字节)。除了相似元素的计算之外,进一步包括在第一步中的是输入大块数据的摘要段和各自摘要值的计算。所有这些计算都基于滚动散列值的单次计算。在第二步中,检索相似中心库区间的参考摘要,然后将输入摘要与参考摘要匹配以识别数据匹配。
[0035] 基于相似重复删除所引起的严重问题是存储在中心库中的摘要所消耗的存储空间的大小。在一个实施例中,对于基于相似的重复删除,使用相对较小平均摘要段尺寸(例如,1KB-2KB)。究其原因有两方面。首先,小摘要段尺寸有显著的好处:在重复删除期间能够达到较高分辨率;对数据的修改较不敏感;以及在每个数据失配的边缘能够较不丧失重复删除潜力。由于这些原因,小摘要段尺寸改善了重复删除结果。其次,在基于相似的重复删除中,没有摘要值所锁定的巨大索引。而是,存在紧缩相似搜索结构。对于大中心库通常不能支持小摘要段尺寸的这样摘要索引的缺乏使基于相似重复删除做法能够对于相当大中心库也支持小摘要段尺寸。
[0036] 支持小摘要段尺寸的能力使基于相似重复删除做法能够具有明显超过其它重复删除做法的优点。在相似重复删除做法中,以独立于存储这些摘要所描述的数据的重复删除形式的线性形式,以及以它们出现在数据中的顺序存储摘要。这种存储方法能够独立于表示重复删除存储形式的分段地有效检索摘要的线性部分,因此降低了输入/输出(I/O)和计算资源消耗。但是,虽然在这种手段中对摘要的检索是有效的,但所存储摘要消耗的存储量相当大,可能是大得惊人。
[0037] 为了例示摘要消耗的大存储量,考虑如下例子:假设1KB的平均摘要段尺寸、大小32字节(例如,SHA-256)的摘要值和大小8字节的位置字段,则摘要将消耗它们所描述的数据的3.90625%。考虑1:8的因子比(factoringratio)和1:2的压缩比(两者在备份环境中是常见的),则摘要将消耗它们所描述的物理数据的8×2×3.90625%=62.5%的额外物理存储空间。因此,例如,对于物理大小1024TB的所存储数据,摘要消耗的额外物理存储空间将是640TB。这显然是大得惊人的。这样,对于基于相似的重复删除做法,这是不成则败的问题。因此,需要一种解决方案能够在基于相似的重复删除系统中降低摘要消耗的存储。在一个实施例中,本文描述了在保持摘要消耗的存储相当低的同时,提供小摘要段尺寸的所有益处的解决方案。
[0038] 在一个实施例中,在本文所述的基于相似重复删除做法中,将输入数据流划分成大块(例如,具有16MB的尺寸),并在两个主要步骤中处理每个大块。在第一步中,应用相似搜索过程,寻找中心库中最相似参考数据的位置。在这个步骤内,根据滚动散列值的单次线性计算,为输入大块计算相似搜索元素和摘要段边界两者。根据产生的分段为输入大块计算摘要值,并以它们出现在输入数据中的顺序存储在存储器中。然后将相似数据的位置用于查找相似参考数据的摘要,并且也以顺序形式将这些摘要装载到存储器中。然后,将输入摘要与参考摘要匹配以形成数据匹配。
[0039] 当完成输入大块数据的重复删除时,将与输入大块数据相联系的摘要存储在中心库中,用作随后输入数据的参考摘要。以独立于存储这些摘要所描述的数据的重复删除形式的线性形式,以及以它们出现在数据中的顺序存储摘要。这种存储方法能够独立于表示重复删除存储形式的分段地有效检索摘要的部分,因此降低了I/O和计算资源消耗。但是,如前所述,在没有适当解决方案的情况下,摘要的存储消耗将大得惊人。
[0040] 因此,如本文所述,本发明所依据的关键概念是,如果存储在中心库中的摘要可与中心库中的数据的加因子大小相联系,而不是与中心库中的总(也表示成额定)数据大小相联系,则摘要消耗的空间是可持续的。在上面的例子中,如果存储的摘要与数据的加因子大小相联系,则摘要将消耗物理存储空间的2×3.90625%=7.8125%,而不是62.5%。在这个例子中节省了54.6875%的物理存储空间。就是说,对于1024TB物理中心库大小,总存储节省是560TB。物理中心库大小的存储节省百分比的公式是:((1/因子比)-1)×(1/压缩比)×摘要比。
[0041] 此刻,需要一种解决方案来解决如何将存储的摘要转变成与中心库中的数据的加因子大小相联系(而不是与额定数据大小相联系)的问题。为了解决这个问题,引入了进一步的关键解决方案。在一个实施例中,当完成大块输入数据的重复删除时,在对中心库数据的重复删除过程内形成的匹配是已知的。在备份环境中,随后输入数据与最近提取摘要数据形成高度匹配的概率比随后输入数据与已经与最近提取摘要数据匹配的中心库数据形成高度匹配的概率高得多。由于这个原因,可以从相似搜索结构中删除已经与最近提取摘要数据匹配的中心库数据的相似元素,以便在进一步的相似搜索过程中不产生对这样数据的引用。因此,本发明的关键解决方案是,通过删除与最近提取摘要数据匹配的数据的摘要,使存储在中心库中的摘要与中心库中独特的数据模式的大小相联系,或换句话说,使存储在中心库中的摘要与中心库中加因子数据的大小(而不是额定数据的大小)相联系。
[0042] 在一个实施例中,本发明提供了另外有益性质。借助于本发明,存储节省结果是可预见的,因为这些结果取决于确定性摘要数据比以及取决于可以预测的因子比和压缩比。这有助于更简单的存储管理。另一种有益性质是本发明的运行时成本极低。这是因为已匹配的中心库数据的跟踪、和摘要的删除顺序在基于相似的重复删除中是有效操作。
[0043] 因此,在一个实施例中,本发明降低了与加因子中心库大小相联系的摘要消耗的存储空间,它是如果与额定中心库大小相联系则将消耗的原存储空间的一小部分。这种解决方案解决了基于相似重复删除中的关键存储问题。在一个实施例中,本发明在保持重复删除系统的可伸缩性和效率的同时,能够获得小摘要段尺寸的重复删除好处。
[0044] 在一个实施例中,本发明删除冗余中心库数据的摘要,使摘要存储消耗与中心库中的数据的加因子大小相联系,而不是与中心库中的总(额定)数据大小相联系。在一个实施例中,仅举例来说,重复删除过程包括为输入数据计算摘要值。将该摘要值用于定位与存储在中心库中的数据的匹配。将该摘要值存储在中心库中。删除确定与输入数据冗余的存储在中心库中的数据的摘要值。以它们出现在数据中的顺序线性地将输入摘要值存储在中心库中。以这样的形式将输入摘要值存储在中心库中,该形式独立于存储摘要值所描述的数据的形式。将用于产生与输入数据的匹配的中心库数据确定为与输入数据冗余。
[0045] 在一个实施例中,本发明将额定数据划分成大块(例如,具有16KB的尺寸),并将大块分组成表示成大块集的预定个大块的集合。在一个实施例中,本发明跟踪与中心库中的每个大块集相联系、当前在相似搜索结构中的相似元素的数量,当特定大块集的这个数量低于阈值时,从中心库中删除与那个大块集相联系的摘要。在一个实施例中,仅举例来说,重复删除过程包括为输入数据计算摘要,并将所述摘要存储在与大块集相对应的集合中。为输入数据计算相似元素,并将相似元素存储在相似搜索结构中。对于每个大块集,保留当前包含在相似搜索结构中、与大块集相联系的相似元素的数量。当特定大块集的这个数量低于阈值时,从中心库中删除与那个大块集相联系的摘要集。
[0046] 在一个实施例中,大块集是非重叠的,涵盖所有大块。将相似元素用于寻找与输入数据相似的中心库数据,将输入摘要和中心库摘要用于计算数据匹配。从相似搜索结构中删除与最近提取摘要数据匹配的中心库数据的相似元素。对于包含所匹配中心库数据的每个大块集,从相似搜索结构中与大块集相联系的相似元素的保留数量中减去从那个大块集的相似搜索结构中删除的相似元素的数量。
[0047] 现在转到图1,图中描绘了计算系统环境的示范性架构10。计算机系统10包括与通信端口18和存储器件16连接的中央处理单元(CPU)12。通信端口18与通信网络20通信。通信网络20和存储网络可以配置成与服务器(主机)24和可以包括存储设备14的存储系统通信。存储系统可以包括可以以独立盘冗余阵列(RAID)配置的硬盘驱动器(HDD)设备、固态设备(SSD)等。如下所述的操作可以在存储设备14上执行,存储设备14可以处在系统10中或其它地方,可以含有与其它CPU设备12独立和/或结合工作多个存储器件16。存储器件16可以包括像电可擦除可编程只读存储器(EEPROM)那样的存储器或相关器件的主机。存储器件16和存储设备14经由信号承载介质与CPU12通信。另外,CPU12通过通信端口18与含有附在上面的多个另外计算机主机系统24的通信网络20。另外,存储器件
16和CPU12可以内置和包括在计算系统10的每个组件中。每个存储系统还可以包括结合在一起或作为独立存储器件16和/或CPU12工作的独立和/或不同存储器件16和CPU12。
[0048] 图2是示出按照本发明的计算机系统中的数据存储系统的硬件结构的示范性框图。图中示出了主计算机210,220,225,每一台起作为数据存储系统200的一部分进行数据处理的中央处理单元的作用。群集主机/节点(物理或虚拟设备)210,220和225可以是数据存储系统200中完成本发明的目的的一个或多个新物理设备或逻辑设备。在一个实施例中,仅举例来说,数据存储系统200可以实现成 Protec 重复删除系统TM
TS7650G 。网络连接260可以是光纤通道Fabric架构、光纤通道点到点链路、以太网上光纤通道Fabric架构或点到点链路、FICON或ESCON I/O接口、任何其它I/O接口类型、无线网络、有线网络、LAN、WAN、各向异性的、各向同性的、公用的(即,互联网)、专用的、或它们的组合体。主机210,220和225可以是局部的或分布在一个或多个地点中,可以装备像光纤通道、FICON、ESCON、以太网、光纤、无线、或同轴适配器那样,到存储控制器240的任何类型的Fabric架构(或光纤通道)(未显示在图2中)或网络适配器260。数据存储系统200相应地装备适当Fabric架构(未显示在图2中)或网络适配器260以便进行通信。数据存储系统200在图2中被描绘成包含存储控制器240和群集主机210,220和225。群集主机210,
220和225可以包括群集节点。
[0049] 为了促进人们更清楚地理解本文所述的方法,存储控制器240在图2中被显示成包括微处理器242、系统存储器243和非易失性存储(“NVS”)216的单个处理单元。要注意的是,在一些实施例中,存储控制器240由多个处理单元组成,每一个带有它们自己的处理器复合体和系统存储器,并通过数据存储系统200内的专用网络互连。存储230(在图2中标为230a,230b和230n)可以由像存储阵列那样的一个或多个存储设备组成,该存储设备与存储控制器240连接(通过存储网络),以及一个或多个群集主机210,220和225与每个存储控制器240连接。
[0050] 在一些实施例中,包括在存储230中的设备可以以循环架构连接。存储控制器240管理存储230,并促进旨在用于存储230的写入和读取请求的处理。存储控制器240的系统存储器243存储处理器243可以为了执行本发明的功能和方法步骤而加以存取以便如本文所述运行和管理存储230的程序指令和数据。在一个实施例中,系统存储器243包括执行本文所述的方法和操作的操作软件250,与其相联系,或与其通信。如图2所示,系统存储器243还可以包括用于存储230、本文也称为“高速缓冲存储器”、用于缓冲分别指写入/读取请求和它们的相关数据的“写入数据”和“读取数据”的高速缓存245,或与其通信。在一个实施例中,高速缓存245被分配在系统存储器243外部的设备中,但微处理器242仍然可存取,并且除了进行如本文所述的操作之外,还可以用于提供抵抗数据损失的额外安全性。
[0051] 在一些实施例中,高速缓存245利用易失性存储器和非易失性存储器来实现,经由局部总线(未显示在图2中)与微处理器242耦合,以便提高数据存储系统200的性能。包括在数据存储控制器中的NVS216可由微处理器242存取,用于提供对如在其它图形中所述的本发明的操作和执行的额外支持。NAV216也可以称为“永久”高速缓存、或“高速缓冲存储器”,利用可以利用或可以不利用外部电力的非易失性存储器来实现,以便保留存储在其中的数据。对于适合实现本发明的目的的任何用途,NVS可以存储在高速缓存245中或与高速缓存245一起存储。在一些实施例中,像蓄电池那样的备用电源(未显示在图2中)将足够的电力供给NVS216,以便在数据存储系统200断电的情况下保留存储在其中的数据。
在某些实施例中,NVS216的容量小于等于高速缓存245的总容量。
[0052] 存储230在物理上可以由像存储阵列那样的一个或多个存储设备组成。存储阵列是像硬盘那样的单独存储设备的逻辑分组。在某些实施例中,存储230由JBOD(简单盘捆绑)阵列或RAID(独立盘冗余阵列)阵列组成。可以进一步组合一批物理存储阵列以形成将物理存储与逻辑配置分离的队列。可以将阵列中的存储空间分配给定义规定在写入/读取请求中的存储地点的逻辑卷。
[0053] 在一个实施例中,仅举例来说,如图2所示的存储系统可以包括逻辑卷,或简称为“卷”,可以具有不同类型的分配。存储230a,230b和230n在数据存储系统200中被显示成队列,本文称为队列230a,230b和230n。队列可以在数据存储系统200本地,或可以处在物理远地点。换句话说,本地存储控制器可以与远程存储控制器连接,管理远程地点上的存储。队列230a被显示成由两个完整卷234和236,以及一个部分卷232a构成。队列230b被显示成具有另一个部分卷232b。因此,卷232跨过队列230a和230b地分配。队列230n被显示成完全分配给卷238—也就是说,队列230n指的是卷238的整个物理存储。从上面的例子中可以懂得,一个队列可以被配置成包括一个或多个部分和/或完整卷。卷和队列可以进一步划分成代表存储的固定块的所谓“轨道”。一个轨道因此与给定卷相联系和可以赋予给定队列。
[0054] 存储控制器240可以包括重复数据删除模块255、相似索引模块257(例如,相似搜索结构)、和相似搜索模块259。重复数据删除模块255、相似索引模块257、和相似搜索模块259可以结合存储控制器240、主机210,220和225、和存储设备230的每个组件来工作。重复数据删除模块255、相似索引模块257、和相似搜索模块259在结构上可以是一个完全模块或可以与其它单独模块相联系和/或包括在其中。重复数据删除模块255、相似索引模块257、和相似搜索模块259也可以处在高速缓存245或其它组件中。
[0055] 存储控制器240包括控制与主计算机210,220,225的光纤通道协议的控制开关241、控制所有存储控制器240的微处理器242、存储控制存储控制器240的操作的微程序(操作软件)250的非易失性控制存储器243、用于控制的数据、临时存储(缓冲)数据的高速缓存245、和帮助高速缓存245读取和写入数据的缓冲器245,控制开关241用于控制协议以便控制到或从可能设置了信息的存储设备230、重复数据删除模块255、相似索引模块
257、和相似搜索模块259的数据传送。可以利用本发明实现多个缓冲器244以帮助如本文所述的操作。在一个实施例中,群集主机/节点210,220,225和存储控制器240通过作为接口的网络适配器(可以是光纤通道)260,即,经由叫做“Fabric架构”的至少一个交换机连接。
[0056] 在一个实施例中,主计算机或一个或多个物理或虚拟设备210,220,225、和存储控制器240通过作为接口的网络(可以是光纤通道)260,即,经由叫做“Fabric架构”的至少一个交换机连接。在一个实施例中,将描述显示在图2中的系统的操作。微处理器242可以控制存储器243来存储来自主设备(物理或虚拟)210的命令信息和识别主设备(物理或虚拟)210的信息。控制开关241、缓冲器244、高速缓存245、操作软件250、微处理器242、存储器243、NVS216、重复数据删除模块255、相似索引模块257、和相似搜索模块259可以相互通信,并且可以是分开的或一个单独组件。此外,像操作软件250那样的组件即使不是全部,也有几个包括在存储器243内。对于适合本发明的用途,所示的设备内的每个组件可以链接在一起并可以相互通信。如上所述,重复数据删除模块255、相似索引模块257、和相似搜索模块259也可以处在高速缓存245或其它组件中。这样,可以根据存储架构和用户偏好按需使用重复数据删除模块255、相似索引模块257、和相似搜索模块259。
[0057] 如上所述,在一个实施例中,将输入数据划分成大固定尺寸块(例如,16MB),并对每个输入大块应用相似搜索过程。相似搜索过程根据数据的输入大块,计算也可以称为相似元素的紧缩相似元素,并在中心库中搜索存储在紧缩搜索结构(即,索引)中的匹配相似元素。按数据的每个大块存储的相似元素的尺寸通常是32个字节(在大块尺寸是几兆字节的情况下),因此使存储相似元素的搜索结构非常紧缩,易于在内部保留和搜索。
[0058] 通过对大块的数据计算滚动散列值,即,以字节偏移量在字节的每个相继窗口内产生滚动散列值,然后将特定散列值和相关位置(未必是这些散列值的精确位置)选成大块的相似元素来计算相似元素。
[0059] 本发明提供的一个重要方面和创新是在计算方面是昂贵操作的滚动散列值的单次线性计算用作计算大块的相似元素(用于相似搜索)和大块数据到摘要块的分段(用于寻找精确匹配)两者的基础。将每个滚动散列值加入相似元素的计算中以及加入摘要块分段的计算中。在加入两种计算中之后,可以丢弃滚动散列值,因为存储滚动散列值的需要降到最低程度或消失了。这种算法元素使效率显著提高并使CPU消耗显著降低,以及使性能得到相当大提高。
[0060] 在一个实施例中,本发明的相似搜索过程产生两种类型的输出。第一种类型的输出是中心库中最相似参考数据的一组位置。第二种类型的输出是输入大块的摘要,其由摘要块的分段和与摘要块相对应的摘要值组成,其中摘要值是根据摘要块的数据计算的。
[0061] 在一个实施例中,以与摘要在数据中的出现相对应的形式将摘要存储在中心库中。给定中心库中的位置和数据的一部分的尺寸,有效地确定与数据的那个区间相对应的摘要在中心库中的地点。然后将通过相似搜索过程产生的位置用于查找相似参考数据的所存储摘要,并将这些参考摘要装载到存储器中。然后,不是比较数据,而是将输入摘要与装载的参数摘要匹配。该匹配过程通过将参考摘要装载到存储器中摘要的紧缩搜索结构中,然后对于每个输入摘要,就那个摘要值的存在性查询摘要的搜索结构。摘要的搜索结构中的搜索根据摘要值来进行。如果发现匹配,则确定在中心库中找到与那个摘要相联系的输入数据,并根据中心库中参考摘要的位置确定中心库中输入数据的位置。在这种情况下,记录输入摘要涵盖的输入数据与匹配参考摘要涵盖的中心库数据之间的等同性。如果未发现匹配,则确定在中心库中未找到与那个摘要相联系的输入数据,将其记录成新数据。在一个实施例中,相似搜索结构是相似元素的全局搜索结构,摘要的存储器搜索结构是存储器中摘要的局部搜索结构。
[0062] 图3是例示在可以实现本发明的各个方面的重复数据删除系统中在重复删除处理中根据相似搜索进行摘要检索的示范性方法300的流程图。启动方法300(步骤302)。方法300将输入数据划分成大数据块(步骤304)。可以将输入数据划分成固定尺寸大数据块。方法300为每个大数据块计算相似元素、摘要块边界、和相应摘要值(步骤306)。方法300为每个大数据块(可以是固定尺寸大数据块)在搜索结构(即,索引)中搜索匹配相似元素(步骤308)。定位中心库(例如,数据的中心库)中相似数据的位置(步骤310)。方法
300将相似数据的位置用于定位和向存储器装载中心库中的相似数据的所存储摘要值和相应所存储摘要块边界(步骤312)。方法300将输入数据的摘要值和相应摘要块边界与所存储摘要值和相应所存储摘要块边界匹配以寻找数据匹配(步骤314)。结束方法300(步骤
316)。
[0063] 图4是例示在可以实现本发明的各个方面的重复数据删除系统中在重复删除处理中根据相似搜索进行摘要检索的示范性可替代方法400的流程图。启动方法400(步骤402)。方法400将输入数据划分成大块(例如,将输入数据划分成大固定尺寸块)(步骤404),以及对于输入大数据块,根据输入大数据块的数据计算滚动散列值、相似元素、摘要块边界、和摘要值(步骤406)。方法400在相似搜索结构(即,索引)中搜索输入大数据块的相似元素(步骤408和410)。方法400确定是否存在足够或充分数量的匹配相似元素(步骤
412)。如果未找到足够的匹配相似元素,则方法400确定在中心库中未为输入大数据块找到相似数据,将输入大块的数据存储在中心库中(步骤414),然后结束方法400(步骤438)。
如果找到足够的相似元素,则对于在中心库中找到的每个相似数据区间,方法400确定中心库中每个相似数据区域的位置和大小(步骤416)。方法400定位中心库中代表相似数据区间的摘要(步骤418)。方法400将这些摘要装载到存储器中摘要的搜索数据结构中(步骤420)。方法400确定是否存在另外的相似数据区间(步骤422)。如果是,则方法400返回到步骤416。如果否,则方法400考虑输入大数据块的每个摘要(步骤424)。方法400确定在摘要的存储器搜索结构中是否存在摘要值(步骤426)。如果是,则方法400记录摘要涵盖的输入数据与具有匹配摘要值的中心库数据之间的等同性(步骤428)。如果否,则方法
400记录在中心库中未找到摘要涵盖的输入数据(步骤430)。从步骤428和430两者中,方法400确定是否存在输入大数据块的另外摘要(步骤432)。如果是,则方法400返回到步骤
424。如果否,则方法400从相似搜索结构中删除中心库中匹配数据的相似元素(步骤434和步骤410)。方法400将输入大数据块的相似元素加入相似搜索结构中(步骤436)。结束方法400(步骤438)。
[0064] 图5是例示在可以实现本发明的各个方面的重复数据删除系统中,使用滚动散列值的单次线性计算有效计算相似搜索值和摘要块的边界两者的示范性方法500的流程图。启动方法500(步骤502)。方法500将输入数据划分成大数据块(步骤504)。该大数据块可以是固定尺寸大数据块。方法500在输入数据中以字节偏移量考虑字节的每个相继窗口(步骤506)。方法500确定是否存在字节的另外相继窗口要处理(步骤508)。如果是,则方法500根据字节的相继窗口的数据计算滚动散列值(步骤510)。方法500将滚动散列值贡献给相似值的计算和摘要块分段(即,摘要块边界)的计算(步骤512)。方法500丢弃滚动散列值(步骤514),并返回到步骤506。如果否,则方法500决定计算相似元素和摘要块分段,得出输入数据的最终相似元素和摘要块分段(步骤516)。方法500根据摘要块分段计算摘要值,其中对每个摘要块指定相应摘要值(步骤518)。将相似元素用于在中心库中搜索相似数据(步骤520)。将该摘要块和相应摘要值用于与存储在中心库中的摘要块和相应摘要值匹配,以确定中心库中与输入数据相同的数据(步骤522)。结束方法500(步骤524)。
[0065] 现在转到图6-9,将额定数据划分成大块(例如,具有16MB的尺寸),并将大块分组成表示成大块集的预定个大块的集合。大块集是非重叠的,涵盖所有大块。一个集合中大块的数量至少1个,但通常被定义成较大,例如,16个大块(因此,在本例中,大块集代表256MB的数据)。大块集的意义有两方面。首先,对于每个大块集,保留相关信息以便能够确定要删除的摘要。其次,以对应于大块集的物理集合将摘要存储在中心库中。也就是说,对于每个大块集,存在存储在中心库中的相关摘要集。当需要时,可以有效地定位,检索和删除这些摘要集,其架构例示在下面的图6中。
[0066] 图6是例示包含可以实现本发明的各个方面的每个大块集的记录的紧缩数据结构600的框图。表示成大块集数据结构606的紧缩数据结构600包含每个大块集602的记录608,其中每个记录608(大块集A,B,C和D的记录)包括大块集的标识符610、和当前包含在相似搜索结构中、与大块集602相联系的相似元素612的数量。例如,大块集602的记录例示了大块集标识符(ID),以及大块集A含有Na个相似元素,大块集B含有Nb个相似元素,大块集C含有Nc个相似元素,和大块集D含有Nd个相似元素。如上所述,摘要604(例示成604A和604B)以与大块集602相对应的物理集合存储在中心库中。也就是说,对于每个大块集602,存在存储在中心库中的相关摘要集604。当需要时,可以有效地定位,检索和删除这些摘要集604。考虑每个记录16个字节(没有任何紧缩),那么,在上面的例子中,对于每个16MB的数据,这种数据结构包含1个字节,这是非常紧缩的。例如,对于1PB物理存储的中心库和1:16(即,16PB的额定数据)的重复删除比,这种数据结构的规模是1GB。
[0067] 在一个实施例中,在输入大块集中的大块的重复删除处理期间,在存储器中保留为大块集中的大块插入相似搜索结构中的相似元素的数量的记录。当完成大块集的重复删除处理时,为大块集插入相似搜索结构中的相似元素的总数因此是已知的。此刻,将包含大块集的标识符、和为大块集插入相似搜索结构中的相似元素的数量的记录加入大块集数据结构中。
[0068] 进一步,在大块集的重复删除处理期间,在存储器中保留一个附加信息。这个信息是包含当前大块集中的大块的重复删除过程产生数据匹配所基于的中心库区间的中心库大块集的列表。对于与输入大块匹配的每个中心库区间,它的包含大块集的标识符是已知的。对于产生的每个数据匹配,重复删除过程计算出现在中心库数据的匹配部分中的相似元素,然后从相似搜索结构中删除这些相似元素。然后在为当前大块集保留的列表中更新对于包含匹配中心库数据的每个中心库大块集,从相似搜索结构中删除的相似元素的总数。也就是说,列表中的每个项目包含与当前大块集匹配的包含中心库数据的大块集的标识符,以及从相似搜索结构中删除(通过当前大块集的重复删除过程)的中心库大块集的相似元素的数量。
[0069] 当完成当前大块集的重复删除处理时,扫描中心库大块集的列表,然后,对于每个项目,从大块集数据结构(例示在图6中)中为特定大块集记录的相似元素的数量中减去为那个特定中心库大块集(在项目中指定)从相似搜索结构中删除的相似元素的数量。这种相减的结果是相似搜索结构中那个特定大块集的相似元素的当前数量。在大块集数据结构内在大块集的记录中更新这个数量。通过应用这个过程,大块集数据结构中相关大块集的记录现在反映相似搜索结构中每个大块集的相似元素的更新数量。在这个过程内,评估正在处理的每个中心库大块集的相似元素的所得数量。如果这个数量低于预定义阈值,则确定相似搜索结构中那个中心库大块集的表示足够低,因此该过程着手从中心库中删除与那个大块集相联系的摘要。这样就使存储在中心库中的摘要的大小保持与加因子数据大小相联系。将每个中心库大块集的相似元素的所得数量与之比较的阈值可以是每个中心库大块集特有的,而不是对于所有大块集都是固定的。这个阈值可以通过按大块集插入的相似元素的初始数量的百分比来指定。
[0070] 在一个实施例中,如图7所例示,本发明删除冗余中心库数据的摘要,使摘要存储消耗与中心库中的数据的加因子大小相联系,而不是与中心库中的总(额定)数据大小相联系。在一个实施例中,仅举例来说,重复删除过程包括为输入数据计算摘要值。将输入数据的摘要值和存储在中心库中的数据的所存储摘要值用于定位与所存储数据的匹配。将输入数据的摘要值存储在中心库中。删除确定与输入数据冗余的存储在中心库中的数据的摘要值。以它们出现在数据中的顺序线性地将输入数据的摘要值存储在中心库中。以这样的形式将输入数据的摘要值存储在中心库中,该形式独立于存储这些摘要值所描述的数据的形式。将用于产生与输入数据的匹配的中心库数据确定为与输入数据冗余。
[0071] 图7是例示在可以实现本发明的各个方面的重复数据删除系统中减少摘要存储消耗的示范性方法700的流程图。换句话说,方法700为在重复数据删除系统中删除冗余中心库数据的摘要,使摘要存储消耗与中心库中的数据的加因子大小相联系,而不是与中心库中的总(额定)数据大小相联系创造了条件。启动方法700(步骤702)。方法700为输入数据计算摘要值(步骤704)。方法700使用输入数据的摘要值和存储在中心库中的数据的所存储摘要值来定位与所存储数据的匹配(步骤706)。方法700将输入数据的摘要值存储在中心库中(步骤708)。方法700删除确定与输入数据冗余的存储在中心库中的数据的摘要值(步骤710)。结束方法700(步骤712)。
[0072] 图8是例示在可以实现本发明的各个方面的重复数据删除系统中减少摘要存储消耗的可替代示范性方法800的流程图。通过将输入数据划分成大数据块以及将大数据块分组成大数据块集(步骤804)启动方法800(步骤802)。方法800进行输入大数据块集的重复删除处理,并更新有关将相似元素插入相似搜索结构中和从相似搜索结构中删除相似元素的信息(步骤806)。在步骤806内的处理期间,方法800为输入大块集保留插入相似搜索结构中的相似元素的数量的记录(步骤810),并保留与其形成数据匹配的中心库大块集的列表,其中列表中的每个项目包括从相似搜索结构中删除的相关大块集的相似元素的数量(步骤812)。接着,方法800完成输入大块集的重复删除,并在大块集数据结构(步骤814)中更新(步骤808)为当前输入大块集插入相似搜索结构中的相似元素的数量(步骤810)。方法800然后确定在步骤812的列表中是否存在另外项目(步骤816)。如果否,则结束方法800(步骤826)。如果是,则方法800从大块集数据结构中为特定大块集记录的相似元素的数量中减去为那个特定中心库大块集从相似索引中删除的相似元素的数量,并在步骤818的大块集数据结构内更新大块集的项目中的结果(步骤818)。方法800然后确定相似元素的所得数量是否低于预定义阈值(步骤820)。如果否,则方法800返回到步骤816。
如果是,则方法800从在步骤824中存储摘要的中心库中删除与大块集相联系的摘要(步骤
822)。方法800然后返回到步骤816。如果步骤816上的回答是否,则结束方法800(步骤
826)。
[0073] 图9是例示在可以实现本发明的各个方面的重复数据删除系统中,为了从中心库中删除与大块集相联系的摘要,跟踪当前在相似搜索结构中的大块集的相似元素的数量的示范性方法900的流程图。换句话说,方法900为跟踪与每个中心库大块集相联系、当前在相似搜索结构中的相似元素的数据,以及当特定大块集的这个数量低于阈值(例如,预定阈值)时,在重复删除系统中从中心库中删除与那个大块集相联系的摘要创造了条件。启动方法900(步骤902)。方法900将输入数据划分成大数据块,并将大数据块分组成大数据块集(步骤904)。方法900为输入数据计算摘要,并将摘要存储在与大块集相对应的集合中(步骤906)。方法900为输入数据计算相似元素,并将相似元素存储在相似搜索结构中(步骤908)。方法900为每个大块集保留当前包含在相似搜索结构中、与大块集相联系的相似元素的数量(步骤910)。然后,当特定大块集的这个数量低于阈值时,从中心库中删除与那个大块集相联系的摘要集(步骤912)。然后结束方法900(步骤914)。
[0074] 所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0075] 可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0076] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0077] 下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0078] 也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。也可以将计算机程序指令装载到计算机、其它可编程数据处理装置、或其它设备上使一系列操作步骤在计算机、其它可编程数据处理装置、或其它设备上得到执行,形成计算机实现过程,以便在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
[0079] 图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用