CN102016789B - 数据处理装置和处理数据的方法 - Google Patents
数据处理装置和处理数据的方法 Download PDFInfo
- Publication number
- CN102016789B CN102016789B CN200880128811.2A CN200880128811A CN102016789B CN 102016789 B CN102016789 B CN 102016789B CN 200880128811 A CN200880128811 A CN 200880128811A CN 102016789 B CN102016789 B CN 102016789B
- Authority
- CN
- China
- Prior art keywords
- inventory
- input
- block
- data
- sample data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一个实施例是一种数据处理装置,其具有:包含样本数据块的块储存器;包含多个清单的清单储存器,其中每个清单表示先前处理的数据的至少一部分并包括到所述样本数据块中的至少一个的至少一个引用以及包含关于仅仅某些样本数据块的信息的稀疏块索引。输入数据被处理成多个输入数据段。第一组的每个清单具有到与第一输入数据段的输入数据块之一相对应的所述样本数据块之一的至少一个引用。通过使用所识别的第一组清单和在处理先前数据时识别的至少一个清单来识别对应于第一输入数据段的其他输入数据块的样本数据块。
Description
技术领域
本发明总体上涉及数据存储,并且更特别地,涉及用于存储数据的数据处理装置。
背景技术
保持在主数据存储介质上的数据可以被备份到辅助数据存储介质。辅助数据存储介质可以在与主数据存储介质不同的位置上。如果在主数据存储介质上存在至少部分数据丢失,则可以从辅助数据存储介质恢复数据。辅助数据存储介质可以包含在一段时间内存储在主数据存储介质上的数据的历史。在用户请求时,辅助数据存储介质可以给用户提供在指定的时间点存储在主数据存储介质上的数据。
可以每周、每天、每小时、或以其他间隔执行数据备份程序。可以以增量方式备份数据,其中,只有自上一次备份以来对主数据介质上的数据进行的改变被转移到辅助数据存储介质。还可以执行完全备份,其中,主数据介质的全部内容被拷贝到辅助数据介质。存在许多其他备份策略。
当备份数据时,被备份数据的特定部分先前可能已被存储到主数据存储介质,当执行完全备份时情况可能尤其如此。将相同的数据存储许多次表示数据存储介质的低效使用。
发明内容
因此,本发明提供一种数据处理装置,包括:
块(chunk)储存器,其包含样本数据块,
包含多个清单的清单(manifest)储存器,每个清单表示先前处理的数据的至少一部分并包括到所述样本数据块中的至少一个的至少一个引用,
稀疏块索引,其包含关于仅仅某些样本数据块的信息,
该处理装置在操作中用于:
将输入数据处理成多个输入数据段,每个输入数据段由输入数据块组成;
识别第一组清单,其中,第一组中的每个清单具有到与第一输入数据段的输入数据块之一相对应的并且在所述稀疏块索引中包含有关于其的信息的所述样本数据块之一的至少一个引用;
通过使用所识别的第一组清单和在处理先前数据时识别的至少一个清单来识别对应于第一输入数据段的其他输入数据块的样本数据块。
在一个实施例中,所述稀疏块索引包含关于具有预定特性的样本数据块的信息。
在一个实施例中,所述数据处理装置在操作中用于将第一输入数据段的输入数据块与由在处理先前数据时识别的该至少一个清单或所识别的第一组清单中的至少一个所引用的样本数据块相比较,以识别与第一输入数据段的输入数据块相对应的样本数据块。
在一个实施例中,所述数据处理装置在操作中用于生成用于至少某些输入数据块和至少某些样本数据块的块标识符;以及将所生成的输入数据块的块标识符与所生成的被引用样本数据块的块标识符相比较。
在一个实施例中,所述数据处理装置还包括高速缓冲存储器,该装置在操作中用于将所述识别的第一组清单中的至少一个存储在高速缓冲存储器中。
在一个实施例中,所述高速缓冲存储器在操作中用于存储在顺序处理多个输入数据段时识别的清单。
在一个实施例中,所述数据处理装置在操作中用于将所述识别的第一组清单和在处理先前数据时识别的所述至少一个清单排列优先次序(prioritise)。
在一个实施例中,优先次序排列标准至少部分地基于每个清单所包含的到与第一输入数据段的输入数据块相对应的并且在所述稀疏块索引中包含有关于其的信息的样本数据块的引用的数目。
在一个实施例中,在对处理先前数据时识别的该至少一个清单排列优先次序的标准至少部分地基于在处理该先前数据时该至少一个清单的优先次序排列。
在一个实施例中,优先次序排列标准至少部分地基于每个清单何时被添加到清单储存器。
在一个实施例中,优先次序排列标准至少部分地基于每个清单当前是否被保持在所述高速缓冲存储器中。
在一个实施例中,所述数据处理装置在操作中用于选择被排列优先次序的清单中的至少一个以识别与第一输入数据段的所述其他输入数据块相对应的样本数据块。
在一个实施例中,所述数据处理装置在操作中用于在后续操作期间对所识别的第一组清单和在处理先前数据时所识别的该至少一个清单重新排列优先次序。
在一个实施例中,所述数据处理装置在操作中用于按照每个所选的被排列优先次序的清单的优先次序排列的递降顺序来对其进行处理,直至已满足预定条件为止。
在一个实施例中,所述数据处理装置在操作中用于按每个所选的被排列优先次序的清单的优先次序排列的递降顺序来对其进行处理,直至已满足当前正在处理的清单的预定条件为止。
在一个实施例中,所述数据处理装置在操作中用于:如果该装置未能确定在所述块储存器中存在对应于块储存器中的输入数据块的样本数据块,则将该输入数据块存储为样本数据块。
本发明还提供了数据处理装置,其包括:
块储存器,其包含样本数据块,
包含多个清单的清单储存器,其中每个清单表示先前处理的数据的至少一部分并包括到所述样本数据块中的至少一个的至少一个引用,
稀疏块索引,其包含关于仅仅某些样本数据块的信息,
所述处理装置在操作中用于:
将输入数据处理成多个输入数据段,每个输入数据段由输入数据块组成;
识别第一组清单,其中,第一组中的每个清单具有到与第一输入数据段的输入数据块相对应的并且在所述稀疏块索引中包含有关于其的信息的样本数据块的引用;
检索具有到与先前处理的数据的至少一个输入数据块相对应的样本数据块的引用的清单,
使用所识别和所检索的清单来识别与第一输入数据段的其他输入数据块相对应的样本数据块。
在一个实施例中,先前处理的数据的该至少一个输入数据块是先前处理的数据的输入数据段的输入数据块的预定部分。
在一个实施例中,先前处理的数据的输入数据段在输入数据中紧接在所述第一输入数据段前面。
在一个实施例中,先前处理的数据的输入数据段的所述预定部分包括在输入数据中紧接在第一输入数据段前面的输入数据块。
本发明还提供一种数据处理器,其在操作中用于:
将输入数据处理成输入数据块,该输入数据块被布置成输入数据段;
对于给定的输入数据段而言,选择具有预定特性的该输入数据段的至少某些输入数据块,
编辑来自清单储存器的候选清单的列表,该列表包括:
具有到与所选输入数据块中的至少一个相对应的样本数据块的引用的至少一个清单;和
在处理输入数据的至少一个其他段时识别的至少一个清单;以及
对候选清单排列优先次序并进行处理以识别与被处理的输入数据段的其他输入数据块相对应的样本数据块。
本发明还提供一种使用如下部件来处理数据的方法:
块储存器,其包含样本数据块,
包含多个清单的清单储存器,其中每个清单表示先前处理的数据的至少一部分并包括到所述样本数据块中的至少一个的至少一个引用;以及
稀疏块索引,其包含关于仅仅某些样本数据块的信息,
所述方法包括:
将输入数据处理成多个输入数据段,每个输入数据段由输入数据块组成;
识别第一组清单,其中,第一组中的每个清单具有到与第一输入数据段的输入数据块之一相对应的并且在所述稀疏块索引中包含有关于其的信息的所述样本数据块之一的至少一个引用;以及
使用所识别的第一组清单和在处理先前数据时所识别的至少一个清单来识别与第一输入数据段的其他输入数据块相对应的样本数据块。
在一个实施例中,所述方法包括:
将第一输入数据段的输入数据块与由在处理先前数据时所识别的至少一个清单或所识别的第一组清单中的至少一个所引用的样本数据块相比较。
在一个实施例中,所述方法包括:
基于预定标准将所述识别的第一组清单和在处理先前数据时所识别的所述至少一个清单排列优先次序。
本发明还提供了数据处理装置,包括:
块储存器,其包含样本数据块,
包含多个清单的清单储存器,其中每个清单表示先前处理的数据的至少一部分并包括到所述样本数据块中的至少一个的至少一个引用,
稀疏块索引,其包含关于仅仅某些样本数据块的信息,
所述处理装置在操作中用于:
对于第一输入数据段,识别具有到与第一输入数据段的输入数据块之一相对应的并且在所述稀疏块索引中包含有关于其的信息的所述样本数据块之一的至少一个引用的清单;
在处理第二输入数据段时使用所述识别的清单中的至少一个来识别与第二输入数据段的输入数据块相对应的样本数据块。
附图说明
现在将参照附图仅仅以示例的方式描述本发明的实施例,在附图中:
图1示出数据段的示意性表示;
图2示出体现本发明的数据处理装置的示意性表示;
图3示出在使用中的图2的数据处理装置的示意性表示;
图4示出另外两个数据段的示意性表示;
图5示出图1和4的数据段的示意性表示;
图6示出体现本发明的方法的流程图。
具体实施方式
图1示出数据段1的示意性表示。数据段1可以比图1所示的更短或更长。数据段1包括一定量的数据,其可以约为10字节、1000字节、10KB或许多兆字节或百万兆字节。数据段可以表示用于给定备份操作的数据的至少一部分。数据段可以是数据集中的许多个之一。
备份数据集可以包括连续数据流或不连续数据流。无论哪一个,数据集都可以包含许多不同的单独文件或文件部分。数据集可能不被划分成其包含的单独文件。数据集可以包含嵌入信息,其包括到包含在数据集中的单独文件的边界的引用。然后可以更容易地将数据集分割成其组成部分。嵌入信息的大小可以表示总数据的相当一部分。备份具有嵌入文件信息的数据增加了数据存储介质的所需容量。
体现本发明的数据处理装置在操作中用于将输入数据处理成一个或多个输入数据块。可以如上所述将输入数据集划分成多个输入数据段。所述段的每一个被划分成多个输入数据块。每个输入数据块可以表示单独的文件、单独文件的一部分、输入数据集内的单独文件的群组、或若干单独文件加上若干其他文件的部分。可以基于输入数据作为整体的属性将数据集处理成输入数据块,而与包含在其中的单独文件具有极少关系或没有关系。数据块的边界与文件边界可以具有共同边界或可以不具有共同边界。数据块的尺寸可以是相同或变化的。类似地,可以基于输入数据集作为整体的属性或基于输入数据块的属性和/或数目将数据集处理成段。所述段的尺寸也可以是相同或变化的。可以首先将数据集分段,然后将每个段处理成数据块,或者反之亦然。
图1举例说明被处理成数据块2的输入数据段1的示意性表示。为方便起见,在图1中从A~H对每个唯一的输入数据块加标签。出于本申请的目的,当确定块是否是唯一的时,我们仅考虑其内容(即产生该块的数据段1中的字节序列),而不是其在输入数据段或数据集中的位置或定位。请注意,对于本示例而言,数据段1中的第一和第四块具有相同的内容并因此被分配相同的标签。数据段1中的重复的数据可以产生反复的输入块2。输入数据段1可以被划分成与图1中所示的那些相比更多或不同的输入数据块2。输入数据段1在尺寸上可以是许多百万兆字节,并且可以被处理成数十亿个输入数据块。存在本领域的技术人员可用来确定如何将输入数据段1处理成输入数据块2和每个输入数据块2包含哪些信息的特定方案。
图2示出体现本发明的数据处理装置3。数据处理装置3包括块储存器4、清单储存器5和稀疏块索引8。清单储存器5可以与块储存器4分立并分开,但储存器4、5两者可以驻留于公共有形数据存储介质或存储装置上。在图2所示的示例中,块储存器4、清单储存器5和稀疏块索引8尚不包含任何数据或信息。现在将描述如何将数据和信息填充在块储存器4、清单储存器5和稀疏块索引8中的每一个中。
当由体现本发明的数据处理装置3来处理输入数据段1时,如果数据处理装置3确定尚不存在对应的样本数据块6,则每个输入数据块2被作为样本数据块6存储到块储存器4。图3示出已处理图1的输入数据段之后的数据处理装置3的示意性表示。应认识到在本示例中,由于首先处理的是输入数据段1,所以所有唯一的输入数据块将被作为样本数据块6(即,B、C、D、E、F、G和H中的每一个的一个但输入数据块A的两次发生的仅仅一个)添加到块储存器4。然而,在后续操作中,可以确定输入数据块与已存储在块储存器4中的样本数据块6等同;在这种情况下,可以不对块储存器4进行新的添加。这是去重复的原理。
样本数据块6可以是输入数据块2的副本。可选地,样本数据块6可以是对应输入数据块2的变换副本;例如,其可以是输入数据块2的加密和/或压缩版本或添加了附加报头或元数据。如果输入数据块2和样本数据块6包含相同内容的话,可以认为它们是相对应的。(加密块的内容是对应的未加密数据)。
请注意虽然存在具有内容A的两个输入数据块(第一和第四),但在图3中,具有内容A的仅一个样本数据块6被示为存储到块储存器4。这是因为我们对于本示例已假设数据处理装置在其到达输入数据段1的第四块时确定其已在块储存器4中具有对应的样本数据块6(在处理输入数据段1的第一块时添加的)。所述确定程序偶尔可能出错,当块实际上存在时确定其不存在,导致某些样本数据块6被多次添加到块储存器4。可以允许偶尔的重复。块储存器4可以存储多个样本数据块6。
在一个实施例中,块储存器4和清单储存器5二者被存储在诸如盘之类的高等待时间、非易失性存储装置中。可以将稀疏块索引8存储在诸如RAM之类的低等待时间、易失性存储装置上。
当处理输入数据块2时,编辑清单7。清单7是数据段1的表示。清单7包括到块储存器4中的样本数据块6的引用,所述样本数据块6对应于构成输入数据段1的输入数据块2。因此,可以将清单7的引用视为样本数据块6的元数据。如果给定清单7的到样本数据块6的引用在尺寸上小于由清单7引用的样本数据块6,则应认识到清单7在尺寸上可以小于其表示的输入数据段1。随着越来越多的清单被添加到清单储存器5,该清单引用已被存储在块储存器4中的样本数据块,清单和样本数据块的总组合尺寸可以小于清单所表示的数据段的总组合尺寸;因为重复的输入块每个只能存储一次。
当输入数据段1已被处理成输入数据块2且已编辑表示输入数据段1的清单7时,如图3中示意性地示出的,清单7被存储在清单储存器5中。这里,我们使用对应的小写字母x来表示到具有内容X的样本数据块6(通常仅存在一个)的引用。下面解释环绕字母的圆圈。
如果体现本发明的数据处理装置3的用户希望恢复给定输入数据段1的数据-这可能与在特定时间点进行的备份有关-则该装置将从清单储存器5检索对应的清单7。然后使用清单7中的到块储存器4中的样本数据块6的每个引用来重构原始数据段1。
填充稀疏块索引:块标识符
当处理每个输入数据块2时,可以用关于对应于输入数据块2的仅仅某些样本数据块6的信息来填充稀疏块索引8。在一个实施例中,‘某些’样本数据块可以根据它们是否具有预定特性来选择。对于块储存器中的给定数目的样本数据块而言,在稀疏块索引中可能存在与具有预定特性的仅仅几个样本数据块相关的信息。在另一实施例中,如果这些样本数据块6中没有一个具有预定特性,则没有信息将被添加到稀疏块索引8。稀疏块索引8的‘稀疏性’由于索引包含关于仅仅某些样本数据块6(在一个实施例中,具有预定特性的那些)的信息且不包含关于其他样本数据块6(在一个实施例中,不具有所述预定特性的那些)的信息而产生。对于存储在块储存器4中的给定数目的样本数据块6,因此常常存在较少数目的稀疏块索引8包含关于它们的信息的样本数据块6。
在一个实施例中,体现本发明的数据处理装置在操作中用于生成输入数据块的块标识符。块标识符可以是其与之相关的数据块的数字指纹。该块标识符可以是唯一块标识符,对于特定数据块而言是唯一的。可以将用于生成块标识符的算法选择为能够生成用于预定数目的数据块的唯一块标识符。在一个实施例中,使用SHA1哈希算法来生成块标识符。可以使用其他哈希算法,诸如SHA2或MDA5。在一个实施例中,将哈希算法选择并配置为使得找到将产生相同块标识符的两个不同数据块在计算上基本上是不可行的。因此,给定由于块储存器4尺寸限制而实际上可以添加到块储存器4的样本数据块6的数目,添加的块6中的两个可以共享同一块标识符可能是极其不可能的。
在一个实施例中,输入数据块的块标识符与对应样本数据块6的块标识符相同。这可以通过使块标识符仅取决于给定块的内容来实现。在一个实施例中,稀疏块索引8包含仅关于具有带有预定特性的块标识符的样本数据块6的信息。在一个示例中,所述预定特性可以是块标识符的N个相邻位具有预定的位值。
在一个实施例中,用于生成块标识符的算法被选择为生成用于可能被添加到块储存器4的每个可能样本数据块的唯一块标识符。因此,在多于16个的唯一的样本数据块可能被添加到块储存器4的情况下,不应选择仅具有16个可能值的4位块标识符。否则,可能对两个不同的样本数据块分配相同的块标识符。在一个实施例中,可能的块标识符值的数目比将被存储在块储存器4中的唯一的样本数据块的可能数目大得多。在该实施例中,可以降低冲突(其中,根据两个不同的样本数据块生成相同的块标识符)的风险。
上述实施例基于样本数据块6的块标识符的属性而不是直接基于样本数据块6本身来进行样本数据块6的选择。在其中块标识符仅仅取决于给定块的内容的实施例中,这意味着不考虑样本数据块6在块储存器4中的位置或样本数据块6被添加到块储存器的顺序。因此,存在给定输入数据块是否将具有预定特性的可重复性,无论其可能出现在输入数据集或段中的什么位置。
在其他实施例中,所述预定特性可以基于处理输入数据块的顺序。例如,可以将关于所处理的每个第n个输入数据块的信息添加到稀疏块索引;或者,更确切地说,将添加关于对应于第n个输入数据块的样本数据块的信息。
在另一实施例中,不是具有预定特性的所有输入数据块都将使信息添加到稀疏索引8。基于预定选择标准,可以将仅仅与具有预定特性的那些输入数据块中的某些有关的信息添加到稀疏块索引8。
在图1所示的示例输入数据段1中,输入数据块B和D两者具有预定特性,用圆圈来表示。
在输入数据段1的输入数据块2的处理之后,若干样本数据块已被添加到块储存器4(参见图3)。如上所述,在一个实施例中,在块储存器4中可能仅存在每个唯一样本数据块6的一次发生。在输入数据集1的情况下,存在块A至H。
在图中,当块具有预定特性时,我们用圆圈来表示。因此,在图1中,输入数据块2中的两个(B和D)具有预定特性。因此,在一个实施例中,将关于存储在块储存器4中的与具有预定特性的输入数据块相对应的样本数据块6的信息添加到稀疏块索引8。因此,如图3所示,在稀疏块索引8中存在为样本数据块B和D完成的条目-在图3中用小写的参考标号来指示该条目。如上所述,参考标号周围的圆圈意味着样本数据块具有预定特性。
在另一实施例中,基于预定选择标准,可以将仅关于样本数据块B和D中的一个的信息添加到稀疏索引8。
针对用于特定样本数据块的稀疏块索引8中的每个条目,可以存储引用该样本数据块的所有清单的列表。在本示例中,由于是首次填充清单储存器块索引和块储存器,所以稀疏索引块索引8中的条目b和d中的每一个将具有到清单储存器5中的清单7的单个引用。换言之,针对稀疏块索引8中的用于样本数据块b的条目,将存在清单储存器5中的清单7包含到该样本数据块b的引用的记录。这同样适用于稀疏块索引8中的关于样本数据块d的信息。
在一个实施例中,包含在稀疏块索引8中的关于给定样本数据块6的信息包括该样本数据块6的块标识符。
在一个实施例中,可以隐含地将块标识符的一部分存储在稀疏块索引8中。也就是说,块标识符的其余部分的位置可以隐含地指定第一部分。例如,在哈希表中(可以将稀疏块索引8实现为哈希表)常见的是关键字的前几个位指定关于该关键字的信息被存储在哈希表的哪个槽(slot)中;因为该槽中的每一项具有带有相同的前几个位的关键字,所以不需要显式地存储那些位。
在一个实施例中,可以仅将部分块标识符存储在稀疏块索引8中以降低存储要求。因此,两个不同的样本数据块可以具有相同的部分块标识符。仅存储部分块标识符的缺点是体现本发明的数据处理装置可能基于稀疏块索引8中的误导(部分)信息不良地选择清单,导致更加不良的去重复(例如,在块储存器4中将存在唯一样本数据块6的重复副本)。因此,所述装置可以通过引用块索引8中的部分块标识符来假设样本数据块对应于正在处理的输入数据块2,即使它们可能是不同的。
本发明的实施例可以包括稍后描述的验证步骤。此类验证步骤可以减去不对应于输入数据块2的样本数据块,尽管它们相应的部分块标识符指示它们相对应。仅存储部分块标识符的优点是稀疏块索引8的尺寸更进一步地减小。该益处是除了由于仅存储关于某些样本数据块6的信息而减小稀疏块索引8的尺寸之外又有的益处。
在一个实施例中,包含在稀疏块索引8中的用于样本数据块6的信息包括到在清单储存器5中的且包括到该样本数据块6的引用的每 个清单7的引用。也就是说,对于在稀疏块索引8中具有条目的每个样本数据块6而言,在清单储存器5中存储有包含到该样本数据块6的至少一个引用的所有清单7的列表。在另一实施例中,在清单储存器5中可能仅存储有包含到该样本数据块的至少一个引用的清单7的部分列表。因此,虽然可能存在被存储在清单储存器中的包含到在稀疏块索引8中具有条目的样本数据块6的引用的许多清单,但稀疏块索引8可以仅包含关于有限数目的那些清单的细节。
在使用中,清单储存器5可以包含许多清单7,每个清单表示先前处理的数据段1。在一个实施例中,清单储存器5包含关于包含在其中的每一个清单7的信息。该信息可以包括与每个清单7相关联的属性,诸如其尺寸、其包含的引用的数目或其所表示的数据集的名称及其他细节。用于特定清单的信息可以包括清单7所引用的样本数据块6中的至少一个的块标识符。
去重复:钩住(hooking)
在一个实施例中,数据处理装置3使用稀疏块索引8和所识别的清单7以尝试识别正被处理的输入数据段的哪些输入数据块2在块储存器4中已经具有对应的样本数据块6。结果,在一个极端实施例中,可能存储有每个唯一样本数据块6的仅一个副本,无论对应于该样本数据块6的输入数据块在被处理的输入数据段中出现多少次。消除或至少减少数据的多重存储的过程称为去重复(有时也称为精简)。
图1中的输入数据段1可以包括较大数据集的仅一个段。如上所述,数据集可以包括许多数据段。技术人员可以使用许多分段算法来将输入数据分段。在某些实施例中,可以任意地选择边界-即各段的范围,而很少考虑或不考虑所划分的段的内容。
图4表示随后由本发明的数据处理装置处理的数据集的一部分。图4示出已被分段成两个段11和13的数据集的一部分。输入数据段11包括输入数据块MJKILABCD且数据段13包括输入数据块EFGHAMJKP。
在处理输入数据段11和13时,体现本发明的数据处理装置可以顺序地依次处理每个输入段。在一个实施例中,可能紧接在图4的输入数据段11之前已经处理了图1所示的输入数据段1。换言之,输入数据集1、11和13可以一起形成较大数据集的连续部分。
在没有使用体现本发明的数据处理装置的情况下,可以另外整体地存储输入数据段11的内容。因此,即使读者可以看到输入数据段1(现在被作为清单7存储在清单储存器5中)和输入数据段11都包括公共输入数据块A、B、C和D,重复的输入数据块的每次发生也将被作为样本数据块存储在块储存器4中。这可以表示块储存器4的低效使用。体现本发明的数据处理装置可以减少数据的重复。
利用体现本发明的数据处理装置3,当输入数据段11被呈现给数据处理装置3时,输入数据段11被处理成输入数据块12。体现本发明的数据处理装置3在操作中用于使用稀疏块索引8来识别清单储存器5中的包括到与输入数据集11的至少一个输入数据块12相对应的且在稀疏块索引8中包含有关于其的信息的样本数据块的至少一个引用的至少一个清单7。
如图3所示,(在处理输入数据段11之前),块储存器4包含样本数据块A、B、C、D、E、F、G和H,每个表示在图1所示的输入数据段1中存在的输入数据块2。另外,清单储存器5包括表示输入数据段1的清单7,包括到存储在块储存器4中的每个样本数据块6的引用。可以使用清单储存器5中的清单7和块储存器4中的样本数据块6来重构图1的输入数据段1。
另外,如上所述,稀疏块索引8被配置为用于包含关于仅仅某些样本数据块6的信息。在一个实施例中,稀疏块索引被配置为包含关于仅仅那些具有预定特性的样本数据块的信息。
进一步参照图3,应注意的是只有样本数据块B和D在稀疏块索引8中具有条目。样本数据块A、C、E、F、G或H中没有一个在稀疏块索引8中具有引用。
在一个实施例中,稀疏块索引8中的信息可以包括样本数据块B和D的块标识符,或部分块标识符;并且还有清单储存器5中的包括到样本数据块B和D的引用的清单7的至少部分列表-在另一实施例中,可以存在清单的完整列表。在图3所示的示例中,仅存在当前包含在清单储存器5中的一个清单7。因此,在稀疏块索引8中,针对用于样本数据块B和D的每个条目,将存储有仅到存储在清单储存器5中的单个清单7的引用。
在接收到图4的输入数据段11后,数据处理装置3在操作中用于将输入数据段11处理成输入数据块12。对于每个输入数据块12而言,可以生成块标识符。在一个实施例中,可以将每个所生成的块标识符与稀疏块索引8中的所有条目相比较,以找到对应于输入数据块的样本数据块。可以看到输入数据段11包括输入数据块B和D,其对应于样本数据块B和D。因此,在本实施例中,在输入数据段11中的每个输入数据块与稀疏索引中的条目的比较之后,应注意的是在稀疏块索引8中存在引用与输入数据块B和D相对应的样本数据块的两个条目。
在另一实施例中,将输入数据段11的仅仅那些具有预定特性的输入数据块与稀疏块索引8中的条目相比较。在本示例中,由于输入数据段11包括碰巧均具有预定特性的两个输入数据块B和D,所以在稀疏块索引8中将找到用于输入数据块B和D两者的肯定匹配。本实施例可以增加可以执行数据段的处理的速度。作为稀疏块索引仅包含具有预定特性的样本数据块的条目的结果,将不具有所述预定特性的输入数据块与稀疏块索引中的条目相比较可能具有很少益处或没有益处。这是因为将找不到匹配。因此,体现本发明的稀疏块索引的提供可以显著地减少用来处理输入数据段的时间并重要地减少所需的RAM。
另外,在图4中可以看到输入数据块M也具有预定特性。因此,还可以将输入数据块M与稀疏块索引8中的条目相比较。然而,在这种情况下,由于在稀疏块索引中不存在与样本数据块M相关的条目,所以将不返回此类结果。如下文将讨论的,可以在稍后将用于样本数据块M的条目添加到稀疏块索引。
在本示例中,仅存在一个当前存储在清单储存器5中的清单7。在本发明的某些实现中,清单储存器5可以包括多个清单7。因此,应认识到稀疏块索引8可以包括多个条目,每个条目引用清单储存器中的引用与该条目相对应的该样本数据块的多个不同清单。
参照图4所示的示例,在处理输入数据段11时,体现本发明的数据处理装置将识别(“返回”)存储在清单储存器5中的清单7以进行后续操作。体现本发明的数据处理装置在操作中用于分析返回的(一个或多个)清单以便进行输入数据段11的哪些输入数据块已存在于块储存器4中的确定。在某些实施例中,仅仅返回清单的子集可以被如此分析。在一个实施例中,所述数据处理装置在操作中用于审阅所返回的至少一个清单并识别到与输入数据段11的至少一个其他输入数据块相对应的样本数据块6的至少一个引用。例如,可以存在所识别的到与输入数据段11的另外的输入数据块12对应的样本数据块6的引用。
在一个实施例中,将输入数据段11的每个输入数据块12与返回的清单7所引用的每个样本数据块6相比较。因此,输入数据段11“MJKILABCD”的每个输入数据块将被与返回的清单7所引用的样本数据块“ABCADEFGH”相比较。当然,可能不需要在促使清单被返回的输入数据块12(A和D)之间进行比较,因为已经知道其相互匹配。
在一个实施例中,可以将每个输入数据块12的完整块标识符与在所识别的清单7中引用的每个样本数据块6的完整块标识符相比较。在一个实施例中,如上所述,清单可以包含用于清单7所引用的每个样本数据块6的块标识符。因此,可以通过仅使用包含在返回的清单中的信息和为输入数据段11生成的块标识符来执行比较步骤。其益处是可能不需要参考稀疏块索引8或块储存器4以获得更多信息。
进一步参照图4,通过将输入数据段11的每个输入数据块12与返回的清单所引用的样本数据块6相比较,可以确定输入数据块A和C对应于已经存储在块储存器4中的样本数据块A和C(因为所返回的清单包含到它们的引用)。在一个实施例中,将确定输入数据块A和C的块标识符与包含在清单中的块标识符等同,该清单引用块储存器中的对应的样本数据块A和C。
在任何情况下,体现本发明的数据处理装置可以确定与输入数据块A、B、C和D相对应的样本数据块6已存在。因此,不需要将与输入数据段11的输入数据块A、B、C和D相对应的样本数据块再次存储在块储存器4中。存储原始输入数据集1和输入数据段11的占用空间可以小于其累计原始尺寸。
进一步参照图4所示的输入数据段11,应注意的是该段还包括输入数据块M、J、K、I和L。应认识到没有发现这些输入数据块12中的任何一个对应于返回清单7所引用的任何样本数据块6-即比较步骤将揭示无匹配。
因此,可以将输入数据块M、J、K、I和L作为样本数据块添加到块储存器。
体现本发明的数据处理装置还在操作中用于编辑用于输入数据段11的清单。如上文参照图4所示的示例所述,已经确定块储存器4已包含与输入数据段11的输入数据块A、B、C和D相对应的样本数据块A、B、C和D。因此,可以用到那些样本数据块6的引用来编辑用于输入数据段11的清单。其益处是已经编辑了用于输入数据段11的清单的一部分,而无需已经将任何其他样本数据块添加到块储存器。另外,随着输入数据块M、J、K、I和L被添加到块储存器,用到那些样本数据块的引用来编辑用于输入数据段11的清单。然后,可以将新的清单添加到清单储存器5。
另外,可以将其他信息添加到稀疏块索引。例如,应注意的是现在存储在清单储存器中的两个清单引用样本数据块B和D。体现本发明的数据处理装置在操作中用于针对稀疏块索引中的每个相关记录将引用添加到那些清单。因此,对于稀疏块索引8中的条目b(关于样本数据块B)而言,在清单储存器中将存在到两个清单的引用。这同样适用于稀疏块索引8中的条目d(关于样本数据块D)。
另外,应注意的是输入数据段11的输入数据块M具有预定特性-用圆圈来表示。可以在稀疏块索引中产生关于样本数据块M的新条目。该条目可以包含到清单储存器5中的新添加的清单的引用;但没有另一清单,因为其不包含到与输入数据块M相对应的样本数据块的引用。
当处理包括与样本数据块M相对应的输入数据块的其他输入数据段时,可以识别新添加的清单且可以在与新输入数据段的比较步骤中使用该新添加的清单。
维持稀疏块索引的益处是与如果存储‘完整’块索引(即,包含关于每个样本数据块的信息的索引)相比需要更少的存储器。然而,即使当使用稀疏块索引时,体现本发明的数据处理装置仍可以在操作中用于识别先前清单中的到与被处理的数据段的输入数据块相对应的样本数据块的引用。
参照图3和4,虽然稀疏块索引包含仅关于样本数据块B和D的信息,然而,这些条目促使第一清单被识别。方便地,根据该返回的清单,识别到输入数据段11还包括已作为样本数据块存在于块储存器中的输入数据块A和C。
这种方式的本发明的操作可以称为“钩住”且可以在概念上视为在到稀疏块索引包含关于其的信息的样本数据块的每个引用处将钩子附着于清单。因此,当处理输入数据段时,引用与输入数据段的输入数据块相对应的且稀疏块索引中包含有关于其的信息的样本数据块的清单被“拉入”以进行分析。与输入数据段的输入数据块匹配的给定清单的“钩子”越多,其越有可能被“拉入”,并且作为具有更多“钩子”的结果,清单对于去重复而言可能越有用。
体现本发明的数据处理装置3的益处是不要求对于每个输入数据块2穷尽搜索块储存器4以确定其是否已被存储为样本数据块6。作为替代,体现本发明的数据处理装置3可以利用为先前处理且已存储的数据段创建的清单7。当被处理的输入数据段在很大程度上与先前处理的数据段类似时,进一步展示了体现本发明的数据处理装置3的益处。例如,在两个完全备份操作之间,相应数据段的仅一小部分可能是不同的。必须系统地搜索存储在块储存器4中的每个样本数据块6以找到与输入数据段的每个输入数据块相对应的样本数据块6可能是低效且耗时的。
体现本发明的数据处理装置3可以能够利用被处理的每个输入数据段1可能类似这一事实。照此,可以使用先前的类似清单来编辑用于最近输入数据段的新清单的至少一部分。
在一个实施例中,已通过“钩住”识别了所述至少一个清单,数据处理装置3在操作中用于在那些清单内搜索到块储存器4中的与被处理的输入数据段的其他输入数据块相对应的样本数据块6的所有其他引用。在一个实施例中,通过依次从输入数据段中选择每个输入数据块-可能除了促使清单被识别的输入数据块之外-并将其与所识别的(一个或多个)清单中的每个引用相比较来执行搜索。当找到到对应样本数据块6的引用时,在新清单中用到样本数据块6的引用表示对应的输入数据块。搜索操作可以继续至已将所有输入数据块与所识别的(一个或多个)清单中的所有引用相比较为止。
在另一实施例中,可以在对于给定清单已找到预定数目的到与输入数据块相对应的样本数据块6的引用时终止搜索操作。搜索操作可以一次搜索一个所识别的清单。在一个实施例中,可以在发现被搜索的当前清单具有比预定数目(可能是当前清单中的引用或输入数据块的数目的百分比)少的到与输入数据块相对应的样本数据块6的引用时终止搜索操作。在另一实施例中,可以在发现被搜索的当前清单具有比预定数目少的到与未被确定为在块储存器8中具有对应样本数据块6的输入数据块相对应的样本数据块6的引用时终止搜索操作。这些实施例的益处是可以快速地从搜索程序中减去似乎未包含到与任何其他输入数据块相对应的样本数据块6的引用的清单。在另一实施例中,可以在已处理给定数目的清单之后终止搜索操作。
当块储存器4包含许多样本数据块6时,展示了本发明的实施例的益处。假设许多样本数据块6已被长时间存储在块储存器4中且被处理的新输入数据段很少或从不包括与那些‘旧’样本数据块6相对应的输入数据块2。进一步假设若干最近处理的输入数据段1包含到最近添加到块储存器4的样本数据块6的引用。若没有体现本发明的数据处理装置3,可以将新输入数据段的每个输入数据块与存储在块储存器4中的每个样本数据块6相比较。因此,未体现本发明的此类数据处理装置将输入数据块与不太可能被发现匹配的样本数据块6相比较。‘旧’样本数据块6被存储在块储存器4的开头处且因此可能被首先搜索的情况尤其如此。
另一方面,体现本发明的数据处理装置3可以识别清单储存器5中的包括到与至少一个输入数据块2对应的样本数据块6的至少一个引用的至少一个清单7。因此,本发明的实施例可以利用包含特定输入数据块-该输入数据段与已在块储存器4中的且具有稀疏块索引8中的条目的样本数据块6相对应-的输入数据段还可以包含与已存储在块储存器4中的其他样本数据块6相对应的输入数据块这一事实。
在本发明的一个实施例中,在生成用于输入数据块2的块标识符并识别稀疏块索引8中的与存储在稀疏块索引8中的样本数据块6相关的对应块标识符之后,体现本发明的数据处理装置3在操作中用于执行验证程序。所述验证程序包括将输入数据块2与存储在块储存器4中的已识别样本数据块6相比较,以确认这两个数据块是否实际上具有相同的内容。在没有验证程序的情况下,特别是在使用部分块标识符的情况下,可能被识别为‘对应’的样本数据块6实际上具有与输入数据块2不同的内容。包括到非对应样本数据块6的引用将在清单中引入错误,并妨碍清单中所表示的数据的精确恢复。
在另一实施例中,可以通过将输入数据块的块标识符与包含在所识别的清单中的块标识符相比较来执行验证程序。其益处是可能完全不要求对块储存器的访问。可以仅仅使用包含在清单中的信息和为输入数据块产生的块标识符来执行验证程序。在部分块标识符被存储在稀疏块索引8中的情况下,可能存在其中即使相应的输入/样本数据块相互不匹配、输入数据块的块标识符也与存储在稀疏块索引8中的样本数据块的部分块标识符匹配的情况。结果,被识别为包含到与输入数据块相对应的样本数据块的引用的清单可能实际上不引用与任何输入数据块相对应的样本数据块。在一个实施例中,所述数据处理装置在操作中用于对所识别的(一个或多个)清单执行验证程序。在一个实施例中,当已识别至少一个清单时,验证存储在(一个或多个)清单中的被指示为与输入数据块相对应的样本数据块的块标识符。只有当该块标识符与输入数据块的块标识符等同时,才可以将清单用于后续操作。本实施例可以与通过从块储存器4中读取来执行验证程序实现相同的效果,但不要求访问块储存器4。应认识到返回的清单在尺寸上可以比块储存器4小得多。因此,使用所识别的清单而不是块储存器4来执行比较程序可以允许在用于比较的数据的至少一部分在RAM中的同时对其进行处理。
体现本发明的数据处理装置可以用于精简输入数据集以供存储、加密或传输。例如,输入数据可以表示来自第一数据存储介质的备份数据集合,用于存储在第二数据存储介质上。如上所述,体现本发明的数据处理装置3将输入数据块2的块标识符与存储在稀疏块索引8中的块标识符相比较。比较的步骤可能要求容易访问包含在稀疏块索引8中的数据。在一个实施例中,可以将稀疏块索引8存储在随机存取存储器(RAM)中。RAM允许对包含在其中的信息的快速且随机的访问。然而,可能存在减少数据处理装置所需的RAM的要求。通过提供将被存储在RAM中的稀疏块索引8,体现本发明的数据处理装置比没有稀疏索引的处理装置要求更少的RAM。
在不提供块索引的情况下,数据处理装置可以将输入数据块2与存储在块储存器4中的每个样本数据块6相比较。由于块储存器4可能非常大,所以可能难以或几乎不可能将块储存器4的全部内容存储在RAM中。可以将块储存器4存储在非易失性存储器中,诸如存储在盘上。因此,从块储存器4读取数据将要求盘读取操作。这可能明显比访问存储在RAM中的数据慢。体现本发明的数据处理装置3包括可以驻留于RAM中的稀疏块索引8,允许更快地访问包含在其中的信息。结果,可以更容易地识别存储在块储存器4中的与输入数据块2相对应的样本数据块6,而不要求对块储存器4进行不断的直接访问。如上所述,可以存在验证程序。此操作可能要求访问存储在盘上的块储存器4中的样本数据块6,但是这可能要求块储存器4的仅一次盘寻找和单个样本数据块6的检索。
利用包括稀疏块索引8的本发明的实施例,对于第一输入数据块而言,在块储存器中可能存在与第一输入数据块相对应的第一样本数据块6;但是稀疏块索引8中不存在与第一样本数据块6相关的条目。然而,在稀疏块索引8中可能存在用于与第二输入数据块匹配的第二样本数据块6的条目。然后,体现本发明的数据处理装置将识别引用第二样本数据块6的(一个或多个)清单。可以执行那些(一个或多个)清单的后续搜索。可能所识别的(一个或多个)清单不包含到第一样本数据块的引用。或者,(一个或多个)清单内的任何搜索操作可能已在找到到第一样本数据块6的引用之前终止,即使清单可能包含到第一样本数据块6的引用。
可能引用第一对应样本数据块6的存储清单不引用第二样本数据块6。在这种情况下,体现本发明的数据处理装置在分析包含第二样本数据块6的清单时将不识别第一样本数据块6。
从而,体现本发明的数据处理装置可以将第一输入数据块作为新的样本数据块6存储在块储存器中,尽管在块储存器4中已存在与输入数据块相对应的样本数据块6。
然而,要求较少RAM的益处和搜索稀疏块索引8所用的时间的减少可能比某些输入数据块2被第二次存储为样本数据块6的缺点更重要。
体现本发明的数据处理装置可以在操作中用于识别块储存器4中的与至少某些输入数据块2相对应的、同时仅包括稀疏索引的样本数据块6。在一个极端、可能理想的示例中,在块储存器4中可能不存在重复条目。具有稀疏块索引8的数据处理装置3在精简输入数据时可以正好或几乎与具有完整块索引8的数据处理器3一样高效。高效意味着存储在块储存器4中的样本数据块6没有重复,或者至少在预定程度上没有重复。可以允许样本数据块的某种重复。此外,可以允许包括到与输入数据块对应的样本数据块6的引用的清单7的某种错误识别。可以根据方便性的平衡来配置本发明的实施例-通过要求的稀疏块索引8的尺寸的对应减小或总体上的装置效率的对应提高,可以平衡或胜过允许清单7的错误识别或数据的某种重复的所设想的缺点。
现在将参照图4来描述体现本发明的数据处理装置。
如上所述,图4公开了包括输入数据段11和13的数据集的一部分。如上所述,输入数据段11已被处理并向清单储存器添加对应的清单。接下来,体现本发明的数据处理装置可以处理输入数据段13。从图4将看到输入数据段13包括输入数据块E、F、G、H、A、M、J、K、P。
因此,如以前一样,输入数据段13将被处理成输入数据块12。然后,可以在稀疏块索引8中“查找”那些输入数据块12中的每一个。在一个实施例中,在稀疏块索引8中,可以仅查找具有“预定特性”的输入数据段13的那些输入数据块12。在任何情况下,目的是将输入数据段13的输入数据块12中的至少一个与存储在稀疏块索引8中的“钩子”相比较。
从图4将看到输入数据段13的仅输入数据块M和P具有预定特性。因此,在处理输入数据段13时,数据处理装置将识别具有到与输入数据段13的输入数据块相对应的并且在稀疏块索引中包含关于其的信息的所述样本数据块之一的至少一个引用的清单。如上所述,在输入数据段1和11的处理之后,将存在存储在清单储存器5中的两个清单7。另外,在稀疏块索引8中将存在用于样本数据块B、D和M中的每一个的条目。应注意的是清单储存器5中的仅第二清单7-即与输入数据段11相关的清单-包含到样本数据块M的引用。因此,在处理输入数据段13时,体现本发明的数据处理装置可以“查找”输入数据段13的每个输入数据块12并将那些输入数据块中的每一个与稀疏块索引8中的条目相比较。在另一实施例中,在稀疏块索引8中可以只“查找”具有“预定特性”的输入数据段13的那些输入数据块12-即M和P。在此类实施例中,将发现在稀疏块索引8中存在和与输入数据段13的输入数据块M相对应的样本数据块M相关的条目。结果,数据处理装置将返回存储在清单储存器5中的第二清单7(即与输入数据段11相关的清单)。将没有结果从输入数据块‘p’返回,不过可以将用于P的条目添加到稀疏索引。
随后,所述数据处理装置可以将输入数据段13的每个输入数据块12与包含在返回清单(清单11)中的每个引用相比较。在另一实施例中,如上所述,可以将对应的输入和样本数据块的块标识符相互比较。
作为比较步骤的结果,将确定与输入数据段11相关的返回清单还包括到与输入数据段13的输入数据块J和K相对应的样本数据块J和K的引用。因此,可以为输入数据段13编辑清单,包括到已经存储在块储存器4中的样本数据块M、J和K的引用。
应注意的是所返回的清单不包含到与输入数据段13的输入数据块E、F、G、H、A和P相对应的样本数据块的任何引用。
因此,在没有体现本发明的数据处理装置的其他特征(下文描述)的情况下,可以将输入数据块E、F、G、H、A和P中的每一个作为样本数据块添加到块储存器。但事实是(如读者将注意到的那样)样本数据块E、F、G、H和A已存在于块储存器中。因此,在没有如下所述的本发明的其他特征的情况下,结果可能是块储存器中的数据的不必要重复。
体现本发明的数据处理装置在操作中用于通过使用在处理先前输入数据的至少一个其他段时所识别的至少一个清单来识别与处理的段的其他输入数据块相对应的样本数据块。
因此,参照图4所示的示例,体现本发明的数据处理装置在操作中用于将输入数据段13的输入数据块12与由在处理先前输入数据段11时返回的清单引用的至少某些样本数据块相比较。
如上所述,当处理输入数据段11时,还返回将被添加到清单储存器的第一清单7。
因此,当使用体现本发明的数据处理装置时,可以将输入数据段13的所有输入数据块12与由清单储存器中的每个清单引用的所有样本数据块4相比较。
因此,在执行比较步骤时,应注意的是清单储存器中的另一清单包括到与输入数据段13的前五个输入数据块12相对应的样本数据块E、F、G、H和A的引用。输入数据段13中的未被发现具有对应数据块的唯一输入数据块12是输入数据块P。因此,在一个实施例中,可以将与输入数据块P相对应的样本数据块P添加到块储存器。
应认识到通过使用在处理输入数据的至少一个其他输入段时所识别的至少一个清单,可以减少样本数据块的重复。在上文参照图4所述的示例中,块储存器现在仅包含每个样本数据块的单个实例。在没有体现本发明的数据处理装置的情况下,在块储存器中可能已存在至少样本数据块E、F、G、H和A的副本。另外,由于输入数据块P(和因此其的对应样本数据块)具有预定特性,所以可以以上述方式将与样本数据块P相关的信息添加到稀疏索引。
在使用体现本发明的数据处理装置时,在所示的示例中,将看到已发现输入数据段13的九个输入数据块12中的八个对应于已存在于块储存器中的样本数据块。
当如图5举例说明的那样比较输入数据段1、11和13的输入数据块时,读者将看到输入数据段1中的块的模式(pattern)与桥接输入数据段11和13的边界的一连串输入数据块12几乎相同。换言之,如果输入数据段11和13的边界被向右移位(当参照图4时)五个间隔,则结果得到的输入数据段11将几乎完全对应于为输入数据段1创建的清单。然而,实际上,在哪里产生段边界的任意性可能规定各种连串的或各种模式的输入数据块被输入数据段的边界分开。体现本发明的数据处理装置设法克服这种现象的某些缺点。
参照附图,应注意的是输入数据段1的仅仅输入数据块B和D具有预定特性。因此,为了随后检索用于输入数据段1的清单,被处理的输入数据段必须包括输入数据块B和D中的至少一个,以便可以“钩住”对应于输入数据段1的清单。
即使输入数据段13包括输入数据块E、F、G、H,那些输入数据块中没有一个具有所述预定特性,因此,输入数据段中该串输入数据块(E、F、G、H)的发生将不一定“钩住”对应于输入数据集1的清单。
本发明的基本原理是模式可以存在于输入数据段的流中,该模式碰巧被段边界划分。在使用体现本发明的数据处理装置时,特别地通过使用在处理另一输入数据段时识别的至少一个清单,可以发现在处理另一输入数据段时所识别的该至少一个清单的最终部分对应于被处理的输入数据段的初始部分。
清单的优先次序排列
如上所述,体现本发明的数据处理装置在操作中用于识别具有到对应于所述输入数据块之一的并且关于其的信息被包含在稀疏块索引中的所述样本数据块之一的至少一个引用的清单。因此,数据处理装置使用稀疏块索引中的“钩子”来返回清单列表。
另外,所述数据处理装置在操作中用于使用在处理输入数据的至少一个其他段时所识别的至少一个清单。
可以将所有这样识别的清单称为“候选”清单。
可以对所有优选清单排列优先次序以进行后续操作。可以根据已被分配给每个候选清单的分数的值将候选清单排列优先次序。
如上所述,当处理输入数据段时,在稀疏块索引中“查找”具有预定特性的所有输入数据块-我们将其称为“查找”块。针对稀疏块索引中用于样本数据块的每个条目,存在包含到该样本数据块的引用的至少一个清单的列表。在某些情况下,清单储存器中的清单可以具有到具有稀疏块索引中的条目且对应于查找块的多于一个的样本数据块的引用。例如,在处理具有输入数据块B和D的输入数据段时,将识别对应于输入数据段1的清单,并且其将包含到具有稀疏块索引中的条目且对应于那些查找数据块B和D的样本数据块的两个引用。在这种情况下,可以说该清单具有两次“命中”。清单具有的“命中”越多,其将包含的到与被处理的输入数据段的查找数据块相对应的样本数据块的引用越多。因此,可以假设清单具有的“命中”的数目越高,越有可能至少部分地与被处理的输入数据段匹配。
方法A
在一个实施例中,基于每个返回的清单具有的“命中”的数目向其分配分数。因此,用于每个清单的分数等于清单所引用的样本数据块的数目,该样本数据块在稀疏块索引中具有条目且对应于被处理的输入数据段中的查找块。可以按优先次序将具有最多“命中”的清单排在第一,因为那些清单可能类似于被处理的输入数据段。
可以选择具有最高分数的清单以用于后续操作。所述后续操作可以是该清单引用的样本数据块与被处理的数据段的所有输入数据块的比较。
在已将所有输入数据块与清单所引用的样本数据块相比较之后,任何对应的输入数据块将在为该输入数据段新编辑的清单中由到对应样本数据块的引用来表示。
当从候选清单列表中选择清单时,可以说所选清单是“冠军”。
在已处理当前冠军清单之后,可以从候选清单中选择另一冠军。要选择的下一个冠军清单可以是具有第二最高分数的清单(先前的冠军具有最高分数)。
应认识到在候选列表中可以包含许多清单且可以选择那些中的仅仅某些作为冠军。如上所述,输入数据段的处理可以在已满足预定条件之后结束。在一个实施例中,该条件可以是已经将输入数据段与预定数目的返回清单相比较。或者,在优选情况下,其可以是已找到与被处理的输入数据段的所有输入数据块相对应的样本数据块。因此,不存在继续处理的原因。
在任何情况下,可以存在比总候选清单少得多的“冠军”。
当已处理冠军清单时,可以从候选列表中将其去除。可选地,其可以留在候选清单中,但是进行规定以保证其不会在处理当前输入数据段时被再次选为冠军。
方法B
在替换实施例中,可以在已选择冠军之后重新计算候选清单的分数。在一个实施例中,清单的分数重新计算为等于每个清单包含的到未被先前选择的冠军引用的查找块的引用的数目。因此,如果冠军包括到与特定查找块相对应的样本数据块的引用,则仅包括到相同样本数据块的引用的任何其余候选清单将具有零的分数。
换言之,当已使用特定‘钩子’检索清单并将其选为冠军时,也使用该钩子检索的任何清单将由于该钩子而不会在清单的后续处理中被给予优先级。
方法C
在本发明的一个实施例中,最近检索或创建的清单被保持在清单高速缓冲存储器中。该高速缓冲存储器可以保持预定数目的清单。优选地,该高速缓冲存储器被保持在RAM中。
当处理每个输入数据段时,从盘中检索其冠军(或至少某些)并将其存储在高速缓冲存储器中。还向高速缓冲存储器添加新创建的清单。如果高速缓冲存储器保持预定数目的清单,则向高速缓冲存储器添加清单可能要求从高速缓冲存储器驱逐现有清单。可以使用管理高速缓冲存储器的任何已知的清算(accounting)方法来确定要驱逐哪个清单(例如,最近使用最少的、最不频繁访问的等等)。本发明的特定实施例使用‘最近使用最少的’方法。
在另一实施例中,(部分地)通过尝试估计每个清单对要处理的接下来的几个输入数据段的用处并且然后首先驱逐看起来用处最小的清单来判定接下来从高速缓冲存储器驱逐哪个清单。例如,如果清单覆盖当前输入数据段的最后10%的块,则可以将其视为较有用。
在一个实施例中,已经存在于清单高速缓冲存储器中的候选者可以使其分数被加权,以便其在候选列表中看起来高于不在清单高速缓冲存储器中的另外等价的清单。‘高于’意指候选清单具有相对较高的有效分数。因此,更近一些添加的清单可更可能被选为冠军。可以给予已在高速缓冲存储器中的清单额外的权重,因为其比较起来更容易得到(不需要盘访问),并且因此如果希望避免通过从盘中检索清单并将其引入高速缓冲存储器而产生的昂贵的盘访问则首先使用它们是有益的,即使在其他方面略微低劣。
在一个实施例中,如果清单的分数在处理当前输入数据段时另外将已为零,则不可以给予其额外加权。这是为了避免将不具有到与输入数据段中的查找块相对应的样本数据块的引用的清单与该输入数据段相比较。
方法D
在一个实施例中,可以基于候选清单上一次何时被选为“冠军”来向该候选清单的分数添加附加奖分。该分数可以至少部分地基于在处理先前的输入数据段时给定清单最近是在何时被选为冠军的。例如,如果候选清单在处理紧接在前面的输入数据段时被选为冠军清单,则很可能其在处理当前输入数据段时有用。可以相应地调整其分数,从而增加其在处理当前输入数据段时被选为冠军的机会。此外,如果给定候选清单上一次是在处理早得多的输入数据段时被选为冠军的,则其不大可能在处理当前输入数据段时有用。可以相应地调整其分数。在一个实施例中,候选清单的分数可以基于其上一次是在多久以前被用作冠军而“衰减”。
在又一实施例中,可以基于当候选清单被选作冠军时在处理给定输入数据段时有多大用处来调整候选清单的分数。例如,可以选择冠军清单,但其不包括到与被处理的输入数据段的其他输入数据块相对应的样本数据块的引用。换言之,虽然其被选为冠军,但其不会有助于包含在输入数据段中的数据的去重复。
然而,如果当候选清单被选作冠军清单时,其在处理该输入数据段时特别有用,可以在处理当前输入数据段时为该候选清单加较高的分数。
方法E
如上所述,在处理输入数据段时,体现本发明的数据处理装置在操作中用于识别具有到对应于输入数据段的所述输入数据块之一的并且关于其的信息被包含在稀疏块索引中的所述样本数据块之一的至少一个引用的清单。
因此,在本实施例中,使用被处理的输入数据段的仅仅那些具有预定特性的输入数据块来对清单进行定位。在上述实施例中,将在处理先前输入数据段时识别的清单添加到候选列表。
在另一实施例中,所述数据处理装置在操作中用于识别具有到与预定范围的输入数据块之一相对应的并且关于其的信息被包含在稀疏块索引中的样本数据块的至少一个引用的清单。
在本实施例中,输入数据块的预定范围可以包括被处理的输入数据段的所有输入数据块。另外,输入数据块的范围可以包括包含在另一输入数据段中的至少一个输入数据块。
因此,关于图4,当除了识别具有到与查找块(M和P)之一相对应的所述样本数据块之一的至少一个引用的清单之外,还处理输入数据段13时,所述数据处理装置可以另外尝试识别具有到与输入数据段11、即紧接在当前数据段前面的输入数据段的输入数据块中的至少一个相对应的所述样本数据块之一的至少一个引用的清单。
在一个实施例中,所述“其他”输入数据段可以是紧接在前面的输入数据段。
在一个实施例中,使用的来自先前输入数据段的输入数据块可以是先前输入数据段的最后N个输入数据块,或者可以随机地对其进行选择。
在一个实施例中,可以使用包含在前一输入数据段的最后50%中的输入数据块。在另一实施例中,可以使用所选输入数据段的输入数据块的最后25%。
使用的来自其他输入数据段的输入数据块仅被用来识别清单,并且不将那些输入数据段与返回清单相比较。这是因为那些输入数据块可能不存在于被处理的实际输入数据段中。还应认识到只有来自其他输入数据段的具有预定特性的输入数据块将是有用的。
参照图5,对于本示例而言,假设不仅识别具有到与输入数据段13的所述输入数据块12之一相对应的所述样本数据块之一的至少一个引用的清单,数据处理装置还设法识别具有到与输入数据段11的最后四个输入数据块相对应的并且关于其的信息被包含在稀疏块索引中的所述样本数据块之一的至少一个引用的清单。
在本示例中,应看到来自输入数据段11的输入数据块B和D具有预定特性。结果,已存储在清单储存器中的两个清单将被作为候选清单返回。在候选清单的后续处理中,很可能对应于输入数据段1的清单将根据其在候选列表中的位置被选为冠军。如果是这样,则在处理该返回清单时,将发现该清单包括到与输入数据段13的样本数据块E、F、G、H和A相对应的样本数据块的引用。
作为此类处理的结果,将发现在块储存器中已存在与输入数据段13的九个输入数据块12中的八个相对应的样本数据块。
虽然在上述示例中,使用输入数据段11的输入数据块12中的四个,但可以使用更少的输入数据块且仍将体验到本发明的益处。
例如,在一个实施例中,数据处理装置可以设法识别具有到与前一输入数据段的最后输入数据块相对应的并且关于其的信息被包含在稀疏块索引中的所述样本数据块之一的至少一个引用的清单。
用图4所示的示例,这将意味着所述数据处理装置设法识别具有到样本数据块D的引用的清单。由于样本数据块D具有预定引用,所以这将识别清单储存器中的其他清单。
当清单被存储到盘时,可以将其分组成称为“群(gang)”的连续列表。例如,可以将段1、2和3的清单存储在群1中;并且可以将段4、5和6的清单存储在群2中等等。在一个实施例中,群的尺寸与读/写头可以在单次操作中读取的数据的最大范围具有共同界限。因此,读取整个群的所有清单将花费与读取该群中的单个清单相同或类似的时间。因此,将包含感兴趣的清单的整个群读取到RAM中可能是有益的。这样做之后,可以将某些或所有清单插入清单高速缓冲存储器中。
本发明的一个实施例提供一种数据处理装置,包括:包含样本数据块的块储存器;包含多个清单的清单储存器,每个清单表示先前处理的数据的至少一部分并包括到所述样本数据块中的至少一个的至少一个引用;包含关于仅仅某些样本数据块的信息的稀疏块索引,所述处理装置在操作中用于:将输入数据处理成每个由输入数据块组成的多个输入数据段;识别具有到与第一输入数据段的输入数据块相对应的且稀疏块索引包含其信息的样本数据块的引用的清单;检索具有到与先前处理数据的至少一个输入数据块相对应的样本数据块的引用的清单;使用所识别和检索的清单来识别与第一输入数据段的其他输入数据块相对应的样本数据块。
本发明的另一实施例提供一种数据处理器,其在操作中用于:将输入数据处理成输入数据块,所述输入数据块被布置成输入数据段;选择具有预定特性的至少某些输入数据块;编辑来自清单储存器的候选清单的列表,该列表包括:具有到与所选输入数据块中的至少一个相对应的样本数据块的引用的至少一个清单;和在处理输入数据的至少一个其他段时所识别的至少一个清单;以及对该候选清单排列优先次序和处理以识别与被处理的段的其他输入数据块相对应的样本数据块。
本发明的另一实施例提供一种数据处理装置,其包括:包含样本数据块的块储存器;包含多个清单的清单储存器,每个清单表示先前处理的数据的至少一部分并包括到所述样本数据块中的至少一个的至少一个引用;包含关于仅仅某些样本数据块的信息的稀疏块索引,所述处理装置在操作中用于:对于第一输入数据段,识别具有到与第一输入数据段的输入数据块之一相对应的并且关于其的信息被包含在稀疏块索引中的所述样本数据块之一的至少一个引用的清单;在处理第二输入数据段时使用所述已识别清单中的至少一个,以识别与第二输入数据段的输入数据块相对应的样本数据块。
参照图6,本发明提供一种使用如下部件的处理数据方法:包含样本数据块的块储存器、包含多个清单的清单储存器,其中每个清单表示先前处理的数据的至少一部分并包括到所述样本数据块中的至少一个的至少一个引用、以及包含关于仅仅某些样本数据块的信息的稀疏块索引,所述方法包括:将输入数据处理14成每个由输入数据块组成的多个输入数据段;识别15第一组清单,其中,第一组中的每个清单具有到与第一输入数据段的输入数据块之一相对应的且关于其的信息被包含在所述稀疏块索引中的所述样本数据块之一的至少一个引用;以及使用16所识别的第一组清单和在处理先前数据时所识别的至少一个清单来识别与第一输入数据段的其他输入数据块相对应的样本数据块。
当在本说明书和权利要求中使用时,术语“包括”和“包含”及其变型意指包括指定特征、步骤或整体。不应将该术语解释为排除其他特征、步骤或组件的存在。
在前述说明、或以下权利要求、或附图中公开的以其特定形式或根据用于执行所公开的功能的装置或用于获得所公开的结果的方法或过程所表示的特征根据情况可以单独地或以此类特征的任何组合用来以其各种形式实现本发明。
Claims (15)
1.一种处理数据的装置,所述装置使用如下部件:
块储存器,其包含样本数据块;
包含多个清单的清单储存器,其中每个清单表示先前处理的数据的至少一部分并包括到所述样本数据块中的至少一个的至少一个引用;以及
稀疏块索引,其包含关于仅仅某些样本数据块的信息,
所述装置包括:
用于将输入数据处理成多个输入数据段的部件,每个输入数据段由输入数据块组成;
用于识别第一组清单的部件,其中,第一组中的每个清单具有到与第一输入数据段的输入数据块之一相对应的并且关于其的信息被包含在所述稀疏块索引中的所述样本数据块之一的至少一个引用;以及
用于通过使用所识别的第一组清单和在处理先前数据时识别的至少一个清单来识别对应于第一输入数据段的其他输入数据块的样本数据块的部件。
2.如权利要求1所述的装置,其中,所述稀疏块索引包含关于具有预定特性的样本数据块的信息。
3.如权利要求1或2所述的装置,还包括用于将第一输入数据段的输入数据块与在处理先前数据时识别的该至少一个清单或所识别的第一组清单中的至少一个所引用的样本数据块相比较以识别与第一输入数据段的输入数据块相对应的样本数据块的部件。
4.如权利要求1或2所述的装置,还包括用于将所述识别的第一组清单中的至少一个存储在高速缓冲存储器中的部件。
5.如权利要求1或2所述的装置,还包括用于将所述识别的第一组清单和在处理先前数据时识别的所述至少一个清单排列优先次序的部件,其中,优先次序排列标准至少部分地基于每个清单所包含的到与第一输入数据段的输入数据块相对应的并且关于其的信息被包含在所述稀疏块索引中的样本数据块的引用的数目。
6.如权利要求1或2所述的装置,还包括用于将所述识别的第一组清单和在处理先前数据时识别的所述至少一个清单排列优先次序的部件,其中,在对处理先前数据时所识别的该至少一个清单排列优先次序时的标准至少部分地基于处理该先前数据时该至少一个清单的优先次序排列。
7.如权利要求1或2所述的装置,还包括用于将所述识别的第一组清单和在处理先前数据时识别的所述至少一个清单排列优先次序的部件,其中,优先次序排列标准至少部分地基于每个清单何时被添加到清单储存器。
8.如权利要求1或2所述的装置,还包括用于将所述识别的第一组清单和在处理先前数据时识别的所述至少一个清单排列优先次序的部件,其中,优先次序排列标准至少部分地基于每个清单当前是否被保持在高速缓冲存储器中。
9.如权利要求5所述的装置,还包括用于选择被排列优先次序的清单中的至少一个以识别与第一输入数据段的所述其他输入数据块相对应的样本数据块的部件。
10.一种处理数据的装置,所述装置使用如下部件:
块储存器,其包含样本数据块;
包含多个清单的清单储存器,其中每个清单表示先前处理的数据的至少一部分并包括到所述样本数据块中的至少一个的至少一个引用;以及
稀疏块索引,其包含关于仅仅某些样本数据块的信息;
所述装置包括:
用于将输入数据处理成多个输入数据段的部件,每个输入数据段由输入数据块组成;
用于识别第一组清单的部件,其中,第一组中的每个清单具有到与第一输入数据段的输入数据块相对应的并且关于其的信息被包含在所述稀疏块索引中的样本数据块的引用;
用于检索具有到与先前处理的数据的至少一个输入数据块相对应的样本数据块的引用的清单的部件;以及
用于使用所识别和所检索的清单来识别与第一输入数据段的其他输入数据块相对应的样本数据块的部件。
11.如权利要求10所述的装置,其中,先前处理的数据的该至少一个输入数据块是先前处理的数据的输入数据段的输入数据块的预定部分。
12.如权利要求11所述的装置,其中,先前处理的数据的输入数据段在输入数据中紧接在所述第一输入数据段前面。
13.一种处理数据的装置,包括:
用于将输入数据处理成输入数据块的部件,该输入数据块被布置成输入数据段;
用于对于给定输入数据段而言,选择具有预定特性的输入数据段的至少某些输入数据块的部件;
用于编辑来自清单储存器的候选清单的列表的部件,该列表包括:
具有到与所选输入数据块中的至少一个相对应的样本数据块的引用的至少一个清单;以及
在处理输入数据的至少一个其他段时识别的至少一个清单;以及
用于对所述候选清单排列优先次序并进行处理以识别与被处理的输入数据段的其他输入数据块相对应的样本数据块的部件。
14.一种使用如下部件的处理数据的方法:
块储存器,其包含样本数据块,
包含多个清单的清单储存器,其中每个清单表示先前处理的数据的至少一部分并包括到所述样本数据块中的至少一个的至少一个引用;以及
稀疏块索引,其包含关于仅仅某些样本数据块的信息,
该方法包括:
将输入数据处理成多个输入数据段,每个输入数据段由输入数据块组成;
识别第一组清单,其中,第一组中的每个清单具有到与第一输入数据段的输入数据块之一相对应的并且关于其的信息被包含在所述稀疏块索引中的所述样本数据块之一的至少一个引用;以及
使用所识别的第一组清单和在处理先前输入数据时所识别的至少一个清单来识别与第一输入数据段的其他输入数据块相对应的样本数据块。
15.如权利要求14所述的处理数据的方法,包括:
将第一输入数据段的输入数据块与由在处理先前数据时所识别的至少一个清单或所识别的第一组清单中的至少一个所引用的样本数据块相比较。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2008/061576 WO2009131585A1 (en) | 2008-04-25 | 2008-04-25 | Data processing apparatus and method of processing data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102016789A CN102016789A (zh) | 2011-04-13 |
CN102016789B true CN102016789B (zh) | 2014-03-19 |
Family
ID=41217101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880128811.2A Active CN102016789B (zh) | 2008-04-25 | 2008-04-25 | 数据处理装置和处理数据的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8959089B2 (zh) |
CN (1) | CN102016789B (zh) |
DE (1) | DE112008003826B4 (zh) |
GB (1) | GB2472520B (zh) |
WO (1) | WO2009131585A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8190742B2 (en) | 2006-04-25 | 2012-05-29 | Hewlett-Packard Development Company, L.P. | Distributed differential store with non-distributed objects and compression-enhancing data-object routing |
US8150851B2 (en) | 2007-10-25 | 2012-04-03 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
GB2466581B (en) * | 2007-10-25 | 2013-01-09 | Hewlett Packard Development Co | Data processing apparatus and method of deduplicating data |
US9372941B2 (en) * | 2007-10-25 | 2016-06-21 | Hewlett Packard Enterprise Development Lp | Data processing apparatus and method of processing data |
US8099573B2 (en) | 2007-10-25 | 2012-01-17 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
US8140637B2 (en) | 2007-10-25 | 2012-03-20 | Hewlett-Packard Development Company, L.P. | Communicating chunks between devices |
GB2466580B (en) | 2007-10-25 | 2013-01-02 | Hewlett Packard Development Co | Data processing apparatus and method of processing data |
US8332404B2 (en) | 2007-10-25 | 2012-12-11 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
US8959089B2 (en) | 2008-04-25 | 2015-02-17 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
US8117343B2 (en) | 2008-10-28 | 2012-02-14 | Hewlett-Packard Development Company, L.P. | Landmark chunking of landmarkless regions |
US8375182B2 (en) | 2009-02-10 | 2013-02-12 | Hewlett-Packard Development Company, L.P. | System and method for segmenting a data stream |
US8001273B2 (en) | 2009-03-16 | 2011-08-16 | Hewlett-Packard Development Company, L.P. | Parallel processing of input data to locate landmarks for chunks |
US9141621B2 (en) | 2009-04-30 | 2015-09-22 | Hewlett-Packard Development Company, L.P. | Copying a differential data store into temporary storage media in response to a request |
EP2494453A1 (en) * | 2009-10-26 | 2012-09-05 | Hewlett-Packard Development Company, L.P. | Sparse index bidding and auction based storage |
US8285957B1 (en) * | 2010-01-12 | 2012-10-09 | Netapp, Inc. | System and method for preprocessing a data set to improve deduplication |
US8660994B2 (en) | 2010-01-28 | 2014-02-25 | Hewlett-Packard Development Company, L.P. | Selective data deduplication |
US8499131B2 (en) | 2010-04-13 | 2013-07-30 | Hewlett-Packard Development Company, L.P. | Capping a number of locations referred to by chunk references |
US20120159098A1 (en) * | 2010-12-17 | 2012-06-21 | Microsoft Corporation | Garbage collection and hotspots relief for a data deduplication chunk store |
US8904128B2 (en) | 2011-06-08 | 2014-12-02 | Hewlett-Packard Development Company, L.P. | Processing a request to restore deduplicated data |
EP2810171B1 (en) | 2012-02-02 | 2019-07-03 | Hewlett-Packard Enterprise Development LP | Systems and methods for data chunk deduplication |
CN102841860B (zh) * | 2012-08-17 | 2015-09-16 | 珠海世纪鼎利通信科技股份有限公司 | 一种大数据量信息存储与访问方法 |
WO2014185916A1 (en) | 2013-05-16 | 2014-11-20 | Hewlett-Packard Development Company, L.P. | Selecting a store for deduplicated data |
US10592347B2 (en) | 2013-05-16 | 2020-03-17 | Hewlett Packard Enterprise Development Lp | Selecting a store for deduplicated data |
US11106580B2 (en) | 2020-01-27 | 2021-08-31 | Hewlett Packard Enterprise Development Lp | Deduplication system threshold based on an amount of wear of a storage device |
US11550493B2 (en) * | 2020-11-06 | 2023-01-10 | Hewlett Packard Enterprise Development Lp | Container index including a tracking data structure |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6122626A (en) * | 1997-06-16 | 2000-09-19 | U.S. Philips Corporation | Sparse index search method |
WO2006030326A1 (en) * | 2004-09-17 | 2006-03-23 | 3Dhistech Kft. | Method and computer program product for the storage ensuring fast retrieval and efficient transfer of interrelated high-volume 3d information |
Family Cites Families (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5369778A (en) * | 1987-08-21 | 1994-11-29 | Wang Laboratories, Inc. | Data processor that customizes program behavior by using a resource retrieval capability |
US5638509A (en) * | 1994-06-10 | 1997-06-10 | Exabyte Corporation | Data storage and protection system |
WO1996025801A1 (en) * | 1995-02-17 | 1996-08-22 | Trustus Pty. Ltd. | Method for partitioning a block of data into subblocks and for storing and communicating such subblocks |
US5680640A (en) * | 1995-09-01 | 1997-10-21 | Emc Corporation | System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state |
US6260124B1 (en) * | 1998-08-13 | 2001-07-10 | International Business Machines Corporation | System and method for dynamically resynchronizing backup data |
GB2341249A (en) * | 1998-08-17 | 2000-03-08 | Connected Place Limited | A method of generating a difference file defining differences between an updated file and a base file |
US6396838B1 (en) | 1998-09-28 | 2002-05-28 | Ascend Communications, Inc. | Management of free space in an ATM virtual connection parameter table |
US6542975B1 (en) | 1998-12-24 | 2003-04-01 | Roxio, Inc. | Method and system for backing up data over a plurality of volumes |
US6839680B1 (en) * | 1999-09-30 | 2005-01-04 | Fujitsu Limited | Internet profiling |
US6795963B1 (en) * | 1999-11-12 | 2004-09-21 | International Business Machines Corporation | Method and system for optimizing systems with enhanced debugging information |
US6564228B1 (en) * | 2000-01-14 | 2003-05-13 | Sun Microsystems, Inc. | Method of enabling heterogeneous platforms to utilize a universal file system in a storage area network |
JP2001216316A (ja) * | 2000-02-02 | 2001-08-10 | Nec Corp | 電子マニュアル検索システム、方法、及び記録媒体 |
JP4651797B2 (ja) * | 2000-10-03 | 2011-03-16 | 富士通セミコンダクター株式会社 | バックアップシステム、及び複製装置 |
US6938005B2 (en) * | 2000-12-21 | 2005-08-30 | Intel Corporation | Digital content distribution |
EP1223757B1 (en) * | 2001-01-09 | 2006-03-22 | Metabyte Networks, Inc. | System, method, and software application for targeted advertising via behavioral model clustering, and preference programming based on behavioral model clusters |
US20020156912A1 (en) * | 2001-02-15 | 2002-10-24 | Hurst John T. | Programming content distribution |
EP1244221A1 (en) * | 2001-03-23 | 2002-09-25 | Sun Microsystems, Inc. | Method and system for eliminating data redundancies |
US7136883B2 (en) | 2001-09-08 | 2006-11-14 | Siemens Medial Solutions Health Services Corporation | System for managing object storage and retrieval in partitioned storage media |
US7028158B1 (en) | 2001-11-02 | 2006-04-11 | Beatty And Company Computing, Inc. | Storage virtualization engine |
JP4154893B2 (ja) * | 2002-01-23 | 2008-09-24 | 株式会社日立製作所 | ネットワークストレージ仮想化方法 |
US6667700B1 (en) * | 2002-10-30 | 2003-12-23 | Nbt Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US7937421B2 (en) | 2002-11-14 | 2011-05-03 | Emc Corporation | Systems and methods for restriping files in a distributed file system |
US7065619B1 (en) | 2002-12-20 | 2006-06-20 | Data Domain, Inc. | Efficient data storage system |
JP4068473B2 (ja) * | 2003-02-19 | 2008-03-26 | 株式会社東芝 | ストレージ装置、分担範囲決定方法及びプログラム |
US7516442B2 (en) * | 2003-10-23 | 2009-04-07 | Microsoft Corporation | Resource manifest |
US7281006B2 (en) * | 2003-10-23 | 2007-10-09 | International Business Machines Corporation | System and method for dividing data into predominantly fixed-sized chunks so that duplicate data chunks may be identified |
US8135683B2 (en) * | 2003-12-16 | 2012-03-13 | International Business Machines Corporation | Method and apparatus for data redundancy elimination at the block level |
US20060047855A1 (en) | 2004-05-13 | 2006-03-02 | Microsoft Corporation | Efficient chunking algorithm |
US7269689B2 (en) * | 2004-06-17 | 2007-09-11 | Hewlett-Packard Development Company, L.P. | System and method for sharing storage resources between multiple files |
US7487138B2 (en) * | 2004-08-25 | 2009-02-03 | Symantec Operating Corporation | System and method for chunk-based indexing of file system content |
US8725705B2 (en) | 2004-09-15 | 2014-05-13 | International Business Machines Corporation | Systems and methods for searching of storage data with reduced bandwidth requirements |
US7523098B2 (en) * | 2004-09-15 | 2009-04-21 | International Business Machines Corporation | Systems and methods for efficient data searching, storage and reduction |
US7457800B2 (en) | 2004-10-06 | 2008-11-25 | Burnside Acquisition, Llc | Storage system for randomly named blocks of data |
US7343467B2 (en) | 2004-12-20 | 2008-03-11 | Emc Corporation | Method to perform parallel data migration in a clustered storage environment |
US8341371B2 (en) * | 2005-01-31 | 2012-12-25 | Sandisk Il Ltd | Method of managing copy operations in flash memories |
JP5043820B2 (ja) | 2005-03-11 | 2012-10-10 | ロックソフト リミテッド | 低冗長記憶システムで索引を行う方法 |
WO2006094365A1 (en) | 2005-03-11 | 2006-09-14 | Rocksoft Limited | Method for storing data with reduced redundancy using data clusters |
US7814129B2 (en) | 2005-03-11 | 2010-10-12 | Ross Neil Williams | Method and apparatus for storing data with reduced redundancy using data clusters |
EP1866776B1 (en) | 2005-03-11 | 2015-12-30 | Rocksoft Limited | Method for detecting the presence of subblocks in a reduced-redundancy storage system |
US20060293859A1 (en) * | 2005-04-13 | 2006-12-28 | Venture Gain L.L.C. | Analysis of transcriptomic data using similarity based modeling |
US7584338B1 (en) | 2005-09-27 | 2009-09-01 | Data Domain, Inc. | Replication of deduplicated storage system |
US7636767B2 (en) | 2005-11-29 | 2009-12-22 | Cisco Technology, Inc. | Method and apparatus for reducing network traffic over low bandwidth links |
US7856538B2 (en) | 2005-12-12 | 2010-12-21 | Systex, Inc. | Methods, systems and computer readable medium for detecting memory overflow conditions |
US7472242B1 (en) * | 2006-02-14 | 2008-12-30 | Network Appliance, Inc. | Eliminating duplicate blocks during backup writes |
US7831793B2 (en) | 2006-03-01 | 2010-11-09 | Quantum Corporation | Data storage system including unique block pool manager and applications in tiered storage |
JP4940738B2 (ja) | 2006-04-12 | 2012-05-30 | 株式会社日立製作所 | 記憶領域動的割当方法 |
US8543782B2 (en) * | 2006-04-25 | 2013-09-24 | Hewlett-Packard Development Company, L.P. | Content-based, compression-enhancing routing in distributed, differential electronic-data storage systems |
US8862841B2 (en) | 2006-04-25 | 2014-10-14 | Hewlett-Packard Development Company, L.P. | Method and system for scaleable, distributed, differential electronic-data backup and archiving |
US8190742B2 (en) * | 2006-04-25 | 2012-05-29 | Hewlett-Packard Development Company, L.P. | Distributed differential store with non-distributed objects and compression-enhancing data-object routing |
US8165221B2 (en) | 2006-04-28 | 2012-04-24 | Netapp, Inc. | System and method for sampling based elimination of duplicate data |
EP1873657A1 (en) * | 2006-06-29 | 2008-01-02 | France Télécom | User-profile based web page recommendation system and method |
US8412682B2 (en) | 2006-06-29 | 2013-04-02 | Netapp, Inc. | System and method for retrieving and using block fingerprints for data deduplication |
US8214517B2 (en) | 2006-12-01 | 2012-07-03 | Nec Laboratories America, Inc. | Methods and systems for quick and efficient data management and/or processing |
US7941599B2 (en) * | 2007-03-23 | 2011-05-10 | Kace Networks, Inc. | IT automation appliance imaging system and method |
US8140806B2 (en) | 2007-03-30 | 2012-03-20 | Oracle International Corporation | Eliminating fragmentation with buddy-tree allocation |
US8768895B2 (en) | 2007-04-11 | 2014-07-01 | Emc Corporation | Subsegmenting for efficient storage, resemblance determination, and transmission |
US7739312B2 (en) | 2007-04-27 | 2010-06-15 | Network Appliance, Inc. | Data containerization for reducing unused space in a file system |
US8315984B2 (en) | 2007-05-22 | 2012-11-20 | Netapp, Inc. | System and method for on-the-fly elimination of redundant data |
US7792826B2 (en) * | 2007-05-29 | 2010-09-07 | International Business Machines Corporation | Method and system for providing ranked search results |
US7975109B2 (en) | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US7788233B1 (en) | 2007-07-05 | 2010-08-31 | Amazon Technologies, Inc. | Data store replication for entity based partition |
EP2015184A2 (en) | 2007-07-06 | 2009-01-14 | Prostor Systems, Inc. | Commonality factoring for removable media |
US7669023B2 (en) * | 2007-07-10 | 2010-02-23 | Hitachi, Ltd. | Power efficient storage with data de-duplication |
US7886124B2 (en) | 2007-07-30 | 2011-02-08 | Oracle International Corporation | Method and mechanism for implementing dynamic space management for large objects |
US7831798B2 (en) * | 2007-09-18 | 2010-11-09 | International Business Machines Corporation | Method to achieve partial structure alignment |
GB2466580B (en) * | 2007-10-25 | 2013-01-02 | Hewlett Packard Development Co | Data processing apparatus and method of processing data |
GB2466581B (en) * | 2007-10-25 | 2013-01-09 | Hewlett Packard Development Co | Data processing apparatus and method of deduplicating data |
US8332404B2 (en) * | 2007-10-25 | 2012-12-11 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
US8150851B2 (en) * | 2007-10-25 | 2012-04-03 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
US8099573B2 (en) * | 2007-10-25 | 2012-01-17 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
US9372941B2 (en) * | 2007-10-25 | 2016-06-21 | Hewlett Packard Enterprise Development Lp | Data processing apparatus and method of processing data |
US7979670B2 (en) | 2008-01-24 | 2011-07-12 | Quantum Corporation | Methods and systems for vectored data de-duplication |
US8959089B2 (en) | 2008-04-25 | 2015-02-17 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
AU2009335697A1 (en) | 2008-12-18 | 2011-08-04 | Copiun, Inc. | Methods and apparatus for content-aware data partitioning and data de-duplication |
US8161255B2 (en) | 2009-01-06 | 2012-04-17 | International Business Machines Corporation | Optimized simultaneous storing of data into deduplicated and non-deduplicated storage pools |
US8375182B2 (en) * | 2009-02-10 | 2013-02-12 | Hewlett-Packard Development Company, L.P. | System and method for segmenting a data stream |
US8001273B2 (en) * | 2009-03-16 | 2011-08-16 | Hewlett-Packard Development Company, L.P. | Parallel processing of input data to locate landmarks for chunks |
US7979491B2 (en) * | 2009-03-27 | 2011-07-12 | Hewlett-Packard Development Company, L.P. | Producing chunks from input data using a plurality of processing elements |
US8321645B2 (en) | 2009-04-29 | 2012-11-27 | Netapp, Inc. | Mechanisms for moving data in a hybrid aggregate |
US20100281077A1 (en) * | 2009-04-30 | 2010-11-04 | Mark David Lillibridge | Batching requests for accessing differential data stores |
US9141621B2 (en) * | 2009-04-30 | 2015-09-22 | Hewlett-Packard Development Company, L.P. | Copying a differential data store into temporary storage media in response to a request |
US8156306B1 (en) | 2009-12-18 | 2012-04-10 | Emc Corporation | Systems and methods for using thin provisioning to reclaim space identified by data reduction processes |
US8499131B2 (en) | 2010-04-13 | 2013-07-30 | Hewlett-Packard Development Company, L.P. | Capping a number of locations referred to by chunk references |
-
2008
- 2008-04-25 US US12/988,365 patent/US8959089B2/en active Active
- 2008-04-25 GB GB1015473.0A patent/GB2472520B/en active Active
- 2008-04-25 WO PCT/US2008/061576 patent/WO2009131585A1/en active Application Filing
- 2008-04-25 CN CN200880128811.2A patent/CN102016789B/zh active Active
- 2008-04-25 DE DE112008003826.0T patent/DE112008003826B4/de active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6122626A (en) * | 1997-06-16 | 2000-09-19 | U.S. Philips Corporation | Sparse index search method |
WO2006030326A1 (en) * | 2004-09-17 | 2006-03-23 | 3Dhistech Kft. | Method and computer program product for the storage ensuring fast retrieval and efficient transfer of interrelated high-volume 3d information |
Also Published As
Publication number | Publication date |
---|---|
WO2009131585A1 (en) | 2009-10-29 |
DE112008003826B4 (de) | 2015-08-20 |
CN102016789A (zh) | 2011-04-13 |
DE112008003826T5 (de) | 2011-04-14 |
GB2472520A (en) | 2011-02-09 |
GB2472520B (en) | 2012-11-21 |
GB201015473D0 (en) | 2010-10-27 |
US20110040763A1 (en) | 2011-02-17 |
US8959089B2 (en) | 2015-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102016789B (zh) | 数据处理装置和处理数据的方法 | |
CN101855620B (zh) | 数据处理设备和数据处理方法 | |
CN101855636B (zh) | 数据处理设备及数据处理方法 | |
CN102999519B (zh) | 一种数据库的读写方法及系统 | |
CN101719141B (zh) | 基于目录对象的文件处理方法和系统 | |
CN100377112C (zh) | 磁盘驱动器、其控制方法以及磁盘伪造的探测方法 | |
EP2924594B1 (en) | Data encoding and corresponding data structure in a column-store database | |
US7805439B2 (en) | Method and apparatus for selecting data records from versioned data | |
JP5233233B2 (ja) | 情報検索システム、情報検索用インデックスの登録装置、情報検索方法及びプログラム | |
US20120310630A1 (en) | Tokenization platform | |
CN1975721B (zh) | 用于管理内容文件信息的方法和装置 | |
JP2005267600A5 (zh) | ||
CN104679847B (zh) | 一种构建在线实时更新海量音频指纹库的方法和设备 | |
CN110737432A (zh) | 一种基于词根表的脚本辅助设计方法及装置 | |
CN110716739A (zh) | 一种代码变更信息统计方法、系统和可读存储介质 | |
JP2005293384A (ja) | コンテンツレコメンドシステムと方法、及びコンテンツレコメンドプログラム | |
EP4113313A1 (en) | Control method, information processing device, and control program | |
WO2015166052A1 (en) | Data acquistion | |
Magnusson | THÈME User’s manual | |
CN104899213A (zh) | 一种解析组织机构名的方法和装置 | |
CN109002444A (zh) | 全文检索方法和全文检索装置 | |
CN112286874B (zh) | 一种基于时间的文件管理方法 | |
JP6901005B2 (ja) | 情報蓄積装置、データ処理システム、およびプログラム | |
JP4752388B2 (ja) | 文書管理システム、文書管理方法及び文書管理プログラム | |
US7840583B2 (en) | Search device and recording medium |
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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170120 Address after: American Texas Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American Texas Patentee before: Hewlett Packard Development Co. |