CN101855620A - 数据处理设备和数据处理方法 - Google Patents
数据处理设备和数据处理方法 Download PDFInfo
- Publication number
- CN101855620A CN101855620A CN200780101503A CN200780101503A CN101855620A CN 101855620 A CN101855620 A CN 101855620A CN 200780101503 A CN200780101503 A CN 200780101503A CN 200780101503 A CN200780101503 A CN 200780101503A CN 101855620 A CN101855620 A CN 101855620A
- Authority
- CN
- China
- Prior art keywords
- block
- input
- inventory
- data
- processing equipment
- 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.)
- Granted
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/1451—Management of the data involved in backup or backup restore by selection of backup contents
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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Complex Calculations (AREA)
Abstract
一种数据处理设备,包括:块储存器,包含样本数据块6;清单储存器,包含至少一个清单,该清单代表数据集的至少一部分并被分为清单段,每个清单段包括到至少一个所述样本数据块的至少一个引用,所述数据处理设备能够操作以将输入数据处理成输入数据段,每个输入数据段包括一个或多个输入数据块;以及识别具有到对应于至少一个输入数据段的输入数据块的所述样本数据块的至少一个所述引用的至少一个所述清单段。
Description
背景技术
保持在主数据存储介质上的数据可以被备份至辅助数据存储介质。辅助数据存储介质的位置可以与主数据存储介质的位置不同。如果主数据存储介质上的数据出现至少部分丢失,可以从辅助数据存储介质恢复数据。辅助数据存储介质可以包含在一定时间段内存储在主数据存储介质上的数据的历史。应用户请求,辅助数据存储介质可以向用户提供在指定的时间点存储在主数据存储介质上的数据。
可以每周、每天、每小时或者以其它间隔执行数据备份过程。可以以增量方式对数据进行备份,在这种数据备份过程中,仅仅自上一次备份以来对主数据介质上的数据所做的改变被转移到辅助数据存储介质。还可以执行全备份,在这种全备份过程中,主数据介质的全部内容被拷贝至辅助数据介质。存在许多其它的备份策略。
当对数据进行备份时,正被备份的数据的特定部分先前可能已被存储到主数据存储介质,当执行全备份时情况尤其如此。将相同数据存储许多次表示数据存储介质的低效利用。
发明内容
本发明的一个实施例提供了数据处理设备,包括:块(chunk)储存器,包含样本数据块;清单(manifest)储存器,包含至少一个清单,该清单代表数据集的至少一部分并被分为清单段,每个清单段包括到至少一个所述样本数据块的至少一个引用(reference),所述数据处理设备能够操作以将输入数据处理成输入数据段,每个输入数据段包括一个或多个输入数据块;以及识别具有到对应于至少一个输入数据段中的输入数据块的所述样本数据块的至少一个所述引用的至少一个所述清单段。
在一个实施例中,该数据处理设备能够操作以选择所述输入数据段并识别具有到对应于所选择的输入数据段中的输入数据块的所述样本数据块的至少一个所述引用的至少一个所述清单段。
在一个实施例中,该数据处理设备能够操作以从所述至少一个所识别的清单段中识别出到对应于至少一个输入数据段中的至少一个另外的输入数据块的所述样本数据块的至少一个所述引用。
在一个实施例中,该数据处理设备能够操作以针对至少一个后续操作对多个所识别的清单段排列优先级。
在一个实施例中,根据该多个所识别的清单段的每个所具有的到对应于至少一个输入数据段中的输入数据块的样本数据块的所述引用的数目,来对该多个所识别的清单段排列优先级。
在一个实施例中,按照该多个所识别的清单段的每个所包含的到对应于至少一个输入数据段中的输入数据块的样本数据块的所述引用的数目的降序,来对该多个所识别的清单段排列优先级。
在一个实施例中,该数据处理设备能够操作以从清单储存器中存储的不同清单中识别所述清单段。
在一个实施例中,输入数据段和所述清单段每个具有预定的大小。
在一个实施例中,输入数据段和清单段的大小基本等同。
在一个实施例中,该数据处理设备能够操作以将给定的输入数据段中的每个输入数据块与在所识别的至少一个清单段中引用的样本数据块进行比较,以识别对应于所述输入数据段中的输入数据块的样本数据块。
在一个实施例中,该数据处理设备能够操作用于以预定的顺序处理每个输入数据段。
在一个实施例中,该数据处理设备包括块索引,所述块索引包含关于所述样本数据块的信息。
在一个实施例中,该数据处理设备能够操作以使用块索引中的所述信息,来识别至少一个所述清单段。
在一个实施例中,清单储存器包含由所述至少一个清单引用的所述至少一个样本数据块的块标识符。
在一个实施例中,该数据处理设备能够操作以生成所述输入数据段的每个输入数据块的块标识符,以及将每个输入数据块的块标识符与清单储存器中包含的块标识符进行比较。
在本发明的另一实施例中,提供了一种数据处理器,包括:块储存器,包含样本数据块;清单储存器,包含至少一个清单,该清单代表数据集的至少一部分并被分为清单段,每个清单段包括到至少一个所述样本数据块的至少一个引用,该处理器能够操作以将输入数据处理成输入数据段,每个输入数据段包括一个或多个输入数据块;选择输入数据段;并识别具有到对应于所选择的输入数据段中的输入数据块的所述样本数据块的至少一个所述引用的至少一个所述清单段。
在本发明的另一实施例中,提供了一种使用下述装置的数据处理方法:块储存器,包含样本数据块;清单储存器,包含至少一个清单,该清单代表数据集的至少一部分并被分为清单段,每个清单段包括到至少一个所述样本数据块的至少一个引用,该方法包括:将输入数据处理成输入数据段,每个输入数据段包括一个或多个输入数据块;选择输入数据段;并识别具有到对应于所选择的输入数据段中的输入数据块的所述样本数据块的至少一个所述引用的至少一个所述清单段。
在一个实施例中,该方法包括:对所述识别的至少一个清单段进行分析,以识别到对应于所选择的输入数据段中的至少一个另外的输入数据块的所述样本数据块的至少一个所述引用。
在一个实施例中,根据所识别的至少一个清单段中的每个所包含的到对应于所选择的输入数据段中的输入数据块的样本数据块的引用的数目,来对所识别的至少一个清单段排列优先级。
在另一实施例中,提供了一种编辑代表输入数据集的清单的方法,该方法包括:将输入数据集处理成输入数据段,每个输入数据段包括一个或多个输入数据块;在清单储存器中识别至少一个先前编辑且存储的清单的至少一个清单段,该清单段具有到对应于至少一个输入数据段中的输入数据块且存储在块储存器中的至少一个样本数据块的引用。
附图说明
现在将参考附图以示例方式说明本发明的实施例,附图中:
图1示出数据集的示意性表示;
图2示出根据实施例的数据处理设备的示意性表示;
图3示出在使用中图2的数据处理设备的示意性表示;
图4示出另一个数据集的示意性表示;
图5示出根据另一实施例的另一数据处理设备的示意性表示;
图6示出根据本发明实施例的方法的流程图。
具体实施方式
图1示出了数据集1的示意性表示。数据集1可以比图1所示的数据集更短或更长。数据集1包括一定量的数据,其可以是10字节、1000字节或数百万字节的量级。数据集可以代表对于给定备份操作的所有数据或者较大数据集的至少一部分。
备份数据集可以包括连续数据流或不连续数据流。无论是哪个,数据集可以包含许多不同的单独的文件或者文件部分。数据集可以不被划分成它所包含的单独的文件。数据集可以包含嵌入信息,包括到包含在数据集中的单独文件的边界的引用。数据集于是可以被更容易地分割成它的组成分量。嵌入信息的大小可能代表全部数据的相当大部分。备份具有嵌入文件信息的数据增加了数据存储介质的所需容量。
根据实施例的数据处理设备能够操作以将输入数据集处理成一个或多个输入数据块。输入数据集可以被分成多个输入数据块。每个输入数据块可以代表输入数据集内的单独文件、单独文件的一部分或者单独文件的群组。可以基于输入数据作为整体的属性将数据集处理成输入数据块,而与包含在其中的单独文件具有极少关系或没有关系。数据块的边界与文件边界可以具有共同边界或可以不具有共同边界。数据块的大小可以等同或者不同。
图1示出了被处理成数据块2的输入数据集1的示意性表示。为方便起见,在图1中从A-O对每个输入数据块进行标记,以识别数据块2彼此不同。输入数据集1可能被分成比图1所示那些更多的输入数据块2。输入数据集1的大小可能是许多太字节,并被处理成数十亿个输入数据块。存在本领域技术人员可以获得的用来确定输入数据集1如何被处理成输入数据块2以及每个输入数据块2包含哪些信息的特定方案。
图2示出根据实施例的数据处理设备3(包括至少一个处理器)。数据处理设备3包括块储存器4和清单储存器5。清单储存器5可以与块储存器4分立且与块储存器4分离,但两个储存器4和5均可以驻留在共同的数据存储介质或存储装置上。当由数据处理设备3来处理输入数据集1时,输入数据块2作为样本数据块6被存储到块储存器4,如图3(a)所示。样本数据块6是输入数据块2的副本。块储存器4可存储多个样本数据块6。块储存器4可包含先前已经由数据处理设备3处理过的所有输入数据块2。图3(a)示出正首次填充(populate)数据的数据处理设备。
在一个实施例中,块储存器4和清单储存器5均存储在非易失性存储装置中。
当将输入数据块2作为样本数据块6添加到块储存器4中时,编辑清单7,也如图3(a)所示。清单7是数据集1的表示。该清单7包括到块储存器4中的样本数据块6的引用,样本数据块6对应于构成输入数据集1的输入数据块2。因此,清单7的引用可视为样本数据块6的元数据。如果给定清单7的到样本数据块6的引用在大小上小于清单7所引用的样本数据块6,则将意识到,清单7在大小上可能小于它代表的输入数据集1。清单可被视为它代表的输入数据集的副本,其中输入数据的输入数据块已经被到对应于输入数据块的样本数据块的引用“取代”。因此,清单可以作为具有相同大小的输入数据集的副本而开始,以及当一些输入数据块被到对应于输入数据块的样本数据块的引用所取代时,清单的数据大小被减小。
当输入数据集1已经被处理成输入数据块2并且清单7被编辑时,代表输入数据集1的清单7被存储在清单储存器5中,如图3示意性所示的。
如果数据处理设备3的用户希望恢复给定输入数据集1的数据-这可能涉及在特定时间点进行的备份,则数据处理设备将从清单储存器5检索对应清单7。清单7中到块储存器4中的样本数据块6的每个引用然后被用于重建原始数据集1。
数据处理设备能够操作以将清单7分成清单段8。图3(b)中示意性示出的清单段8可能是清单7的并发数据的区段。清单7可以被分成多个清单段8。清单7的所有清单段8的每个可具有预定的大小、不同的大小、或可能全都具有基本上相同的大小。在一个实施例中,每个清单段8包括到块储存器4中的样本数据块6的多个引用。
在一个实施例中,清单7在清单储存器5中存储为到样本数据块6的引用的单个区块。可以通过使用边界的标记或参考点,在清单7内划分清单段8。清单段8的边界与到样本数据块6的引用的边界可以具有共同边界或可以不具有共同边界。
清单段8可以分离地存储在清单储存器中。可保持清单段8一起构成特定清单7的记录。如果用户希望恢复由被分成清单段8的给定清单7所代表的数据集,则可首先使用清单段8和这些清单段如何一起构成清单的记录来重建清单7。所重建的清单7中到块储存器4中的样本数据块6的每个引用然后用来重建原始数据集;或者,更确切地,所重建的清单7的每个清单段8中的每个引用然后用于重建原始数据集。
在图3(a)和(b)所示的示例中,已经由具有三个清单段8的清单7来代表输入数据集1。该清单段每个包含五个到块储存器4中存储的样本数据块6的引用。这三个清单段是:ABCDE,FGHIJ和KLMNO。应该明白,清单段8可包含比该示例所示更多或更少的引用。每个清单段8可包含到样本数据块6的数千引用。
在图4中示出了待处理的第二输入数据集11的示意性表示。如果没有数据处理设备3,则第二输入数据集11可以被完整地存储。因此,即便读者将认识到两个输入数据集1、11包括共同的输入数据块E到K,但每一个输入数据块的两个发生都将被存储,这是数据存储介质的低效使用。
利用数据处理设备3,当输入数据集11被提供给数据处理设备3时,输入数据集11被处理成输入数据块12。此外,输入数据集11被处理成输入数据段13。每个输入数据段可包括一个或多个输入数据块。在一个实施例中,输入数据集11首先可被处理或分成输入数据段13,此后每个输入数据段13被分成输入数据块12。在另一实施例中,输入数据段13可以基于数据集11已经被处理成的输入数据块的数目来创建。
输入数据段13可以包含与清单段8所包括的到样本数据块6的引用一样多的输入数据块12。在图4所示的示例中,第一输入数据段13包含五个输入数据块12,而第二输入数据段包含4个输入数据块12。在另一实施例中,输入数据段13可以包含更多或更少的输入数据块12。在一个实施例中,输入数据集11可被分成包含多达预定最大数目的输入数据块12的输入数据段13。
数据处理设备3能够操作以识别清单储存器5中的至少一个清单段8,该至少一个清单段8包括到对应于输入数据集11的至少一个输入数据段13中的至少一个输入数据块12的样本数据块6的至少一个引用。当处理图4所示的输入数据集11时,数据处理设备3可以识别出清单储存器5中存储的至少一个清单段8包括到对应于输入数据段13中的至少一个输入数据块12的至少一个样本数据块6的引用。在这个示例中,数据处理设备可识别出,其中,清单段8包括到样本数据块E、F、G、H、I、J和K的引用。如此识别之后,数据处理设备3将不会再次在块储存器4中存储输入数据块E、F、G、H、I、J和K,因为它们已经作为样本数据块6存在于其中。代替地,待被编辑的用于输入数据集11的清单将包括到已经在块储存器4中的样本数据块E、F、G、H、I、J和K的引用。
本领域技术人员能得到多种方法来识别在该清单储存器中包括到样本数据块的至少一个引用的清单段。在一个实施例中,可以为输入数据集中的每个输入数据块生成块标识符。块标识符可以是块的散列,并且稍后描述。可以将输入数据块的块标识符与已经在块储存器内的样本数据块的块标识符进行比较。如果找到了匹配的样本数据块,可以识别包含到该样本数据块的引用的任何清单。
在另一个实施例中,可以在输入数据块和块储存器内的样本数据块之间执行逐字节的比较。本发明的实施例可以使用识别块储存器内对应于输入数据块的样本数据块的其他方法,以及不限于上面描述的示例。
待编辑的用于输入数据集11的清单的清单段可以包含与该输入数据11的输入段13包含的输入数据块12一样多的到样本数据块6的引用。因此,清单段8以及它的对应的输入数据段13可以是彼此的镜像。
读者将注意到该块储存器4不包含对应于输入数据块P以及Q的样本数据块6。类似地,该清单储存器5内的清单7不包含到对应于输入数据块Q以及P的样本数据块6的引用。在一个实施例中,该数据处理设备能够操作以确定该块储存器4还没有包含对应于输入数据块Q以及P的样本数据块6。
因此,数据处理设备3可以将输入数据块Q以及P作为样本数据块6存储在该块储存器4内。然后,通过添加到样本数据块Q以及P的引用,来完成用于该输入数据集12的清单。新的清单然后被添加到该清单储存器5。如上所述,清单被分成清单段。在此示例中,第一清单段可以包含到样本数据块EFGHI的引用,以及第二清单段可以包含到样本数据块JKPQ的引用。
在一个实施例中,在该数据处理设备3已经部分编辑了具有到样本数据块EFGHIJK的引用的清单之后,该数据处理设备3能够操作以选择输入数据块P以及Q中的一个,以及尝试识别该清单储存器5中的至少一个清单段8,该至少一个清单段8包括到对应于输入数据块P以及Q中任一个的样本数据块6的至少一个引用。在所示的示例中,将不会定位到这样的清单段。数据处理设备3可以能够操作以识别包括到对应于输入数据集1的每个输入数据块2的样本数据块的引用的清单段8,或识别到对应于输入数据集的输入数据段的每个输入数据块2的样本数据块的引用的清单段8。
作为使用数据处理设备的结果,该块储存器4可以包含每个样本数据块6的仅一次发生,这是块储存器4的高效使用。使用数据处理设备存储第一输入数据集1以及第二输入数据集11的′占用空间(footprint)′可以小于不使用按照实施例的处理器来存储第一输入数据集1以及第二输入数据集11的占用空间。
利用数据处理设备3,该数据处理设备3将该输入数据集11处理成输入数据段13,每个输入数据段包含输入数据块12。该数据处理设备可以能够操作以从该输入数据集11选择输入数据段13。该选择可以是该输入数据集11中的第一输入数据段11,或者它可以是另一个选择。从划分的输入数据集11中选择输入数据段13以供处理可以是随机的或者伪随机的。
在一个实施例中,该数据处理设备3使用选择的输入数据段13来识别在该清单储存器5中已经存储的至少一个清单段8,该至少一个清单段8包括到对应于该选择的输入数据段13中的至少一个输入数据块12的样本数据块6的至少一个引用。
如上所述,已经识别了该清单储存器5中的至少一个清单段8以后,体现本发明的数据处理设备3能够操作以分析该至少一个清单段8从而识别对应于所选择的输入数据段13中的至少一个另外的输入数据块12的样本数据块6。
数据处理设备3的益处在于,为了确定每一个输入数据块2是否已经被存储为样本数据块6不需要对于每一个输入数据块2彻底检索块储存器4。代替地,数据处理设备3可以利用为先前处理和存储的数据集创建的清单段8。当正处理的输入数据集在很大程度上与先前处理的数据集类似时,进一步展示了数据处理设备3的益处。例如,在两个全备份操作之间,相应数据集的仅仅一小部分可能是不同的。不得不系统地搜索存储在块储存器4中的每个样本数据块6以找到与输入数据段的每个输入数据块对应的样本数据块6是低效且耗时的。
数据处理设备3能够利用正处理的每个输入数据集1可能类似这样的事实。照此,先前的类似的清单部分能被用于编辑用于最近的输入数据集的新清单的至少一部分,因为由先前的清单段引用的许多样本数据块6可能与正被处理的输入数据集的输入数据段的输入数据块是等同的。
在一个实施例中,已经识别出所述至少一个清单段以后,数据处理设备3能够操作以在该清单段中搜索到块储存器4中的样本数据块6的所有其他引用,从而识别对应于正被处理的输入数据段中的另外输入数据块2的样本数据块6。在一个实施例中,通过从选择的输入数据段中选择输入数据块并将它与该至少一个识别的清单段中的每个引用进行比较,来执行该搜索。当找到了到对应于输入数据块的样本数据块6的引用时,在新的清单中用到该样本数据块6的引用来表示该输入数据块。正被处理的输入数据段的后续输入数据块2然后被选择用于后续搜索。该操作操作可以继续直到输入数据段的所有输入数据块2已经与识别的(一个或多个)清单段中的所有引用进行了比较为止。
在另一个实施例中,当已经找到了预定数目的到对应于输入数据段中的输入数据块2的样本数据块6的引用时,该搜索操作可以终止。在另一个实施例中,当数据处理设备3未能找到到对应于输入数据段中的预定数目的输入数据块2的样本数据块6的引用时,该搜索操作可以终止。此实施例的益处是,可以从该搜索过程中迅速地扣除(discount)不包含到对应于输入数据段中的任何其他输入数据块2的样本数据块6的引用的清单段。
在一个实施例中,该数据处理设备3进一步提供块索引9,如图5中所示。该块索引9包含关于在该块储存器4中存储的至少一个样本数据块6的信息。在一个实施例中,该块索引9包含仅仅关于在块储存器4中包含的一些样本数据块6的信息。块索引9包含关于其的信息的样本数据块6可以特定地选择或者随机选择。在另一个实施例中,该块索引9可以包含关于在该块储存器4中存储的每个样本数据块6的信息。
在一个实施例中,该块索引9可以存储在随机存取存储器(RAM)中。该存储器可以是易失性的。
在本发明的实施例中,在该块索引9中包含的用于给定样本数据块6的信息可以包括该样本数据块的块标识符。块标识符可以是与它有关的样本数据块6的数字指纹。该块标识符可以是唯一的块标识符,对于特定的样本数据块6是唯一的。可以选择用于生成块标识符的算法,以便能够为预定数目的样本数据块6生成唯一的块标识符。在一个实施例中,该块标识符是使用SHA1散列算法生成的。可以使用其他散列算法,诸如SHA2或者MD5。在一个实施例中,选择并配置该散列算法,以便两个样本数据块6生成等同的块标识符基本上在概率上是不太可能的。
在另一个实施例中,在该块索引9中包含的用于给定样本数据块6的信息可以仅仅包括部分块标识符。例如,虽然该样本数据块6可能有唯一的块标识符,但可能对照块索引9中用于样本数据块6的记录来存储该块标识符的仅仅一部分。在一个实施例中,该部分块标识符可能包含完整块标识符中的第一预定数目的比特。例如,如果用于给定样本数据块6的完整块标识符包括20个比特(诸如通过SHA1算法所生成的),该块索引9可以存储例如该块标识符中的15个比特。该预定比特可以是该块标识符的最高有效位(MSB)、最低有效位(LSB)、或该完整块标识符的中间比特。在一个实施例中,所生成的块标识符基本上是伪随机的,从而具有基本上在统计上均匀分布的值。
由此断定,两个不同的样本数据块6的部分标识符可能是等同的,即便它们相应的完整块标识符彼此不同且唯一。在该块索引9中仅仅存储部分块标识符的益处是,减小了该块索引9的大小。
在一个实施例中,对于块索引9中关于给定的样本数据块6的特定条目,存储了清单储存器5中包括到所述样本数据块6的引用的至少一个清单段8(以及/或者清单7)的细节。在一个实施例中,在索引中存储有至少包含到该样本数据块6的引用的所有清单段的列表。在另一个实施例中,可能存储有包含到该样本数据块6的至少一个引用的清单段8的仅仅部分列表。
在一个实施例中,对于块索引9中关于样本数据块的给定条目,存储有到该清单储存器中包括到该样本数据块的引用的至少一个清单段8的引用。在一个实施例中,该引用通常可以是针对清单段的。在另一个实施例中,该引用可以指示清单段中存在到该样本数据块的引用的位置。
使用中,该清单储存器5可以包含许多清单段8,每个清单段形成表示先前处理的数据集1的清单7的部分。在一个实施例中,该清单储存器5包含关于其中包含的每个清单段8的信息。该信息可以包括与每个清单段8相关联的属性,诸如它的大小、它包含的引用的数目、或者它表示的数据集的名字以及其他细节。用于特定清单段的信息可以包括由该清单段8引用的至少一个样本数据块6的块标识符。因此,特定清单段8可以不仅仅包括到该块储存器4中存储的样本数据块6的一组引用,还可以包括用于所引用的那些样本数据块6中的每一个的完整块标识符。
在一个实施例中,已经识别出清单储存器中的、包括到对应于给定输入数据段中的至少一个输入数据块的所述样本数据块的至少一个所述引用的至少一个清单段8以后,该数据处理设备能够操作以分析该识别的清单段来识别对应于该输入数据段中的另外输入数据块的样本数据块。在其中清单段包括由该清单段引用的每个样本数据块的块标识符的实施例中,数据处理设备能够操作以将输入数据块的块标识符与该清单段中的块标识符进行比较。这样的益处是,可以不需要访问块索引9中的信息。因此,使用所识别的清单段而非块储存器4来执行比较过程,可以允许在RAM中时处理用于比较的数据的至少一部分。
该清单信息可以包含在该块储存器4中的、由清单段8引用的至少一个样本数据块6的位置。因此可以仅仅使用块储存器4以及清单中的位置数据,来重建由该清单代表的数据集。可以不需要访问块索引8。
数据处理设备3能够操作以生成输入数据块2的块标识符。在一个实施例中,该数据处理设备3能够操作以在已经将输入数据集1处理成输入数据块2和/或输入数据段之后,或在将输入数据集1处理成输入数据块2和/或输入数据段的同时,为每个输入数据块2生成块标识符。
为输入数据块2生成的块标识符可以被用于识别块储存器4中对应于该输入数据块2的样本数据块6。在一个实施例中,将该输入数据块2的块标识符与样本数据块6的块标识符进行比较。这样的益处是,输入数据块2本身不直接与样本数据块6进行比较。因为相应块标识符可能在大小上小于它们代表的输入/样本数据块6,所以用来查看该两个块标识符是否彼此对应的比较步骤可以更快速地执行。而且,因为该块标识符可以在大小上相对地小于它们与之有关的相应块,所以可以在两个块标识符均存储在RAM中的同时,执行该比较步骤。如果输入数据块2的块标识符与样本数据块的块标识符等同,则输入数据块2与样本数据块能被假定为彼此等同。如上所述,这假定,选择用于生成块标识符的算法以便生成唯一的标识符。使用部分块标识符将产生标识符的非唯一集合,意味着将识别出一个或多个潜在对应的样本数据块。
在一个实施例中,该处理设备能够操作以将输入数据块2的块标识符与存储在块索引9中的块标识符进行比较。可以通过将输入数据块2的块标识符与存储在块索引9中的每个块标识符依次进行比较来执行比较步骤。可替换地,可以基于块标识符的属性组织块索引9中的块标识符。例如,可以基于块标识符的每个比特的二进制状态以树状配置来布置块索引9中的块标识符。在这个示例中,可以分析每个块标识符的MSB,并且根据MSB的值(即:或者为“0”或者为“1”)将每个块标识符分配到树的分支。这两个“分支”的每个可以基于下一MSB的值进一步分成两叉。这些分支的每个将基于接下来的MSB进一步分成两叉,以此类推。
利用上述的块索引9中的条目的配置,在尝试针对与选择的输入数据块2对应的样本数据块6找到块索引9中的条目的过程中,数据处理设备3能够操作以迅速地“向下钻探(drill down)”块索引9中的条目。
在一些实施例中,“对应”是指输入数据块2的块标识符与样本数据块6的块标识符等同。输入数据块2与样本数据块6由此说成是彼此“对应”的。可替换地,在利用部分块标识符的情况下,尽管给定的输入数据块2和样本数据块6的相应部分块标识符可以等同,但是实际的输入数据块2与样本数据块6可以不同,如上所述。然而,输入数据块2与样本数据块6被说成是对应的,因为至少它们的相应部分块标识符彼此等同。
在本发明的一个实施例中,在为输入数据块2产生块标识符并且识别块索引9中与存储在块索引9中的样本数据块6相关的对应块标识符以后,数据处理设备3能够操作以执行验证过程。该验证过程包括将输入数据块2与存储在块储存器4中的识别的样本数据块6进行比较以确认这两个数据块实际上是否等同。在没有验证过程的情况下,以及尤其在利用部分块标识符的情况下,识别为“对应”的样本数据块6实际上可能不等同于输入数据块2。包括到不等同的样本数据块6的引用将在清单内引入错误并且阻止清单内表示的数据的准确恢复。
在利用部分块标识符的实施例中,由于上述的原因,根据实施例的处理器可以识别超过一个的“对应”样本数据块6。当然,输入数据块2可以仅仅与存储在块储存器4中的样本数据块6之一等同。因此,在识别超过一个的“对应”样本数据块6的情况下,验证过程允许数据处理设备3识别该超过一个的样本数据块6中的哪一个实际与输入数据块2等同。尽管当存储仅仅部分块标识符时,验证步骤有必要构成进一步的步骤,但是另一个益处在于块索引9的大小可以较小,因为它不存储完整块标识符。所需的块索引9的大小的减小可能胜过执行验证过程的不利(如果有的话)。
在另一个实施例中,可以通过将输入数据块的块标识符与包含在识别的清单段内的块标识符进行比较来执行验证过程。这样的益处在于可能根本不需要对块储存器进行访问。可以通过仅仅利用包含在清单段中的信息和为输入数据块生成的块标识符来执行验证过程。在部分块标识符存储在块索引中的情况下,可以存在如下情形:输入数据块的部分块标识符与样本数据块的部分块标识符匹配,即使相应的输入/样本数据块不彼此匹配。结果,识别为包含到与输入数据块对应的样本数据块的引用的该至少一个清单段实际上可能没有引用与任何输入数据块对应的样本数据块。在一个实施例中,数据处理设备能够操作以对识别的(一个或多个)清单段执行验证过程。在一个实施例中,当该至少一个清单段已经被识别时,存储在(一个或多个)清单段中的被指示为与输入数据块对应的样本数据块的块标识符被验证。只有当该块标识符与输入数据块的块标识符等同,清单段才可用于后续的操作。这个实施例达到的效果可以与执行(参考块索引的)验证过程的效果相同,但是优点在于不需要参考块索引。应该明白,返回的清单段的大小可以远小于块储存器。因此,通过利用识别的清单段而非块储存器4执行比较过程,可以允许在RAM中时对用于比较的数据的至少一部分进行处理。
如上所述,一个实施例的块索引9包含仅仅与块储存器4中的一些样本数据块6相关的信息。因此,块索引9可以被说成是“稀疏”块索引9。保持这种“稀疏”块索引减小了块索引9的大小,现在将描述其益处。
数据处理设备可用于对输入数据集1进行精简以进行存储、加密或传输。例如,输入数据1可以代表用于存储在第二数据存储介质上的来自第一数据存储介质的备份数据的集合。如上所述,数据处理设备3将输入数据块2的块标识符与存储在块索引9中的块标识符进行比较。比较步骤可能需要对包含在块索引9中的数据的方便访问。在一个实施例中,块索引9可以存储在随机存取存储器(RAM)内。RAM允许对包含在其中的信息进行迅速且随机的访问。然而,可能需要减小数据处理设备所需的RAM。通过提供要存储在RAM中的稀疏块索引9,与没有稀疏索引的处理器相比较,数据处理设备需要更少的RAM。
在没有提供块索引9的情况下,数据处理设备可以将输入数据块2与存储在块储存器4中的每个样本数据块6进行比较。由于块储存器4可能是非常大的,所以将块储存器4的全部内容存储在RAM中可能是困难的或者简直是不可能的。块储存器4可以存储在非易失性存储器中例如存储在盘上。由此,从块储存器4读取数据将需要盘读取操作。这可能明显慢于访问存储在RAM中的数据。数据处理设备3包括块索引9,块索引9可以驻留在RAM中,从而允许对包含在其中的信息进行更快速访问。结果,可以更加容易地识别存储在块储存器4中的与输入数据块2对应的样本数据块6,而不需要对块储存器4进行持续的直接访问。如上所述,可以存在验证过程。尽管这个操作将需要对存储在盘上的块储存器4中的样本数据块6进行访问,但是这可能需要块储存器4的仅仅一次盘寻找以及单个样本数据块6的检索。
在本发明的实施例包括稀疏块索引9的情况下,可以存在如下情况:与输入数据块2对应的样本数据块6存在于块储存器4中,但是在块索引9中没有关于样本数据块6的条目。因此,当将输入数据块2的块标识符与块储存器4中的条目进行比较时,数据处理设备3最初可能指示不存在对应的样本数据块6,并且再一次(for a second time)将输入数据块2作为样本数据块6存储在块储存器4中。尽管再一次将输入数据块2存储为样本数据块6的该情况可被看作是块储存器4的低效使用,但是这种实施例的益处在于块索引9是稀疏的,并且由此利用RAM中的较少空间。需要较少RAM以及搜索稀疏块索引9花费的时间的减小的益处可以胜过再一次将输入数据块2存储为样本数据块6的不利。
然而,由于数据处理设备3能够操作以利用输入数据流可能彼此部分类似的事实,所以数据处理设备3可以识别块储存器4中的样本数据块6,即使在块索引9中可能没有针对样本数据块6的条目,如下所述。
对于给定数目的输入数据块2,即使与每个对应的样本数据块6可能已经存储在块储存器4中,但仅仅一个样本数据块6可能在块索引9内具有条目。数据处理设备3能够操作以识别块索引9中的对应的样本数据块6。数据处理设备3根据样本数据块6识别清单储存器中包括到样本数据块6的至少一个引用的至少一个清单段。在后续对识别的至少一个清单段进行分析的过程中,数据处理设备3能够操作以识别在块储存器4中存在与输入数据流的更多输入数据块2对应的样本数据块6,即使这些样本数据块6可能在块索引9内没有条目。
因此,这种数据处理设备可以能够操作以识别块储存器4中与所有的输入数据块2对应的所有样本数据块6同时仅仅包括稀疏索引。在块储存器4中可以不存在重复条目。具有稀疏块索引9的数据处理设备3在精简输入数据方面可能与具有全块索引9的数据处理设备3同样高效。高效是指存储在块储存器4中的样本数据块6没有重复或者至少在预定程度上没有重复。可以允许样本数据块的一些重复。
现在将参考图4中所示的输入数据集11描述数据处理设备的另一个实施例。
如所述的,可以将输入数据11处理成输入数据段13。数据处理设备能够操作以识别出输入数据集11的至少一个输入数据段13的至少一个输入数据块12对应于已经存储在该块储存器4中的样本数据块6。这么做时,至少输入数据集11的该输入数据块12可以用到存储在块储存器4中的样本数据块6的引用来表示。如果发现输入数据集的其他输入数据块12对应于已经存储在块储存器4中的样本数据块6,则块储存器4可以保持同样的大小,但是数据处理设备能够操作以存储第二输入数据集11的表示(也就是清单)。
在一个实施例中,参考图4,假设首先选择第一输入数据段13用于处理。该第一输入数据段13包括输入数据块EFGHI。为了确定块储存器4已经包含对应于输入数据块EFGHI的样本数据块6,在没有本发明的情况下,可能需要输入数据块与块储存器4中的每个样本数据块6的逐块比较。
在本发明的此实施例中,提供了稀疏的块索引8,其包含关于在该块储存器4中存储的仅仅一些样本数据块6的信息。该稀疏的块索引8可以具有仅仅用于具备预定特性的样本数据块6的条目。可替换地,该块索引8的稀疏性可以保持在预定水平。对于用于样本数据块6的块索引8中的每个条目,存储有该样本数据块6的块标识符。
在该实施例中,为选择的输入数据段13的每个输入数据块12生成块标识符。将该输入数据块12的块标识符与存储在块索引8中的块标识符进行比较。即便该块索引8是稀疏的块索引8,本发明的实施例配置为使得对于给定的输入数据段,块索引8中很可能存在用于对应于输入数据段13中的输入数据块12的至少一个样本数据块6的条目。
进一步参考图4,假设在块索引8中存在用于输入数据块E、G和I的条目。数据处理设备将因此识别出在该索引中存在用于对应于第一输入数据段中的三个输入数据块12的样本数据块6的条目。
对于该块索引8中用于特定样本数据块的每个条目,存储有具有到该样本数据块6的至少一个引用的清单段8的列表。在图3所示的示例中,当前存储有仅仅一个先前编辑的清单。然而,在清单储存器中可能存储有多个清单(每个均包括清单段)。特定样本数据块6可能被多个清单段引用。那些所述清单段的每一个,或者至少预定数目的所述清单段,可以对照块索引8中用于该样本数据块6的条目而列出。
在此实施例中,将看到,存储在清单储存器中的第一清单段8包括到样本数据块E的引用,该样本数据块E对应于输入数据块E。此外,存储在清单储存器中的第二清单段8包括到样本数据块G以及I两者的引用。在此实施例中,数据处理设备能够操作以首先选择具有到最大数目的对应于输入数据集11的输入数据段13中的输入数据块12的样本数据块的引用的清单段。因此,该数据处理设备将选择第二清单段8,因为它包含到对应于所选择的输入数据段13中的两个输入数据块的样本数据块6的引用。因此有很高的概率发生如下情况:第二清单段8可能包含到对应于选择的输入数据段13中的另外输入数据块的样本数据块6的引用。
已经选择了该第二清单段8以后,数据处理设备能够操作以将选择的输入数据段13的每个输入数据块12的块标识符与存储在选择的清单段8中的块标识符进行比较。无需与导致选择该清单段8的输入数据块的块标识符进行比较。这是因为,已经知道该清单段8包含到对应于输入数据块G以及I的样本数据块6的引用。然而,在其中仅仅使用与该块索引8中的条目的部分块标识符匹配的输入数据块的部分块标识符来识别该至少一个清单段的实施例中,将所有的输入数据块的完整的块标识符与在识别的清单中引用的所有的样本数据块的块标识符进行比较可能是有益的。这于是可以确保,识别的至少一个清单实际上确实具有到对应于选择的输入数据段中的输入数据块的样本数据块6的至少一个引用。
比较步骤之后,数据处理设备将确定识别的清单段8也包含到样本数据块F以及H的引用。因此,因为在块储存器4中已经存储了对应于选择的输入数据段中的所有输入数据块的样本数据块,所以可以使用到相关的样本数据块6的每一个的引用来为选择输入数据段部分编辑清单。
在另一个示例中,如果没有找到对应于选择的输入数据段中的所有输入数据块的样本数据块6,则后续的清单段可以被选择用于分析。用于后续分析的候选清单段可以具有到对应于正被处理的输入数据段中的至少一个输入数据块的样本数据块的至少一个引用。可以根据候选清单段每个包含的到对应于输入数据段中的输入数据块的样本数据块6的引用的数目,来对候选清单段排列优先级。由此断定,具有到对应于给定输入数据段中的输入数据块的许多样本数据块6(块索引8中现存)的引用的清单段可能非常类似于输入数据段。这样的清单段因此可能具有到对应于输入数据段中的其他输入数据块的样本数据块6的引用,对于所述其他输入数据块在块索引8中(由于它的稀疏性)没有对应的条目。
已经部分编辑了用于该输入数据集11的清单之后,留下第二输入数据段待处理。该第二输入数据段包括输入数据块J,K,P和O。对此示例,假设在图3(b)中所示的第三清单段8中引用的样本数据块6当中,块索引8中存在用于样本数据块6L以及M的条目。如上所述,关于块索引8中生成哪些条目的确定可能是随机的、伪随机的、或者遵循不同的算法。例如,块索引8中可能仅仅对于具有预定特性的样本数据块6生成条目。
对于第二输入数据段13,将由数据处理设备确定块索引8不包含用于对应于输入数据块J、K、P以及Q中的任何一个的样本数据块6的条目。因此,数据处理设备不能识别具有到对应于该第二输入数据段中的输入数据块的样本数据块的至少一个引用的至少一个清单段。
读者将注意到,样本数据块J以及K实际上被该清单储存器中存储的第二以及第三清单段8引用。然而,因为所述清单段均没有到在块索引8中具有条目且对应于第二输入数据段中的输入数据块的样本数据块6的引用,所以数据处理设备不会识别这些清单段。
因此,输入数据块J以及K被作为样本数据块6添加到块储存器4。用于输入数据集11的清单被填充有到样本数据块J以及K的引用。最后,因为不会找到到对应于输入数据块P以及Q的样本数据块的引用(因为它们不存在),输入数据块P以及Q被作为样本数据块6添加到该块储存器4。然后用到该样本数据块6的引用完成用于输入数据集11的清单。该清单可能进一步地分成清单段。该清单段的边界可能与它们表示的输入数据段的边界等同。
在另一个实施例中,如果发现由先前处理的清单段引用的任何样本数据块6不对应于处理的在前输入段的输入数据块,则可以将由先前处理的清单段引用的那些不匹配样本数据块6与下一个待处理的输入数据段的输入数据块进行比较。当毗邻的输入数据段之间的边界恰好位于完全对应于到由先前处理的清单段引用的样本数据块6的一连串引用的一连串输入数据块内时,这是有益的。在此实施例中,可以将先前处理的清单段的不匹配样本数据块6与下一个输入数据段的所有输入数据块进行比较。在此情况下,将确定输入数据块J已经存在于块储存器4中,因为它在下一个输入数据段的结束处被引用。
然而,在此示例中,第三清单段将不被识别,因为第二输入数据段不包含输入数据块L以及M。可以将对应于输入数据块K的新的样本数据块添加到块储存器4,而不管它已经存在的事实。虽然这可能看作是块储存器4的低效使用,这样的布置具有减少处理操作的益处。此外,通过一次仅仅比较清单段和输入数据段,可以在RAM中执行比较操作。
对于图4中所示的示例,有可能识别出在块储存器4中存在样本数据块K,但是将需要对所有的输入数据块与所有的样本数据块6进行比较。对于大的清单以及输入数据集,这可能是不可能的。至少,这样的比较无法在RAM中高效地执行。因为在一个实施例中,清单储存器以及块储存器4被存储在非易失性存储装置上,所以会需要多个盘读取操作,而这是低效的。数据处理设备可能一次加载输入数据段和清单数据段到RAM中。当迅速找到对应于输入数据块的样本数据块6时,可便利地减少盘读取操作。
在其中输入数据段包含彼此等同的两个输入数据块且在块储存器中没有找到对应于输入数据块的样本数据块的一个实施例中,数据处理设备能够操作以仅仅将一个输入数据块作为样本数据块存储在块储存器中。针对输入数据段编辑的清单将被编辑有到块储存器中的单个样本数据块的两个引用。在一个实施例中,数据处理设备能够操作以通过将输入数据段的每个输入数据块彼此比较来执行此操作。当输入数据集被处理成包括输入数据块的输入数据段时,可执行此操作。在一个实施例中,可以在数据处理设备设法识别具有到对应于至少一个输入数据段中的输入数据块的样本数据块的至少一个引用的至少一个清单段之前执行此操作。
在另一个实施例中,可以在数据处理设备已尝试识别具有到对应于至少一个输入数据段中的输入数据块的样本数据块的至少一个引用的至少一个清单段之后执行此操作。
在另一个实施例中,可以在数据处理设备已尝试从该至少一个所识别的清单段中识别到对应于正被处理的输入数据段中的至少一个另外的输入数据块的样本数据块的至少一个引用之后执行此操作。在这样的实施例中,用于寻找在输入数据段中的重复的输入数据块的操作于是可以仅仅需要对没有被识别为对应于所识别的清单段或多个清单段的样本数据块的那些输入数据块执行。
在一个实施例中,提供了一种数据处理设备,包括:块储存器,包含样本数据块6;以及清单储存器,包含至少一个清单,所述清单代表数据集的至少一部分并被分成清单段,每个清单段包括到至少一个所述样本数据块6的至少一个引用。该处理器能够操作以将输入数据处理成输入数据段,每个输入数据段包括一个或多个输入数据块;选择输入数据段;以及识别具有到对应于选择的输入数据段中的输入数据块的所述样本数据块的至少一个所述引用的至少一个所述清单段。
根据实施例的处理数据的方法,如图6中所示,使用:块储存器,包含样本数据块;以及清单储存器,包含至少一个清单,所述清单代表数据集的至少一部分并被分成清单段,每个清单段包括到至少一个所述样本数据块的至少一个引用。该方法将输入数据处理14为输入数据段,每个输入数据段包括一个或多个输入数据块;选择15输入数据段;以及识别16具有到对应于选择的输入数据段中的输入数据块的所述样本数据块的至少一个所述引用的至少一个所述清单段。
本发明的一个实施例提供了一种编辑清单的方法,该清单代表输入数据集,所述方法包括:将输入数据集处理成输入数据段,每个输入数据段包括一个或多个输入数据块;以及在清单储存器中识别至少一个先前编辑并存储的清单的至少一个清单段,其具有到块储存器中存储的、对应于至少一个输入数据段中的输入数据块的至少一个样本数据块的引用。
当首次提供本发明的实施例的块储存器4和清单储存器5时,块储存器4中没有存储样本数据块6,且清单储存器中没有存储清单。然后块储存器4和清单储存器5均得以填充。因此,当处理第一输入数据集1时,从输入数据集1划分的每个输入数据块2将作为样本数据块6而被添加到块储存器4。将为输入数据集1编辑清单并将其添加到清单储存器5。图3示出了根据实施例的至少部分填充的处理器的示例。将知道,随着越来越多的输入数据集1被处理,块储存器4和清单储存器5将分别包含更多的样本数据块6和清单。可以达到要进行处理的输入数据集的大多数输入数据块2对应于已经存储在块储存器4中的样本数据块6的点。在这种情况下,可以针对输入数据集编辑清单6而不用向块储存器4添加任何新内容,从而进一步展示了根据一些实施例的方法的优点。
数据处理设备3可以形成数据精简或去重复管理系统的一部分。数据处理设备3可以集成到数据存储系统中。数据处理设备3可被配置为当将数据发送至数据存储系统以进行存储时,“主动地”工作。可实时执行精简。可替换地,可以在“非高峰(off peak)”时段期间将数据提供给数据处理设备3。非高峰是指可能没有正在将数据提供给数据存储系统以进行存储,并且由此数据处理设备3可以处理已经存储在数据存储系统上的数据从而减少已经存储在数据存储系统上的任何重复数据的时段。数据处理设备可以形成数据存储系统的数据内务处理(housekeeping)系统的一部分。
当用于本说明书和权利要求书中时,术语“包括”和“包含”及其变型是指包括指定的特征、步骤或整数。这些术语不应被解释为排除其它特征、步骤或组件的存在。
以其具体形式或按照执行所公开功能的装置或者获得所公开结果的方法或过程而表达的在上述说明书或下面的权利要求书或附图中公开的特征可以视情况而单独地或者以这种特征的任何组合用于以各种形式实现本发明。
Claims (20)
1.一种数据处理设备,包括:
块储存器,包含样本数据块;
清单储存器,包含至少一个清单,该清单代表数据集的至少一部分并被分为清单段,每个清单段包括到至少一个所述样本数据块的至少一个引用,
所述数据处理设备能够操作以:将输入数据处理成输入数据段,每个输入数据段包括一个或多个输入数据块;以及识别具有到对应于至少一个输入数据段中的输入数据块的所述样本数据块的至少一个所述引用的至少一个所述清单段。
2.权利要求1的数据处理设备,其中该数据处理设备能够操作以选择所述输入数据段并识别具有到对应于所选择的输入数据段中的输入数据块的所述样本数据块的至少一个所述引用的至少一个所述清单段。
3.权利要求1的数据处理设备,能够操作以从所述至少一个所识别的清单段中识别到对应于至少一个输入数据段中的至少一个另外的输入数据块的所述样本数据块的至少一个所述引用。
4.权利要求1的数据处理设备,其中该数据处理设备能够操作以针对至少一个后续操作对多个所识别的清单段排列优先级。
5.权利要求4的数据处理设备,其中根据该多个所识别的清单段的每个所具有的到对应于至少一个输入数据段中的输入数据块的样本数据块的所述引用的数目,来对该多个所识别的清单段排列优先级。
6.权利要求5的数据处理设备,其中按照该多个所识别的清单段的每个所包含的到对应于至少一个输入数据段中的输入数据块的样本数据块的所述引用的数目的降序,来对该多个所识别的清单段排列优先级。
7.权利要求1的数据处理设备,能够操作以从清单储存器中存储的不同清单中识别所述清单段。
8.权利要求1的数据处理设备,其中输入数据段和所述清单段每个具有预定的大小。
9.权利要求1的数据处理设备,其中输入数据段和清单段的大小基本等同。
10.权利要求1的数据处理设备,能够操作以将给定的输入数据段中的每个输入数据块与在所识别的至少一个清单段中引用的样本数据块进行比较,以识别对应于所述输入数据段中的输入数据块的样本数据块。
11.权利要求1的数据处理设备,能够操作以按预定的顺序处理每个输入数据段。
12.权利要求1的数据处理设备,包括块索引,所述块索引包含关于所述样本数据块的信息。
13.权利要求12的数据处理设备,其中该数据处理设备能够操作以使用块索引中的所述信息来识别至少一个所述清单段。
14.权利要求1的数据处理设备,其中清单储存器包含由所述至少一个清单引用的所述至少一个样本数据块的块标识符。
15.权利要求14的数据处理设备,能够操作以生成所述输入数据段的每个输入数据块的块标识符,以及将每个输入数据块的块标识符与清单储存器中包含的块标识符进行比较。
16.一种数据处理器,包括:
块储存器,包含样本数据块;
清单储存器,包含至少一个清单,该清单代表数据集的至少一部分并被分为清单段,每个清单段包括到至少一个所述样本数据块的至少一个引用,
该处理器能够操作以:将输入数据处理成输入数据段,每个输入数据段包括一个或多个输入数据块;选择输入数据段;并识别具有到对应于所选择的输入数据段中的输入数据块的所述样本数据块的至少一个所述引用的至少一个所述清单段。
17.一种使用下述装置处理数据的方法:
块储存器,包含样本数据块;
清单储存器,包含至少一个清单,该清单代表数据集的至少一部分并被分为清单段,每个清单段包括到至少一个所述样本数据块的至少一个引用,
该方法包括:
将输入数据处理成输入数据段,每个输入数据段包括一个或多个输入数据块;
选择输入数据段;以及
识别具有到对应于所选择的输入数据段中的输入数据块的所述样本数据块的至少一个所述引用的至少一个所述清单段。
18.权利要求17的方法,包括对所述识别的至少一个清单段进行分析,以识别到对应于所选择的输入数据段中的至少一个另外的输入数据块的所述样本数据块的至少一个所述引用。
19.权利要求17的方法,其中根据所识别的至少一个清单段中的每个所包含的到对应于所选择的输入数据段中的输入数据块的样本数据块的引用的数目,来对所识别的至少一个清单段排列优先级。
20.一种编辑代表输入数据集的清单的方法,该方法包括:
将输入数据集处理成输入数据段,每个输入数据段包括一个或多个输入数据块;
在清单储存器中识别至少一个先前编辑且存储的清单的至少一个清单段,该清单段具有到对应于至少一个输入数据段中的输入数据块且存储在块储存器中的至少一个样本数据块的引用。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2007/022586 WO2009054828A1 (en) | 2007-10-25 | 2007-10-25 | Data processing apparatus and method of processing data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101855620A true CN101855620A (zh) | 2010-10-06 |
CN101855620B CN101855620B (zh) | 2013-06-12 |
Family
ID=40579797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007801015036A Active CN101855620B (zh) | 2007-10-25 | 2007-10-25 | 数据处理设备和数据处理方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20100235372A1 (zh) |
CN (1) | CN101855620B (zh) |
DE (1) | DE112007003678B4 (zh) |
GB (1) | GB2466581B (zh) |
WO (1) | WO2009054828A1 (zh) |
Families Citing this family (23)
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 |
US8332404B2 (en) | 2007-10-25 | 2012-12-11 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
WO2009054827A1 (en) * | 2007-10-25 | 2009-04-30 | 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 |
WO2009054834A1 (en) | 2007-10-25 | 2009-04-30 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
US8782368B2 (en) * | 2007-10-25 | 2014-07-15 | Hewlett-Packard Development Company, L.P. | Storing chunks in containers |
US8140637B2 (en) | 2007-10-25 | 2012-03-20 | Hewlett-Packard Development Company, L.P. | Communicating chunks between devices |
DE112008003826B4 (de) * | 2008-04-25 | 2015-08-20 | Hewlett-Packard Development Company, L.P. | Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung |
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 |
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 |
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 |
US20100281077A1 (en) * | 2009-04-30 | 2010-11-04 | Mark David Lillibridge | Batching requests for accessing differential data stores |
GB2471715A (en) | 2009-07-10 | 2011-01-12 | Hewlett Packard Development Co | Determining the data chunks to be used as seed data to restore a database, from manifests of chunks stored in a de-duplicated data chunk store. |
US8660994B2 (en) | 2010-01-28 | 2014-02-25 | Hewlett-Packard Development Company, L.P. | Selective data deduplication |
US8375066B2 (en) * | 2010-04-26 | 2013-02-12 | International Business Machines Corporation | Generating unique identifiers |
US8560698B2 (en) | 2010-06-27 | 2013-10-15 | International Business Machines Corporation | Allocating unique identifiers using metadata |
US9575842B2 (en) | 2011-02-24 | 2017-02-21 | Ca, Inc. | Multiplex backup using next relative addressing |
US8886914B2 (en) | 2011-02-24 | 2014-11-11 | Ca, Inc. | Multiplex restore using next relative addressing |
CN110990603B (zh) | 2012-08-21 | 2024-02-27 | Emc 公司 | 用于分段图像数据的格式识别的方法和系统 |
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 |
Family Cites Families (52)
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 |
EP0884688A3 (en) * | 1997-06-16 | 2005-06-22 | Koninklijke Philips Electronics N.V. | Sparse index search method |
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 |
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 |
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 |
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 |
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 |
US8341371B2 (en) * | 2005-01-31 | 2012-12-25 | Sandisk Il Ltd | Method of managing copy operations in flash memories |
US20060293859A1 (en) * | 2005-04-13 | 2006-12-28 | Venture Gain L.L.C. | Analysis of transcriptomic data using similarity based modeling |
US7636767B2 (en) * | 2005-11-29 | 2009-12-22 | Cisco Technology, Inc. | Method and apparatus for reducing network traffic over low bandwidth links |
US7472242B1 (en) * | 2006-02-14 | 2008-12-30 | Network Appliance, Inc. | Eliminating duplicate blocks during backup writes |
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 |
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 |
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 |
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 |
US7941599B2 (en) * | 2007-03-23 | 2011-05-10 | Kace Networks, Inc. | IT automation appliance imaging system and method |
US8768895B2 (en) * | 2007-04-11 | 2014-07-01 | Emc Corporation | Subsegmenting for efficient storage, resemblance determination, and transmission |
US7792826B2 (en) * | 2007-05-29 | 2010-09-07 | International Business Machines Corporation | Method and system for providing ranked search results |
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 |
US7831798B2 (en) * | 2007-09-18 | 2010-11-09 | International Business Machines Corporation | Method to achieve partial structure alignment |
US8332404B2 (en) * | 2007-10-25 | 2012-12-11 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
WO2009054834A1 (en) * | 2007-10-25 | 2009-04-30 | 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 |
US8150851B2 (en) * | 2007-10-25 | 2012-04-03 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
WO2009054827A1 (en) * | 2007-10-25 | 2009-04-30 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
DE112008003826B4 (de) * | 2008-04-25 | 2015-08-20 | Hewlett-Packard Development Company, L.P. | Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung |
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 |
-
2007
- 2007-10-25 WO PCT/US2007/022586 patent/WO2009054828A1/en active Application Filing
- 2007-10-25 CN CN2007801015036A patent/CN101855620B/zh active Active
- 2007-10-25 GB GB1000248.3A patent/GB2466581B/en active Active
- 2007-10-25 US US12/671,346 patent/US20100235372A1/en not_active Abandoned
- 2007-10-25 DE DE112007003678.8T patent/DE112007003678B4/de active Active
Also Published As
Publication number | Publication date |
---|---|
DE112007003678B4 (de) | 2016-02-25 |
GB2466581B (en) | 2013-01-09 |
DE112007003678T5 (de) | 2010-08-12 |
CN101855620B (zh) | 2013-06-12 |
GB2466581A (en) | 2010-06-30 |
WO2009054828A1 (en) | 2009-04-30 |
US20100235372A1 (en) | 2010-09-16 |
GB201000248D0 (en) | 2010-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101855620B (zh) | 数据处理设备和数据处理方法 | |
CN101855636B (zh) | 数据处理设备及数据处理方法 | |
CN102016789B (zh) | 数据处理装置和处理数据的方法 | |
US8332404B2 (en) | Data processing apparatus and method of processing data | |
CN102246137B (zh) | 身份副本删除之后的delta压缩 | |
US8185554B1 (en) | Storage of data with composite hashes in backup systems | |
US9262280B1 (en) | Age-out selection in hash caches | |
US8631052B1 (en) | Efficient content meta-data collection and trace generation from deduplicated storage | |
US8108348B2 (en) | Multi-version control method for data documents and device thereof | |
CN101855619A (zh) | 数据处理设备和数据处理方法 | |
US8812455B1 (en) | Efficient data backup | |
CN102495894A (zh) | 重复数据查找方法、装置及系统 | |
US20130179413A1 (en) | Compressed Distributed Storage Systems And Methods For Providing Same | |
US10496612B2 (en) | Method for reliable and efficient filesystem metadata conversion | |
US20130275386A1 (en) | Distributed archive system, data archive device, and data restoring device | |
CN106874399B (zh) | 一种联网备份系统及备份方法 | |
CN108475508B (zh) | 音频数据和保存在块处理存储系统中的数据的简化 | |
CN101482839B (zh) | 电子文档增量存储处理方法 | |
JP2005099911A (ja) | ネットワークを利用したデータ保管システム | |
CN112395275A (zh) | 经由关联相似性搜索的数据去重 | |
KR101895848B1 (ko) | 문서 보안 방법 | |
US20170308561A1 (en) | Indexing and sequentially storing variable-length data to facilitate reverse reading |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
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. |