CN101855636B - 数据处理设备及数据处理方法 - Google Patents
数据处理设备及数据处理方法 Download PDFInfo
- Publication number
- CN101855636B CN101855636B CN200780101502.1A CN200780101502A CN101855636B CN 101855636 B CN101855636 B CN 101855636B CN 200780101502 A CN200780101502 A CN 200780101502A CN 101855636 B CN101855636 B CN 101855636B
- Authority
- CN
- China
- Prior art keywords
- block
- inventory
- input
- sample data
- reservoir
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90339—Query processing by using parallel associative memories or content-addressable memories
-
- 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
Abstract
数据处理设备,包括:块储存器,被配置用于包含样本数据块;分立清单储存器,被配置用于包含至少一个清单,所述清单代表数据集的至少一部分并且包括到所述样本数据块的至少一个引用;所述处理设备能够操作以将输入数据处理成输入数据块并且识别清单储存器中包括到与所述输入数据块的至少一个对应的所述样本数据块的至少一个所述引用的至少一个清单。
Description
背景技术
保持在主数据存储介质上的数据可以被备份至辅助数据存储介质。辅助数据存储介质的位置可以与主数据存储介质的位置不同。如果主数据存储介质上的数据出现至少部分丢失,可以从辅助数据存储介质恢复数据。辅助数据存储介质可以包含在一定时间段内存储在主数据存储介质上的数据的历史。应用户请求,辅助数据存储介质可以向用户提供在指定的时间点存储在主数据存储介质上的数据。
可以每周、每天、每小时或者以其它间隔执行数据备份过程。可以以增量方式对数据进行备份,在这种数据备份过程中,仅仅自上一次备份以来对主数据介质上的数据所做的改变被转移到辅助数据存储介质。还可以执行全备份,在这种全备份过程中,主数据介质的全部内容被拷贝至辅助数据介质。存在许多其它的备份策略。
当对数据进行备份时,正被备份的数据的特定部分先前可能已被存储到主数据存储介质,当执行全备份时情况尤其如此。将相同数据存储许多次表示数据存储介质的低效利用。
发明内容
在一个实施例中,本发明提供了一种数据处理设备,包括:块储存器,被配置用于包含样本数据(specimendata)块;分立(discrete)清单储存器,被配置用于包含至少一个清单,所述清单代表数据集的至少一部分并且包括到所述样本数据块的至少一个的至少一个引用;所述处理设备能够操作以将输入数据处理成输入数据块并且识别清单储存器中包括到与所述输入数据块的至少一个对应的所述样本数据块的至少一个所述引用的至少一个清单。
在实施例中,该数据处理设备能够操作以分析所述识别的至少一个清单并且识别到与至少一个另外的输入数据块对应的所述样本数据块的至少一个所述引用。
在实施例中,该数据处理设备能够操作以便如果在使用中发现所述输入数据块中的至少一个未对应于块储存器中的所述样本数据块的至少一个,则将所述至少一个输入数据块作为样本数据块存储在块储存器中。
在实施例中,该数据处理设备被配置为包括块索引,所述块索引包含与包含在块储存器中的所述样本数据块相关的信息。
在实施例中,该数据处理设备被配置为包括块索引,所述块索引包含仅仅与包含在块储存器中的一些所述样本数据块相关的信息。
在实施例中,该设备能够操作以利用包含在块索引中的所述信息识别所述对应的样本数据块。
在实施例中,包含在块索引中的信息包括清单储存器中的包含到所述样本数据块的至少一个的引用的至少一个所述清单的细节。
在实施例中,包含在块索引中的信息包括所述样本数据块的至少一个的块标识符。
在实施例中,块标识符是与所述样本数据块的一个或多个对应的部分块标识符。
在实施例中,所述设备能够操作以产生待处理的所述输入数据块的块标识符。
在实施例中,所述设备能够操作以通过将所述样本块的块标识符与所述输入数据块的块标识符进行比较来识别所述对应的样本块。
在实施例中,清单储存器能够操作以包含与其中存储的所述至少一个清单相关的信息。
在实施例中,清单储存器包含由所述至少一个清单引用的所述至少一个样本数据块的块标识符。
在实施例中,该数据处理设备能够操作以通过将所述输入数据块的块标识符与存储在清单储存器中的所述至少一个样本数据块的块标识符进行比较来分析所述识别的至少一个清单并且识别到与至少一个另外的输入数据块对应的所述样本数据块的至少一个所述引用。
在实施例中,对应的样本数据块具有与所述输入数据块的块标识符至少部分类似的块标识符。
在另一个实施例中,本发明提供了一种数据处理设备,包括:块储存器,包含先前处理的数据集的样本数据块;块索引,包含用于所述样本数据块的至少一个的块标识符;分立清单储存器,包含至少一个清单,所述清单代表先前处理的数据集并且包括到所述样本数据块的至少一个的至少一个引用,所述处理设备被配置为将待处理的输入数据分成输入数据块;为所述输入数据块的至少一个产生块标识符;识别块索引中的对应块标识符;以及根据其识别清单储存器中包括到与所述输入数据块等同的样本数据块的至少一个引用的至少一个所述清单。
在另一个实施例中,本发明提供了一种数据精简器(compactor),包括:块储存器,被配置为包含样本数据块;分立清单储存器,被配置为包含至少一个清单,所述清单代表数据集并且包括到所述样本数据块的至少一个的至少一个引用,所述精简器被配置为将输入数据分成输入数据块,选择所述输入数据块之一并且识别具有到与所述选择的输入数据块对应的样本数据块的至少一个引用的至少一个清单以及探查所述至少一个识别的清单以寻找到与数据集的其它输入数据块对应的其它样本数据块的引用。
在另一个实施例中,本发明提供了一种利用下述装置来处理输入数据的方法:块储存器,包含样本数据块;分立清单储存器,包含至少一个清单,所述清单代表数据集并且包括到所述样本数据块的至少一个的至少一个引用,所述方法包括将所述输入数据处理成输入数据块,并且识别清单储存器中包括到与所述输入数据块对应的所述样本数据块的至少一个所述引用的至少一个所述清单。
在实施例中,该方法包括检查所识别的至少一个清单以寻找与所述输入数据的至少一个另外的所述输入数据块对应的至少一个另外的样本数据块。
在另一个实施例中,本发明提供了一种利用下述装置处理输入数据的方法:块储存器,包含先前处理的数据集的样本数据块;块索引,包含用于所述样本数据块的至少一个的块标识符;分立清单储存器,包含至少一个清单,所述清单代表先前处理的数据集并且包括到所述样本数据块的至少一个的至少一个引用,所述方法包括:将输入数据分成输入数据块;为所述输入数据块之一产生块标识符;识别所述块索引中的对应块标识符以及根据其识别所述清单数据库中包括到与所述输入数据块等同的样本数据块的引用的至少一个清单。
附图说明
现在参照附图仅仅举例描述本发明的实施例,附图中:
图1示出了数据集的示意性表示;
图2示出了根据实施例的数据处理设备的示意性表示;
图3示出了使用中的图2的数据处理设备的示意性表示;
图4示出了另一个数据集的示意性表示;
图5示出了根据另一个实施例的另一个数据处理设备的示意性表示;
图6示出了根据本发明的实施例的方法的流程图;
图7示出了填充有多个清单和样本数据块的图5的数据处理设备的示意性表示。
具体实施方式
图1示出了数据集1的示意性表示。数据集1可以比图1所示的数据集更短或更长。数据集1包括一定量的数据,其可以是10字节、1000字节或数百万字节的量级。数据集可以代表对于给定备份操作的所有数据或者较大数据集的至少一部分。
备份数据集可以包括连续数据流或不连续数据流。无论是哪个,数据集可以包含许多不同的单独的文件或者文件部分。数据集可以不被划分成它所包含的单独的文件。数据集可以包含嵌入信息,包括到包含在数据集中的单独文件的边界的引用。数据集于是可以被更容易地分割成它的组成分量。嵌入信息的大小可能代表全部数据的相当大部分。备份具有嵌入文件信息的数据增加了数据存储介质的所需容量。
根据实施例的数据处理设备能够操作以将输入数据集处理成一个或多个输入数据块。输入数据集可以被分成多个输入数据块。每个输入数据块可以代表输入数据集内的单独文件、单独文件的一部分或者单独文件的群组。可以基于输入数据作为整体的属性将数据集处理成输入数据块,而与包含在其中的单独文件具有极少关系或没有关系。数据块的边界与文件边界可以具有共同边界或可以不具有共同边界。数据块的大小可以等同或者不同。
图1示出了被处理成数据块2的输入数据集1的示意性表示。为了方便起见,在图1中从A到D对每个输入数据块进行标记,以识别数据块2彼此不同。与图1所示的那些相比较,输入数据集1可以被分成更多的输入数据块2。输入数据集1的大小可以是许多太字节,并且可以被处理成十亿个输入数据块。存在本领域技术人员可以获得的用来确定输入数据集1如何被处理成输入数据块2以及每个输入数据块2包含哪些信息的特定方案。
图2示出了根据实施例的数据处理设备3(包括至少一个处理器)。数据处理设备3包括块储存器4和清单储存器5。清单储存器5与块储存器4分立且与其分开,但是储存器4和5可以驻留在共同的数据存储介质或存储装置上。当输入数据集1由数据处理设备3处理时,输入数据块2作为样本数据块6而被存储到块储存器4,如图3所示。样本数据块6是输入数据块2的副本。块储存器4可以存储多个样本数据块6。块储存器4可以包含先前已由数据处理设备3处理的所有输入数据块2。
在一个实施例中,块储存器4和清单储存器5都存储在非易失性存储装置内。
当输入数据块2被作为样本数据块6而添加到块储存器4时,清单7被编辑。清单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。
在图4中示出了待处理的第二输入数据集11的示意性表示。在没有数据处理设备3的情况下,第二输入数据集11可以被全部存储。由此,即使输入数据集1和11包括共同的输入数据块A、B和C,但每一个输入数据块的两次发生均被存储,这是数据存储介质的低效使用。
利用数据处理设备3,当输入数据集11被提供给数据处理设备3时,输入数据集11被处理成输入数据块12。数据处理设备3能够操作以识别清单储存器5中的至少一个清单7,所述至少一个清单7包括到与第二输入数据集11的至少一个输入数据块12对应的样本数据块6的至少一个引用。当处理图4所示的输入数据集11时,数据处理设备3将识别出存储在清单储存器5中的清单7包括到与至少一个输入数据块12对应的样本数据块6的引用。在这个例子中,数据处理设备可以识别出清单7包括到样本数据块A、B和C的引用。在这样识别以后,数据处理设备3将不再在块储存器4内存储输入数据块A、B和C,因为它们已经作为样本数据块6存在于其中。代替地,针对输入数据集11编辑的清单将包括到已经位于块储存器4中的样本数据块A、B和C的引用。
将注意到,块储存器4不包含与输入数据块E和F对应的样本数据块6。类似地,清单储存器5中的清单6不包含到与输入数据块E和F对应的样本数据块6的引用。数据处理设备能够操作以确定块储存器4还未包含与输入数据块E和F对应的样本数据块6。因此,数据处理设备3可以将输入数据块E和F作为样本数据块6存储在块储存器4中。然后通过添加到样本数据块E和F的引用来完成用于输入数据集12的清单。该新清单然后添加到清单储存器5。
在一个实施例中,在数据处理设备3已经部分编辑了具有到样本数据块A、B和C的引用的清单以后,数据处理设备3能够操作以选择输入数据块E和F之一并且尝试识别清单储存器5中包括到与输入数据块E和F的任一个对应的样本数据块6的至少一个引用的至少一个清单7。在所示的例子中,将不会定位到这样的清单。数据处理设备3可以操作以识别包括到与输入数据集1的每个输入数据块2对应的样本数据块的引用的清单7。
结果,块储存器4将包含每个样本数据块6的仅仅一个发生,这是块储存器4的高效使用。根据实施例,利用数据处理设备存储第一输入数据集1和第二输入数据集11的“占用空间(footprint)”可以小于不利用数据处理设备存储第一输入数据集1和第二输入数据集11的占用空间。
利用体现本发明的数据处理设备3,数据处理设备3将输入数据集11处理成输入数据块12。数据处理设备可以能够操作以从输入数据集11选择输入数据块12。该选择可以是输入数据集11中的第一输入数据块12,或者它可以是另一个选择。从划分的输入数据集11选择输入数据块12可以是随机的或伪随机的。
数据处理设备3利用选择的输入数据块12识别已经存储在清单储存器5中的包括到与选择的输入数据块2对应的样本数据块6的至少一个引用的清单7。如果数据处理设备3选择第一输入数据块“A”,则将识别清单储存器5中的清单7。
已经识别了清单储存器5中具有到样本数据块6的引用的至少一个清单7以后,数据处理设备3能够操作以对该至少一个清单7进行分析以识别到与至少一个另外的输入数据块12对应的样本数据块6的引用。在这样做的过程中,数据处理设备3能够操作以对于图4所示的输入数据集12识别出清单7不仅包括到样本数据块A的引用还包括到样本数据块B和C的引用。因此,在识别清单7包含到与仅仅一个输入数据块12对应的样本数据块6的引用的过程中,数据处理设备3能够操作以识别到与相同输入数据集11中的另外输入数据块12对应的样本数据块612的引用。
数据处理设备3的益处在于,为了确定每一个输入数据块2是否已经被存储为样本数据块6不需要对于每一个输入数据块2彻底检索块储存器4。代替地,数据处理设备3可以利用为先前处理和存储的数据集创建的清单7。当正处理的输入数据集在很大程度上与先前处理的数据集类似时,进一步展示了数据处理设备3的益处。例如,在两个全备份操作之间,相应数据集的仅仅一小部分可能是不同的。不得不系统地搜索存储在块储存器4中的每个样本数据块6以找到与输入数据集的每个输入数据块对应的样本数据块6是低效且耗时的。
数据处理设备3能够利用正处理的每个输入数据集1可能类似这样的事实。照此,先前的类似清单能够用于编辑用于最新(latest)的输入数据集的新清单的至少一部分。
在一个实施例中,已经识别了所述至少一个清单以后,数据处理设备3能够操作以在该清单内搜索到块储存器4中的样本数据块6的所有其它引用从而识别与正处理的输入数据集1的另外输入数据块2对应的样本数据块6。在一个实施例中,通过从输入数据集1选择每个输入数据块2(除了已经选择的输入数据块2以外)以及将它与该至少一个识别的清单中的每个引用进行比较来执行所述搜索。当找到了到对应的样本数据块6的引用时,在新清单中用到样本数据块6的引用来表示输入数据块2。然后选择后续的输入数据块2以进行后续的搜索。搜索操作可以持续到所有输入数据块2已经与识别的(一个或多个)清单内的所有引用进行比较为止。
在另一个实施例中,当已经找到了到与输入数据块2对应的样本数据块6的预定数目的引用时,搜索操作可以终止。在另一个实施例中,当数据处理器3没有找到到与输入数据集1中的预定数目的输入数据块2对应的样本数据块6的引用时,搜索操作可以终止。这个实施例的益处在于,可以从搜索过程迅速地扣除(discount)不包含到与任何其它输入数据块2对应的样本数据块6的引用的清单。
在另一个实施例中,已经利用选择的输入数据块识别了所述至少一个清单以后,识别到与其它输入数据块2对应的样本数据块6的引用的搜索操作可以基于或者集中于使得该至少一个清单被数据处理设备3识别的所选择的输入数据块。例如,参照图4,假定数据处理设备3选择了输入数据块B;并且如上识别了存储在清单储存器5中的清单6。注意到,清单6中与到样本数据块B的引用相邻的是到样本数据块A和C的引用。类似地,输入数据集12中与输入数据块B相邻的是输入数据块A和C。
在一个实施例中,已经识别了与清单中引用的样本数据块6对应的输入数据块12以后,将与识别的输入数据块12相邻的输入数据块12和在与到对应于选择的输入数据块12的样本数据块6的引用相邻的引用中所引用的样本数据块6进行比较。因此,输入数据块A和C将与样本数据块A和C进行比较。在这个例子中,将发现它们彼此匹配。结果,数据处理设备3能够操作以通过分析识别的清单7来确定块储存器4中的两个另外样本数据块6对应于输入数据块12中的两个。在不必将每一个输入数据块12与块储存器4中的每个样本数据块6进行比较的情况下做出该识别。
当块储存器4包含许多样本数据块6时展示了这个实施例的益处。假定:许多样本数据块6已经存储在块储存器4中达很长的时间段并且正提供给处理器的新输入数据集不再包括与那些“旧”的样本数据块6对应的输入数据块2。另外假定:若干最近处理的输入数据集1包含到最近向块储存器4添加的样本数据块6的引用。在没有数据处理设备3的情况下,可以将新输入数据集11的每一个输入数据块12与存储在块储存器4中的每个样本数据块6进行比较。不体现本发明的这样的数据处理设备由此将输入数据块2与不太可能发现其匹配的样本数据块6进行比较。在“旧”的样本数据块6存储在块储存器4的开始并且由此很可能被首先搜索的情况下尤其如此。
另一方面,数据处理设备3识别清单储存器5中包括到与至少一个输入数据块2对应的样本数据块6的至少一个引用的至少一个清单7。由此,本发明的实施例能够利用如下事实:包含与已经在块储存器4中的样本数据块6对应的特定输入数据块的输入数据集还可能包含与已经存储在块储存器4中的其它样本数据块6对应的输入数据块。
在本发明的一个实施例中,已经根据选择的输入数据块2识别了至少一个清单7以后,如果在该至少一个清单中没有识别对应于与选择的输入数据块2相邻的输入数据块2的样本数据块6,则处理设备3可以设法识别对应于与选择的输入数据块2下一个相邻的输入数据块2的样本数据块6。如果在预定数目的重复内处理设备未能识别与输入数据块2对应的样本数据块6,则搜索操作可被终止。如果超过一个的清单7被处理设备3识别为包括到与选择的输入数据块2对应的样本数据块6的引用,则搜索操作可以在另外的所识别的清单7上重新开始。
上述的技术可以被称作“拉链(zip)”,这是因为:输入数据集1和识别的清单7被布置为使得输入数据块2与清单7中到块储存器4中与输入数据块2对应的样本数据块6的引用对准。数据处理设备3然后设法将输入数据集1与清单7“拉在”一起。当一连串输入数据块2对应于清单7中相等尺寸的一连串到样本数据块6的引用时,将导致成功的“拉链”过程。当特定输入数据块2不对应于清单7中尝试被“拉到”输入数据块2的到样本数据块6的引用时,输入数据集1和清单7将不会成功地被“拉在”一起。
在一个实施例中,数据处理设备3还提供块索引8,如图5所示。块索引8包含关于存储在块储存器4中的样本数据块6中的至少一个的信息。在一个实施例中,块索引8包含仅仅与包含在块储存器4中的一些样本数据块6有关的信息。可以特定地选择或随机选择块索引8包含其信息的样本数据块6。在另一个实施例中,块索引8可以包含关于存储在块储存器4中的每一个样本数据块6的信息。
在一个实施例中,块索引8可以存储在例如随机存取存储器(RAM)的易失性存储器中。
在本发明的实施例中,针对给定样本数据块6的包含在块索引8中的信息可以包括样本数据块的块标识符。块标识符可以是与之相关的样本数据块6的数字指纹。块标识符可以是唯一的块标识符,针对特定样本数据块6是唯一的。可以选择产生块标识符的算法从而能够为预定数目的样本数据块6产生唯一块标识符。在一个实施例中,利用SHA1哈希算法产生块标识符。可以利用例如SHA2的其它哈希算法。在一个实施例中,选择并配置哈希算法从而使得两个样本数据块6生成等同的块标识符在计算上基本上是不可行的。
在另一个实施例中,针对给定样本数据块6的包含在块索引8中的信息可以仅仅包括部分块标识符。例如,尽管样本数据块6可以具有唯一块标识符,但是可能对照样本数据块6在块索引8中的记录存储块标识符的仅仅一部分。在一个实施例中,部分块标识符可以包括完整块标识符的第一预定数目的比特。例如,如果给定的样本数据块6的完整块标识符包括20个比特(例如由SHA1算法生成的),则块索引8例如可以存储块标识符的15个比特。这些预定比特可以是块标识符的最高有效位(MSB)、最低有效位(LSB)或者完整块标识符的中间比特。由此断定,两个不同的样本数据块6的部分标识符可以是等同的,即使它们相应的完整块标识符彼此不同且唯一。在块索引8中仅仅存储部分块标识符的益处在于减小了块索引8的大小。
在一个实施例中,针对块索引8中关于给定样本数据块6的特定条目,存储了清单储存器5中包括到所述样本数据块6的引用的至少一个清单7的细节。在一个实施例中,存储了清单储存器5中至少包含到该样本数据块6的引用的清单7的列表。在另一个实施例中,可以仅仅存储清单储存器5中包含到该样本数据块6的至少一个引用的清单7的部分列表。
在一个实施例中,针对块索引8中关于样本数据块的给定条目,存储了到清单储存器中包括到该样本数据块的引用的至少一个清单的引用。在一个实施例中,该引用通常可以是针对清单的。在另一个实施例中,该引用可以指示清单内存在到样本数据块的引用的位置。
在一个实施例中,针对给定样本数据块的包含在块索引8中的信息可以包括到块储存器4中的样本数据块6的位置的引用。因此,在这个实施例中,块储存器4自身可以不保存其中存储的样本数据块6的位置的记录。代替地,对照(against)块索引8中的相关条目存储样本数据块6的位置。块索引8由此用作存储在块储存器4中的样本数据块6的索引。
在使用中,清单储存器5可以包含许多清单7,每个清单7代表先前处理的数据集1。在一个实施例中,清单储存器5包含关于其中包含的每个清单7的信息。该信息可以包括与每个清单7相关的属性(例如,它的大小、它包含的引用的数目或者它代表的数据集的名称和其它细节)。针对特定清单的信息可以包括由清单7引用的样本数据块6中的至少一个的块标识符。因此,特定清单7不仅可以包括到存储在块储存器4中的样本数据块6的引用的集合还可以包括引用的那些样本数据块6的每个的块标识符。块标识符可以是部分块标识符。
在一个实施例中,已经识别了清单储存器中包括到与所述输入数据块中的至少一个对应的所述样本数据块的至少一个所述引用的至少一个清单以后,数据处理设备能够操作以分析识别的清单从而识别与另外输入数据块对应的样本数据块。在清单包括由清单引用的每个样本数据块的块标识符的实施例中,数据处理设备能够操作以将输入数据块的块标识符与清单中的块标识符进行比较。这样的益处在于可不需要对块索引8中的信息进行访问。因此,通过利用识别的清单而非块储存器4执行比较过程,可以允许在RAM中时处理用于进行比较的数据的至少一部分。
清单信息可以包括由清单7引用的块储存器4中的样本数据块6的至少一个的位置。在另一个实施例中,可以根据存储在块索引8中的信息确定在清单7内引用的块储存器4中的样本数据块6的位置。
数据处理设备3能够操作以产生输入数据块2的块标识符。在一个实施例中,数据处理设备3能够操作以在输入数据集1已经被处理成输入数据块2以后或者在输入数据集1被处理成输入数据块2的同时,为每个输入数据块2产生块标识符。
为输入数据块2产生的块标识符然后可用于识别与输入数据块2对应的块储存器4中的样本数据块6。在一个实施例中,输入数据块2的块标识符与样本数据块6的块标识符进行比较。这样的益处在于输入数据块2自身不直接与样本数据块6进行比较。由于相应的块标识符的大小可能小于它们代表的输入/样本数据块6,所以可以更加迅速地执行比较步骤以查看两个块标识符是否彼此对应。此外,由于块标识符的大小可能相对小于与它们相关的相应块,所以可以在两个块标识符存储于RAM中的同时执行比较步骤。如果输入数据块2的块标识符与样本数据块的块标识符等同,则输入数据块2与样本数据块将彼此等同。如上所述,这假定:选择用于产生块标识符的算法以便产生唯一标识符。利用部分块标识符将生成非唯一的标识符集,这意味着将识别一个或多个潜在对应的样本数据块。
在一个实施例中,该处理设备能够操作以将输入数据块2的块标识符与存储在块索引8中的块标识符进行比较。可以通过将输入数据块2的块标识符与存储在块索引8中的每个块标识符依次进行比较来执行比较步骤。可替换地,可以基于块标识符的属性组织块索引8中的块标识符。例如,可以基于块标识符的每个比特的二进制状态以树状配置来布置块索引8中的块标识符。在这个例子中,可以分析每个块标识符的MSB,并且根据MSB的值(即:或者为“0”或者为“1”)将每个块标识符分配到树的分支。这两个“分支”的每个可以基于下一MSB的值进一步分成两叉。这些分支的每个将基于接下来的MSB进一步分成两叉,以此类推。
利用上述的块索引8中的条目的配置,在尝试针对与选择的输入数据块2对应的样本数据块6找到块索引8中的条目的过程中,数据处理设备3能够操作以迅速地“向下钻探(drilldown)”块索引8中的条目。
在一些实施例中,“对应”是指输入数据块2的块标识符与样本数据块6的块标识符等同。输入数据块2与样本数据块6由此说成是彼此“对应”的。可替换地,在利用部分块标识符的情况下,尽管给定的输入数据块2和样本数据块6的相应部分块标识符可以等同,但是实际的输入数据块2与样本数据块6可以不同,如上所述。然而,输入数据块2与样本数据块6被说成是对应的,因为至少它们的相应部分块标识符彼此等同。
在本发明的一个实施例中,在为输入数据块2产生块标识符并且识别块索引8中与存储在块索引8中的样本数据块6相关的对应块标识符以后,数据处理设备3能够操作以执行验证过程。该验证过程包括将输入数据块2与存储在块储存器4中的识别的样本数据块6进行比较以确认这两个数据块实际上是否等同。在没有验证过程的情况下,以及尤其在利用部分块标识符的情况下,识别为“对应”的样本数据块6实际上可能不等同于输入数据块2。包括到不等同的样本数据块6的引用将在清单内引入错误并且阻止清单内表示的数据的准确恢复。
甚至在利用完整块标识符的情况下,验证过程仍是有利的,这是因为可能已经产生或存储了包括错误的(用于输入数据块2和样本数据块6的)块标识符的任一个。验证过程可以增加存储在清单内的信息的完整性。
在利用部分块标识符的实施例中,由于上述的原因,根据实施例的处理器可以识别超过一个的“对应”样本数据块6。当然,输入数据块2可以仅仅与存储在块储存器4中的样本数据块6之一等同。因此,在识别超过一个的“对应”样本数据块6的情况下,验证过程允许数据处理设备3识别该超过一个的样本数据块6中的哪一个实际与输入数据块2等同。尽管当存储仅仅部分块标识符时,验证步骤有必要构成进一步的步骤,但是另一个益处在于块索引8的大小可能是较小的,因为它不存储完整块标识符。所需的块索引8的大小的减小可能胜过执行验证过程的不利(如果有的话)。
在另一个实施例中,可以通过将输入数据块的块标识符与包含在识别的清单内的块标识符进行比较来执行验证过程。这样的益处在于可能根本不需要对块储存器进行访问。可以通过仅仅利用包含在清单中的信息和为输入数据块生成的块标识符来执行验证过程。在部分块标识符存储在块索引中的情况下,可以存在如下情形:输入数据块的部分块标识符与样本数据块的部分块标识符匹配,即使相应的输入/样本数据块不彼此匹配。结果,识别为包含到与输入数据块对应的样本数据块的引用的该至少一个清单实际上可能没有引用与任何输入数据块对应的样本数据块。在一个实施例中,数据处理设备能够操作以对识别的(一个或多个)清单执行验证过程。在一个实施例中,当该至少一个清单已经被识别时,存储在(一个或多个)清单中的被指示为与输入数据块对应的样本数据块的块标识符被验证。只有当该块标识符与输入数据块的块标识符等同,清单才可用于后续的操作。这个实施例达到的效果可以与通过参考块索引执行验证过程的效果相同,但是不需要访问块索引。应该明白,返回的清单的大小可以远小于块储存器。因此,通过利用识别的清单而非块储存器4执行比较过程,可以允许在RAM中时对用于比较的数据的至少一部分进行处理。
如上所述,一个实施例的块索引8包含仅仅与块储存器4中的一些样本数据块6相关的信息。因此,块索引8可以被说成是“稀疏”块索引8。保持这种“稀疏”块索引减小了块索引8的大小,现在将描述其益处。
数据处理设备可用于对输入数据集1进行精简以进行存储、加密或传输。例如,输入数据1可以代表用于存储在第二数据存储介质上的来自第一数据存储介质的备份数据的集合。如上所述,数据处理设备3将输入数据块2的块标识符与存储在块索引8中的块标识符进行比较。比较步骤可能需要对包含在块索引8中的数据的方便访问。在一个实施例中,块索引8可以存储在随机存取存储器(RAM)内。RAM允许对包含在其中的信息进行迅速且随机的访问。然而,可能需要减小数据处理设备所需的RAM。通过提供要存储在RAM中的稀疏块索引8,与没有稀疏索引的处理器相比较,该数据处理设备需要更少的RAM。
在没有提供块索引8的情况下,数据处理设备可以将输入数据块2与存储在块储存器4中的每个样本数据块6进行比较。由于块储存器4可能是非常大的,所以将块储存器4的全部内容存储在RAM中可能是困难的或者简直是不可能的。块储存器4可以存储在非易失性存储器中例如存储在盘上。由此,从块储存器4读取数据将需要盘读取操作。这可能明显慢于访问存储在RAM中的数据。数据处理设备3包括块索引8,块索引8可以驻留在RAM中,从而允许对包含在其中的信息进行更快速访问。结果,可以更加容易地识别存储在块储存器4中的与输入数据块2对应的样本数据块6,而不需要对块储存器4进行持续的直接访问。如上所述,可以存在验证过程。尽管这个操作将需要对存储在盘上的块储存器4中的样本数据块6进行访问,但是这可能需要块储存器4的仅仅一次盘寻找以及单个样本数据块6的检索。
在本发明的实施例包括稀疏块索引8的情况下,可以存在如下情况:与输入数据块2对应的样本数据块6存在于块储存器4中,但是在块索引8中没有关于样本数据块6的条目。因此,当将输入数据块2的块标识符与块储存器4中的条目进行比较时,数据处理设备3最初可能指示不存在对应的样本数据块6,并且再一次(forasecondtime)将输入数据块2作为样本数据块6存储在块储存器4中。尽管再一次将输入数据块2存储为样本数据块6的该情况可被看作是块储存器4的低效使用,但是这种实施例的益处在于块索引8是稀疏的,并且由此利用RAM中的较少空间。需要较少RAM以及搜索稀疏块索引8花费的时间的减小的益处可以胜过再一次将输入数据块2存储为样本数据块6的不利。
然而,由于数据处理设备3能够操作以利用输入数据流可能彼此部分类似的事实,所以数据处理设备3可以识别块储存器4中的样本数据块6,即使在块索引8中可能没有针对样本数据块6的条目,如下所述。
对于给定数目的输入数据块2,即使与每个对应的样本数据块6可能已经存储在块储存器4中,但仅仅一个样本数据块6可能在块索引8内具有条目。数据处理设备3能够操作以识别块索引8中的对应的样本数据块6。数据处理设备3根据样本数据块6识别清单储存器中包括到样本数据块6的至少一个引用的至少一个清单。在后续对识别的至少一个清单进行分析的过程中,数据处理设备3能够操作以识别在块储存器4中存在与输入数据流的更多输入数据块2对应的样本数据块6,即使这些样本数据块6可能在块索引8内没有条目。
因此,这种数据处理设备可以能够操作以识别块储存器4中与所有的输入数据块2对应的所有的样本数据块6同时仅仅包括稀疏索引。在块储存器4中可以不存在重复条目。具有稀疏块索引8的数据处理设备3在精简输入数据方面可能与具有全块索引8的数据处理器3同样高效。高效是指存储在块储存器4中的样本数据块6没有重复或者至少在预定程度上没有重复。可以允许样本数据块的一些重复。
在一个实施例中,提供了一种数据处理设备,包括:块储存器,包含先前处理的数据集的样本数据块;块索引,包含用于所述样本数据块的至少一个的块标识符;分立清单储存器,包含至少一个清单,所述清单代表先前处理的数据集并且包括到所述样本数据块的至少一个的至少一个引用,所述处理设备被配置为将待处理的输入数据分成输入数据块;为所述输入数据块的至少一个产生块标识符;识别块索引中的对应块标识符;以及根据其识别清单储存器中包括到与所述输入数据块等同的样本数据块的至少一个引用的所述清单的至少一个。
在一个实施例中,提供了一种数据精简器,包括:块储存器,被配置为包含样本数据块;分立清单储存器,被配置为包含至少一个清单,所述清单代表数据集并且包括到所述样本数据块的至少一个的至少一个引用,所述精简器被配置为将输入数据分成输入数据块,选择所述输入数据块之一并且识别具有到与所述选择的输入数据块对应的样本数据块的至少一个引用的至少一个清单以及探查所述至少一个识别的清单以寻找到与数据集的其它输入数据块对应的其它样本数据块的引用。
现在将描述根据实施例的处理输入数据的方法。方法利用包含样本数据块6的块储存器4以及包含至少一个清单的分立清单储存器5。在一个实施例中,利用上述的数据处理设备3执行方法。在一个实施例中,利用上述的块储存器4和分立清单储存器5执行该方法。
如图6所示的方法包括:将输入数据处理13成一个或多个输入数据块2;以及识别14清单储存器中包括到与至少一个输入数据块对应的样本数据块6的至少一个引用的至少一个清单。
在一个实施例中,在将输入数据1分成一个或多个输入数据块2以后,从输入数据1中选择输入数据块2。该选择可以是输入数据集1中的第一个输入数据块1或者它可以是另一个选择。从划分的输入数据集1选择输入数据块2可以是随机或伪随机的。
根据实施例的方法利用选择的输入数据块2识别已经存储在清单储存器5中的包括到与选择的输入数据块2对应的样本数据块6的至少一个引用的清单7。
根据实施例的方法能够利用正处理的每个输入数据集1可能类似的事实。照此,先前类似的清单能够用于编辑针对最新输入数据集的新清单的至少一部分。
当至少一个识别的清单已经被处理并且与选择的至少一个输入数据块2对应的样本数据块被识别时,到该样本数据块的引用可以被添加到清单。如上所述,还可以对该至少一个识别的清单进行分析以识别到与输入数据集1的其它输入数据块2对应的样本数据块的引用。在没有发现更多对应的样本数据块的情况下,那么还没有被识别为具有存在于块储存器4中的对应样本数据块的输入数据块2可以是进一步操作的对象。因此,数据处理设备3于是可以识别清单储存器5中包括到与新选择的输入数据块2对应的样本数据块的引用的至少一个清单。这个过程可以持续到数据处理器3已经对所有未匹配的输入数据块2进行了处理为止。
在一个实施例中,方法包括对代表输入数据集1的清单进行编辑。
根据实施例的方法包括产生输入数据块2的块标识符。该实施例还包括将输入数据块2的块标识符与存储在块索引8中的块标识符进行比较,如上所述。
一个实施例提供了一种利用以下装置来处理输入数据的方法:块储存器,包含先前处理的数据集的样本数据块;块索引,包含用于所述样本数据块的至少一个的块标识符;分立清单储存器,包含至少一个清单,所述清单代表先前处理的数据集并且包括到所述样本数据块的至少一个的至少一个引用,所述方法包括:将输入数据分成输入数据块;为所述输入数据块之一产生块标识符;以及识别所述块索引中的对应块标识符;以及根据其识别所述清单数据库中包括到与所述输入数据块等同的样本数据块的引用的至少一个清单。
当首次提供本发明的实施例的块储存器4和清单储存器5时,在块储存器4内将没有存储的样本数据块6并且在清单储存器内将没有存储的清单。然后对块储存器4和清单储存器5进行填充。因此,当处理第一输入数据集1时,从输入数据集1划分的输入数据块2的每个将被作为样本数据块6添加到块储存器4。将针对输入数据集1编辑清单并且将该清单添加到清单储存器5。图3示出了根据实施例的至少部分填充的处理器的例子。应该明白,随着处理越来越多的输入数据集1,块储存器4和清单储存器5将分别包含更多的样本数据块6和清单。可以达到要进行处理的输入数据集的大多数输入数据块2对应于已经存储在块储存器4中的样本数据块6的点。在这种情况下,可以针对输入数据集编辑清单6而不用向块储存器4添加任何新内容,从而进一步展示了根据一些实施例的方法的优点。
图7示出了在块储存器4中填充多个样本数据块6以及在清单储存器5中填充多个清单7的图3所示的数据处理设备的实施例。
数据处理设备3可以形成数据精简或去重复管理系统的一部分。数据处理设备3可以集成到数据存储系统中。数据处理设备3可被配置为当将数据发送至数据存储系统以进行存储时,“主动地”工作。可实时执行精简。可替换地,可以在“非高峰(offpeak)”时段期间将数据提供给数据处理设备3。非高峰是指可能没有正在将数据提供给数据存储系统以进行存储,并且由此数据处理设备3可以处理已经存储在数据存储系统上的数据从而减少已经存储在数据存储系统上的任何重复数据的时段。数据处理设备可以形成数据存储系统的数据内务处理(housekeeping)系统的一部分。
当用于本说明书和权利要求书中时,术语“包括”和“包含”及其变型是指包括指定的特征、步骤或整数。这些术语不应被解释为排除其它特征、步骤或组件的存在。
以其具体形式或按照执行所公开功能的装置或者获得所公开结果的方法或过程而表达的在上述说明书或下面的权利要求书或附图中公开的特征可以视情况而单独地或者以这种特征的任何组合用于以各种形式实现本发明。
Claims (19)
1.一种数据处理设备,包括:
块储存器,被配置用于包含样本数据块;
分立清单储存器,被配置用于包含至少一个清单,所述清单代表数据集的至少一部分并且包括到所述样本数据块的至少一个的至少一个引用;
所述处理设备能够操作以将输入数据处理成输入数据块并且识别所述清单储存器中包括到与所述输入数据块的至少一个对应的所述样本数据块的至少一个所述引用的至少一个清单;
其中所述处理设备能够操作以便如果在使用中发现所述输入数据块中的至少一个未对应于块储存器中的所述样本数据块的至少一个,则将所述至少一个输入数据块作为样本数据块存储在块储存器中。
2.根据权利要求1所述的数据处理设备,能够操作以分析所述识别的至少一个清单并且识别到与至少一个另外的输入数据块对应的所述样本数据块的至少一个所述引用。
3.根据权利要求1所述的数据处理设备,被配置为包括块索引,所述块索引包含与包含在块储存器中的所述样本数据块相关的信息。
4.根据权利要求1所述的数据处理设备,被配置为包括块索引,所述块索引包含仅仅与包含在块储存器中的一些所述样本数据块相关的信息。
5.根据权利要求3所述的数据处理设备,其中该设备能够操作以利用包含在块索引中的所述信息识别所述对应的样本数据块。
6.根据权利要求3所述的数据处理设备,其中包含在块索引中的所述信息包括清单储存器中的包含到所述样本数据块的至少一个的引用的至少一个所述清单的细节。
7.根据权利要求3所述的数据处理设备,其中包含在块索引中的所述信息包括所述样本数据块的至少一个的块标识符。
8.根据权利要求7所述的数据处理设备,其中块标识符是与所述样本数据块的一个或多个对应的部分块标识符。
9.根据权利要求7所述的数据处理设备,其中所述设备能够操作以产生待处理的所述输入数据块的块标识符。
10.根据权利要求9所述的数据处理设备,其中所述设备能够操作以通过将所述样本块的块标识符与所述输入数据块的块标识符进行比较来识别所述对应的样本块。
11.根据权利要求1所述的数据处理设备,其中清单储存器能够操作以包含与其中存储的所述至少一个清单相关的信息。
12.根据权利要求11所述的数据处理设备,其中清单储存器包含由所述至少一个清单引用的所述至少一个样本数据块的块标识符。
13.根据权利要求12所述的数据处理设备,能够操作以通过将所述输入数据块的块标识符与存储在清单储存器中的所述至少一个样本数据块的块标识符进行比较来分析所述识别的至少一个清单并且识别到与至少一个另外的输入数据块对应的所述样本数据块的至少一个所述引用。
14.根据权利要求1所述的数据处理设备,其中对应的样本数据块具有与所述输入数据块的块标识符至少部分类似的块标识符。
15.一种数据处理设备,包括:
块储存器,包含先前处理的数据集的样本数据块;
块索引,包含用于所述样本数据块的至少一个的块标识符;
分立清单储存器,包含至少一个清单,所述清单代表先前处理的数据集并且包括到所述样本数据块的至少一个的至少一个引用,
所述处理设备被配置为将待处理的输入数据分成输入数据块;为所述输入数据块的至少一个产生块标识符;识别块索引中的对应块标识符;以及根据其识别清单储存器中包括到与所述输入数据块等同的样本数据块的至少一个引用的至少一个所述清单。
16.一种数据精简器,包括:
块储存器,被配置为包含样本数据块;
分立清单储存器,被配置为包含至少一个清单,所述清单代表数据集并且包括到所述样本数据块的至少一个的至少一个引用,
所述精简器被配置为将输入数据分成输入数据块,选择所述输入数据块之一并且识别具有到与所述选择的输入数据块对应的样本数据块的至少一个引用的至少一个清单以及探查所述至少一个识别的清单以寻找到与所述数据集的其它输入数据块对应的其它样本数据块的引用;
其中所述精简器被配置成如果在使用中发现所述输入数据块中的至少一个未对应于块储存器中的所述样本数据块的至少一个,则将所述至少一个输入数据块作为样本数据块存储在块储存器中。
17.一种利用下述装置来处理输入数据的方法:
块储存器,包含样本数据块;
分立清单储存器,包含至少一个清单,所述清单代表数据集并且包括到所述样本数据块的至少一个的至少一个引用,
所述方法包括将所述输入数据处理成输入数据块,并且识别清单储存器中包括到与所述输入数据块对应的所述样本数据块的至少一个所述引用的至少一个所述清单;
其中所述方法进一步包括:如果在使用中发现所述输入数据块中的至少一个未对应于块储存器中的所述样本数据块的至少一个,则将所述至少一个输入数据块作为样本数据块存储在块储存器中。
18.根据权利要求17所述的方法,包括检查所识别的至少一个清单以寻找与所述输入数据的至少一个另外的所述输入数据块对应的至少一个另外的样本数据块。
19.一种利用下述装置处理输入数据的方法:
块储存器,包含先前处理的数据集的样本数据块;
块索引,包含用于所述样本数据块的至少一个的块标识符;
分立清单储存器,包含至少一个清单,所述清单代表先前处理的数据集并且包括到所述样本数据块的至少一个的至少一个引用,
所述方法包括:
将该输入数据分成输入数据块;
为所述输入数据块之一产生块标识符;
识别所述块索引中的对应块标识符以及根据其识别所述清单数据库中包括到与所述输入数据块等同的样本数据块的引用的至少一个清单。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2007/022629 WO2009054834A1 (en) | 2007-10-25 | 2007-10-25 | Data processing apparatus and method of processing data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101855636A CN101855636A (zh) | 2010-10-06 |
CN101855636B true CN101855636B (zh) | 2016-03-16 |
Family
ID=40579800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780101502.1A Active CN101855636B (zh) | 2007-10-25 | 2007-10-25 | 数据处理设备及数据处理方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9372941B2 (zh) |
CN (1) | CN101855636B (zh) |
DE (1) | DE112007003645B4 (zh) |
GB (1) | GB2466579B (zh) |
WO (1) | WO2009054834A1 (zh) |
Families Citing this family (22)
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 |
US8838541B2 (en) * | 2007-10-25 | 2014-09-16 | 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 |
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 |
DE112007003678B4 (de) * | 2007-10-25 | 2016-02-25 | Hewlett-Packard Development Company, L.P. | Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung |
US8140637B2 (en) * | 2007-10-25 | 2012-03-20 | Hewlett-Packard Development Company, L.P. | Communicating chunks between devices |
US8332404B2 (en) * | 2007-10-25 | 2012-12-11 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
WO2009131585A1 (en) * | 2008-04-25 | 2009-10-29 | 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 |
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 |
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 |
US8660994B2 (en) * | 2010-01-28 | 2014-02-25 | Hewlett-Packard Development Company, L.P. | Selective data deduplication |
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 |
KR102106959B1 (ko) * | 2013-02-21 | 2020-05-07 | 에프아이오 세미컨덕터 테크놀로지스, 엘엘씨 | 멀티 레벨 셀 비휘발성 메모리 시스템 |
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 |
US11593021B2 (en) | 2020-11-06 | 2023-02-28 | Hewlett Packard Enterprise Development Lp | Writing a container index to persistent storage |
Family Cites Families (132)
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 |
US6003114A (en) | 1997-06-17 | 1999-12-14 | Emc Corporation | Caching system and method providing aggressive prefetch |
US7581077B2 (en) | 1997-10-30 | 2009-08-25 | Commvault Systems, Inc. | Method and system for transferring data in a storage operation |
US6374336B1 (en) | 1997-12-24 | 2002-04-16 | Avid Technology, Inc. | Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner |
US6415373B1 (en) | 1997-12-24 | 2002-07-02 | Avid Technology, Inc. | Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner |
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 |
US7107395B1 (en) | 1998-12-31 | 2006-09-12 | Emc Corporation | Apparatus and methods for operating a computer storage system |
US6920537B2 (en) | 1998-12-31 | 2005-07-19 | Emc Corporation | Apparatus and methods for copying, backing up and restoring logical objects in a computer storage system by transferring blocks out of order or in parallel |
US6412009B1 (en) | 1999-03-15 | 2002-06-25 | Wall Data Incorporated | Method and system for providing a persistent HTTP tunnel |
AU6104800A (en) | 1999-07-16 | 2001-02-05 | Intertrust Technologies Corp. | Trusted storage systems and methods |
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 | 電子マニュアル検索システム、方法、及び記録媒体 |
US20020177910A1 (en) | 2000-04-19 | 2002-11-28 | Quarterman John S. | Performance measurement system for large computer network |
US6961900B1 (en) | 2000-08-28 | 2005-11-01 | Microsoft Corporation | Rendering data according to a present schema from an origin response message |
JP4651797B2 (ja) * | 2000-10-03 | 2011-03-16 | 富士通セミコンダクター株式会社 | バックアップシステム、及び複製装置 |
WO2002035359A2 (en) | 2000-10-26 | 2002-05-02 | Prismedia Networks, Inc. | Method and system for managing distributed content and related metadata |
US6938005B2 (en) * | 2000-12-21 | 2005-08-30 | Intel Corporation | Digital content distribution |
ATE321422T1 (de) * | 2001-01-09 | 2006-04-15 | Metabyte Networks Inc | System, verfahren und software für die bereitstellung einer gezielten werbung durch benutzerprofildatenstruktur basierend auf benutzerpräferenzen |
US6857059B2 (en) | 2001-01-11 | 2005-02-15 | Yottayotta, Inc. | Storage virtualization system and methods |
US6587634B2 (en) | 2001-02-15 | 2003-07-01 | Avica Technology Corporation | Paging during media loading |
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 |
US7287047B2 (en) | 2001-11-23 | 2007-10-23 | Commvault Systems, Inc. | Selective data replication system and method |
JP4154893B2 (ja) * | 2002-01-23 | 2008-09-24 | 株式会社日立製作所 | ネットワークストレージ仮想化方法 |
US7072910B2 (en) | 2002-03-22 | 2006-07-04 | Network Appliance, Inc. | File folding technique |
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 |
JP4464279B2 (ja) | 2002-11-14 | 2010-05-19 | アイシロン・システムズ・インコーポレーテッド | 分散ファイルシステムにおけるファイルの再ストライピングのためのシステム及び方法 |
US20040148365A1 (en) | 2003-01-24 | 2004-07-29 | Sunay Tripathi | System and method for vectored sendfile |
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 |
JP4863605B2 (ja) | 2004-04-09 | 2012-01-25 | 株式会社日立製作所 | 記憶制御システム及び方法 |
US7613748B2 (en) | 2003-11-13 | 2009-11-03 | Commvault Systems, Inc. | Stored data reverification management system and method |
WO2005050489A1 (en) | 2003-11-13 | 2005-06-02 | Commvault Systems, Inc. | System and method for stored data archive verification |
US7133963B2 (en) | 2003-12-03 | 2006-11-07 | International Business Machines Corporation | Content addressable data storage and compression for semi-persistent computer memory |
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 |
US7617256B2 (en) | 2004-07-19 | 2009-11-10 | Microsoft Corporation | Remote file updates through remote protocol |
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 |
HUP0401870A2 (en) | 2004-09-17 | 2006-04-28 | 3D Histech Kft | Method and computer program product for storing high volume coherent primarily 3d information assuring fast retrieval and transmission |
US20060069890A1 (en) | 2004-09-30 | 2006-03-30 | Emc Corporation | Triangular asynchronous replication with minimal synchronous storage |
US7457813B2 (en) | 2004-10-06 | 2008-11-25 | Burnside Acquisition, Llc | Storage system for randomly named blocks of data |
US7765369B1 (en) | 2004-11-05 | 2010-07-27 | Commvault Systems, Inc. | Method and system for selectively deleting stored data |
US7343467B2 (en) | 2004-12-20 | 2008-03-11 | Emc Corporation | Method to perform parallel data migration in a clustered storage environment |
US7516239B2 (en) | 2004-12-30 | 2009-04-07 | Sap, Aktiengesellschaft | Tool for optimizing system performance and methods relating to same |
US7305387B2 (en) | 2004-12-30 | 2007-12-04 | Sap, Aktiengesellschaft | Method and apparatus for managing data object size in a multi-user environment |
US20060182050A1 (en) | 2005-01-28 | 2006-08-17 | Hewlett-Packard Development Company, L.P. | Storage replication system with data tracking |
US8341371B2 (en) * | 2005-01-31 | 2012-12-25 | Sandisk Il Ltd | Method of managing copy operations in flash memories |
US7814129B2 (en) | 2005-03-11 | 2010-10-12 | Ross Neil Williams | Method and apparatus for storing data with reduced redundancy using data clusters |
EP1866774A4 (en) | 2005-03-11 | 2010-04-14 | Rocksoft Ltd | METHOD FOR STORING DATA WITH LESS REDUNDANCY USING DATA GROUPS |
JP5043820B2 (ja) | 2005-03-11 | 2012-10-10 | ロックソフト リミテッド | 低冗長記憶システムで索引を行う方法 |
JP4975724B2 (ja) | 2005-03-11 | 2012-07-11 | ロックソフト リミテッド | 低冗長記憶システム内のサブブロックの存在を検出する方法 |
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 |
JP4571576B2 (ja) | 2005-11-24 | 2010-10-27 | 株式会社日立製作所 | リモートコピー記憶装置システムおよびリモートコピー方法 |
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 |
US7660836B2 (en) | 2006-03-09 | 2010-02-09 | International Business Machines Corporation | Controlling incremental backups using opaque object attributes |
JP4940738B2 (ja) | 2006-04-12 | 2012-05-30 | 株式会社日立製作所 | 記憶領域動的割当方法 |
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 |
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 |
US20070250673A1 (en) | 2006-04-25 | 2007-10-25 | Eidswick Max L | Computer backup system |
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 |
US7843823B2 (en) | 2006-07-28 | 2010-11-30 | Cisco Technology, Inc. | Techniques for balancing throughput and compression in a network communication system |
JP4757165B2 (ja) | 2006-10-04 | 2011-08-24 | 株式会社日立製作所 | 計算機システム、データ移行監視方法及びデータ移行監視プログラム |
JP5244332B2 (ja) | 2006-10-30 | 2013-07-24 | 株式会社日立製作所 | 情報システム、データ転送方法及びデータ保護方法 |
JP5057366B2 (ja) | 2006-10-30 | 2012-10-24 | 株式会社日立製作所 | 情報システム及び情報システムのデータ転送方法 |
US7593973B2 (en) | 2006-11-15 | 2009-09-22 | Dot Hill Systems Corp. | Method and apparatus for transferring snapshot data |
US8117409B2 (en) | 2006-11-22 | 2012-02-14 | Hitachi, Ltd. | Method and apparatus for backup and restore in a dynamic chunk allocation storage system |
US7640354B2 (en) | 2006-12-01 | 2009-12-29 | Microsoft Corporation | Scalable differential compression of network data |
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 |
US7761680B2 (en) | 2007-04-03 | 2010-07-20 | International Business Machines Corporation | Copying data from a first cluster to a second cluster to reassign storage areas from the first cluster to the second cluster |
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 |
US7783603B2 (en) | 2007-05-10 | 2010-08-24 | Dot Hill Systems Corporation | Backing store re-initialization method and apparatus |
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 |
US7898993B2 (en) | 2007-05-31 | 2011-03-01 | International Business Machines Corporation | Efficiency and resiliency enhancements for transition states in ad hoc networks |
US7792784B2 (en) | 2007-05-31 | 2010-09-07 | International Business Machines Corporation | Streaming multidimensional data by bypassing multidimensional query processor |
US7788233B1 (en) | 2007-07-05 | 2010-08-31 | Amazon Technologies, Inc. | Data store replication for entity based partition |
EP2012235A2 (en) | 2007-07-06 | 2009-01-07 | Prostor Systems, Inc. | Commonality factoring |
US8046509B2 (en) | 2007-07-06 | 2011-10-25 | 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 |
US7904682B2 (en) | 2007-07-19 | 2011-03-08 | International Business Machines Corporation | Copying writes from primary storages to secondary storages across different networks |
US7886124B2 (en) | 2007-07-30 | 2011-02-08 | Oracle International Corporation | Method and mechanism for implementing dynamic space management for large objects |
DE102007042144A1 (de) | 2007-09-05 | 2009-03-12 | Smiths Heimann Gmbh | Verfahren zur Verbesserung der Materialerkennbarkeit in einer Röntgenprüfanlage und Röntgenprüfanlage |
US8819288B2 (en) | 2007-09-14 | 2014-08-26 | Microsoft Corporation | Optimized data stream compression using data-dependent chunking |
US7831798B2 (en) * | 2007-09-18 | 2010-11-09 | International Business Machines Corporation | Method to achieve partial structure alignment |
US8782368B2 (en) | 2007-10-25 | 2014-07-15 | Hewlett-Packard Development Company, L.P. | Storing chunks in containers |
US8838541B2 (en) * | 2007-10-25 | 2014-09-16 | 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 |
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 |
US8332404B2 (en) * | 2007-10-25 | 2012-12-11 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
DE112007003678B4 (de) | 2007-10-25 | 2016-02-25 | Hewlett-Packard Development Company, L.P. | Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung |
US20090177856A1 (en) | 2008-01-09 | 2009-07-09 | Jason Joseph Herne | Method and apparatus for automated backup process |
US7979670B2 (en) | 2008-01-24 | 2011-07-12 | Quantum Corporation | Methods and systems for vectored data de-duplication |
WO2009131585A1 (en) | 2008-04-25 | 2009-10-29 | Hewlett-Packard Development Company, L.P. | Data processing apparatus and method of processing data |
US8224782B2 (en) | 2008-09-29 | 2012-07-17 | Hitachi, Ltd. | System and method for chunk based tiered storage volume migration |
US7733247B1 (en) | 2008-11-18 | 2010-06-08 | International Business Machines Corporation | Method and system for efficient data transmission with server side de-duplication |
CN102301377B (zh) | 2008-12-18 | 2015-07-08 | 科普恩股份有限公司 | 用于内容感知的数据分区和数据去重复的方法和设备 |
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 |
-
2007
- 2007-10-25 GB GB1000243.4A patent/GB2466579B/en active Active
- 2007-10-25 CN CN200780101502.1A patent/CN101855636B/zh active Active
- 2007-10-25 US US12/671,322 patent/US9372941B2/en active Active
- 2007-10-25 WO PCT/US2007/022629 patent/WO2009054834A1/en active Application Filing
- 2007-10-25 DE DE112007003645T patent/DE112007003645B4/de active Active
Also Published As
Publication number | Publication date |
---|---|
GB2466579A (en) | 2010-06-30 |
DE112007003645T5 (de) | 2010-07-29 |
DE112007003645B4 (de) | 2011-06-16 |
CN101855636A (zh) | 2010-10-06 |
US20100198832A1 (en) | 2010-08-05 |
US9372941B2 (en) | 2016-06-21 |
GB2466579B (en) | 2012-12-26 |
GB201000243D0 (en) | 2010-02-24 |
WO2009054834A1 (en) | 2009-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101855636B (zh) | 数据处理设备及数据处理方法 | |
CN101855620B (zh) | 数据处理设备和数据处理方法 | |
CN102016789B (zh) | 数据处理装置和处理数据的方法 | |
CN102246137B (zh) | 身份副本删除之后的delta压缩 | |
CN101553813B (zh) | 管理可单独访问的数据单元的存储器 | |
CN101855619B (zh) | 数据处理设备和数据处理方法 | |
CN102725755B (zh) | 文件访问方法及系统 | |
CN105049287A (zh) | 日志处理方法及装置 | |
CN101084499A (zh) | 用于搜索和存储数据的系统和方法 | |
US20090070367A1 (en) | Multi-version control method for data documents and device thereof | |
US10496612B2 (en) | Method for reliable and efficient filesystem metadata conversion | |
CN104915270A (zh) | 用于压缩与解压缩的同步历史数据的系统和方法 | |
JP4490068B2 (ja) | ネットワークを利用したデータ保管システム | |
CN106874399B (zh) | 一种联网备份系统及备份方法 | |
CN115151877A (zh) | 信息处理装置以及信息处理方法 | |
CN116319815B (zh) | 引入SaaS特征的云数据放置策略管理系统 | |
CN111158606B (zh) | 存储方法、装置、计算机设备和存储介质 | |
KR101895848B1 (ko) | 문서 보안 방법 | |
CN110765133A (zh) | 一种基于数据取余分配数据表的控制方法及装置 | |
US20170308561A1 (en) | Indexing and sequentially storing variable-length data to facilitate reverse reading | |
KR100319761B1 (ko) | 시그니처 파일을 이용한 데이터베이스 검색시스템에서의프레임 분할 병렬 처리 방법 | |
US20170192674A1 (en) | Facilitating reverse reading of sequentially stored, variable-length data | |
Dileep | An Effective Approach for Indexed Data Access based on Linear Search Technique Using Reference Key Algorithm |
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: 20170113 Address after: American Texas Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American Texas Patentee before: Hewlett Packard Development Co. |