CN101208665A - 以可重复方式遍历数据 - Google Patents
以可重复方式遍历数据 Download PDFInfo
- Publication number
- CN101208665A CN101208665A CNA2006800121175A CN200680012117A CN101208665A CN 101208665 A CN101208665 A CN 101208665A CN A2006800121175 A CNA2006800121175 A CN A2006800121175A CN 200680012117 A CN200680012117 A CN 200680012117A CN 101208665 A CN101208665 A CN 101208665A
- Authority
- CN
- China
- Prior art keywords
- data
- tabulation
- hierarchical data
- project
- estate
- 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/1458—Management of the backup or restore process
- G06F11/1466—Management of the backup or restore process to make the backup process non-disruptive
-
- 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/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
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)
Abstract
公开了对层级式数据的遍历。接收数据的第一等级中项目的第一列表并且以一定顺序排序。以排序的第一列表的顺序处理第一等级的数据。如果在处理过程中遇到数据的任何其它等级,接收所遇到等级中项目的另一个列表并且以一定顺序排序。以列表的顺序处理数据。
Description
背景技术
随着存储单元容量指数式增长的趋势,文件系统的大小也以指数式增长变大。由于文件系统备份工具必需遍历整个文件系统,以便定位并且备份所有需要的文件和目录,大文件系统的备份可能花费相当长的时间。较长的备份时间还可能意味着在备份处理过程中被中断的较大风险。例如,网络备份系统中短暂的网络故障或者客户机或服务器中任何其它的故障可能造成备份过程中断。在备份失败的情况下,典型的备份系统从备份操作中待备份的数据集合(例如待备份的一组文件和/或目录)的起点重新开始备份过程,有时在这里将这样的集合称为“保存集合(saveset)”。假定长的备份持续时间和进一步中断的可能性,在每次中断之后再开始备份过程可能显著影响备份系统的性能。
在典型的备份系统或过程中,甚至在包含保存集合的数据自中断以来没有被修改过的情况下备份操作也无法获得其停止的位置,这是因为在至少某些情况下无法保证对文件系统的遍历每次都以相同的顺序进行。例如,对于相同命令的单独场合,从给定目录读取项目的“readdir”(读目录)命令可能以不同的顺序返回结果。因此存在一种需求,保证以可重复的方式执行数据遍历。
附图说明
在下面的详细描述和附图中公开了本发明的多个实施例。
图1说明了备份系统环境的一个实施例。
图2说明了文件系统树形结构的一个实施例。
图3A说明了备份保存集合的过程的一个实施例。
图3B说明了以可重复方式遍历和备份数据的过程的一个实施例。
图3C说明了建立遍历列表的过程的一个实施例。
图3D说明了恢复中断的备份操作的过程的一个实施例。
图3E说明了确定成功写入备份介质的最后文件系统项的过程的一个实施例。
图3F说明了建立过程前后关系的过程的一个实施例。
具体实施方式
本发明可以以多种方式实现,包括作为过程、装置、系统、实体的组合、计算机可读介质,例如计算机可读存储介质或者在光或电通信连接上传送程序指令的计算机网络。在本说明书中,可能将这些实现方式或者本发明可以采用的任何其它形式称为技术。所描述的配置用于执行任务的组件,例如处理器或存储器,既包括在特定的时间临时配置用于执行任务的通用组件、也包括制造用于执行该任务的定制组件。一般而言,在本发明的范围内可以改变所公开过程的步骤顺序。
下面给出了本发明一个或多个实施例的详细描述,并且伴随的附图说明了本发明的原理。结合这些实施例对本发明进行描述,但本发明不局限于任何一个实施例。本发明的范围仅由权利要求限定,并且本发明包括许多替代、修改和等效形式。在后面的说明中所述的许多特定细节是为了提供对本发明的彻底理解。提供这些细节是为了作为例子,可以根据权利要求书实施本发明而不需要这些特定细节中的某些或全部。为了清楚的目的,对本技术领域中和本发明相关的公知的技术材料没有详细描述,从而不会产生不必要的影响使本发明晦涩难懂。
公开了以可重复的方式对层级式数据进行遍历。在一个实施例中,在层级式数据的第一等级读取包含至少一部分数据的项目的列表并且排序为指定的顺序用于遍历的可重复性。例如,当以可重复方式遍历文件系统以便执行关于该文件系统或其一部分的备份操作,将每个目录中的内容读入列表并且排序(例如成为文件名的字母顺序)。以所排序列表的顺序备份文件系统项(或者其它经过处理的数据)。如果遇到数据的第二等级,读取第二等级中的数据并且排序为指定的顺序,然后以所排序的顺序处理数据。如果数据的遍历被中断,在恢复操作中以与在中断的操作中相同的指定顺序进行读取、排序和处理,保证如果在中断操作被中断的点恢复处理则不会遗漏数据单元,甚至在每个等级的单元是以不同的顺序读取或接收的情况下也是如此。
在一个实施例中,作为备份操作的一部分,当文件系统项成功保存到备份介质时,产生备份过程的记录。这个记录在此以后可以用于在备份过程中出现故障时可以从最后成功记录的备份点恢复备份。在一个实施例中,在备份恢复操作中一旦找到最后备份点,备份系统或过程重新建立备份操作前后关系而无需彻底地遍历文件系统。通过重新建立前后关系并且从在中断之前成功并且完全备份的最后文件之后的数据单元开始恢复处理,恢复被中断的备份操作。以相同的、可重复的顺序遍历文件系统,保证了在备份介质上将不会有文件被遗漏或者重复存储。
图1说明了备份系统环境的一个实施例。在所示的例子中,客户机102通过网络106连接到服务器108。可以存在连接到网络的任意数量的客户机和服务器。该网络可以是任意的公用或者私有网络和/或其组合,包括而不是限制于内部互联网、局域网、广域网、以及连接多个系统和/或在一起的系统组的其它形式。客户机102连接到备份介质104。在某些实施例中,备份介质可以是以下存储介质中的一种或多种:硬盘、磁带驱动器、光学存储单元、以及任何非易失性存储器件。可以存在多于一个的备份介质。在一个实施例中,备份介质104直接连接到网络。在另一个实施例中,备份介质104连接到服务器108。在另一个实施例中,备份介质104通过SAN(存储区域网络)连接到客户机102。备份数据库110连接到服务器108。在一个实施例中,备份数据库110包含与一个或多个客户机和/或服务器上的数据相关联的数据。在另一个实施例中,备份数据库110包含与写入一个或多个备份介质的数据相关联的数据。在另一个实施例中,备份数据库110直接连接到网络。在另一个实施例中,备份数据库110连接到客户机102。在另一个实施例中,备份数据库110是服务器108和/或客户机102的一部分。在一个实施例中,客户机102的备份由服务器108配合。服务器108指令客户机将数据备份到备份介质104。当数据成功写入备份数据时,在备份数据库110上作出记录。在另一个实施例中,服务器108与客户机102上运行的备份代理协作以调整备份操作。该备份代理可以由服务器108进行配置。
图2说明了文件系统树形结构的一个实施例。在一个实施例中,系统中待备份的一部分数据(保存集合)可以是整个文件系统或者是文件系统的一部分。在一个实施例中,对文件系统以可重复方式进行遍历,以保证任意随后发生的在文件系统中任意相同点开始的遍历以相同的顺序执行。在所示的例子中,以首先是文件名然后是目录名的字母顺序进行遍历。在其它实施例中,可以使用任何规范的文件系统项的排序。遍历从根目录开始。读取并排序根目录的项目。排序后的顺序列表包括:文件F、目录1、目录2、目录4。以列表中的顺序备份与列表中的项目对应的数据。当遇到备份目录1时,备份过程下降到目录1,产生的列表包括:文件A,并且备份文件A。在已经遍历目录1之后,遍历恢复到根目录列表的项目上。当遇到目录2时,产生其内容的顺序列表,按顺序包括:文件B、文件C、文件D、目录3。以列表的顺序备份与列表的项目对应的数据。当遇到目录3时,产生对应于文件E的列表和备份。由于目录4为空,备份对应于目录4的项目而没有任何相关的文件。
图3A说明了对保存集合进行备份的过程的一个实施例。在所示的例子中,在302设定当前备份目录为保存集合的第一级目录。在一个实施例中,在302设定当前目录为与文件系统的根目录相关联。该保存集合可以是预先配置的、动态配置的、通过用户界面指定的、设定为任意的第一级数据的、和/或以某些其它方式确定的。该保存集合可以是任意的层级式数据结构,例如组织为树形、目录、阵列、和/或链接表的数据。当前备份目录是与该过程当前正进行备份的数据相关的目录。当前备份目录可以是预先配置的、动态配置的、和/或通过用户界面指定的处理数据中的任意数据点。在一个实施例中,第一级目录是数据的任意分类等级,提到最普通的例如是首先遇到数据级。在304,以可重复方式对保存集合进行遍历和备份。在其它实施例中,使用与304相关的过程可以以可重复方式遍历任意的层级式数据。在一个实施例中,与304相关的过程可能被中止,例如由于中断。如果在306确定对保存集合的遍历和备份由于过程的中止而没有完成,则过程继续到308,在此确定是否可能恢复被中断的备份操作。如果备份过程能够从如在308确定的最后成功备份点恢复备份,则在310恢复备份过程。在一个实施例中,如果自最后备份点时刻和/或备份起始时刻以来没有经过规定的一段时间,备份过程可以从最后成功备份点恢复。在一个实施例中,这段时间可以预先配置和/或动态配置。在一个实施例中,如果自中止以来保存集合的整体或者部分没有被修改,备份过程可以从最后成功备份点恢复。如果在312确定在恢复的备份过程中恢复的备份过程是无效的,或者在308确定备份过程无法恢复,则重新开始备份操作(302)。在一个实施例中,如果在中断之前已经被成功保存到备份介质的那个最后文件从保存集合中被移除或者自中断以来已经被修改,在312确定所恢复的备份过程为无效。如果在312确定恢复的备份过程有效,所恢复的备份过程继续,直到在306确定备份操作已经完成,在此情况下图3A的过程结束,或者在306确定所恢复的备份过程被中断,在此情况下重复308-312。在一个实施例中,如果所恢复的备份过程在312进行有效确定操作之前被中止,备份操作从起点(302)重新开始。
图3B说明了以可重复方式遍历和备份数据的过程的一个实施例。图3B的过程在一个实施例中用于实现图3A中的304。在所示的例子中,在316建立当前备份目录的遍历列表。该遍历列表包括以可重复顺序排序的当前目录中的项目列表。在一个实施例中,该遍历列表是存储的。在一个实施例中,该遍历列表是随着遍历和备份过程的继续同步建立的。在318,从遍历列表获得下一个项目。在一个实施例中,以列表的顺序从遍历列表获得项目。在另一个实施例中,以可重复顺序从遍历列表获得项目,而不是以列表的顺序。如果在320确定成功获得了一个项目(存在于遍历列表中待处理的项目),并且在322确定这个所获得的项目不对应于目录,则在324将与这个所获得项目相关联的文件系统项目备份并作记录,并且在318从遍历列表获得下一个项目。在一个实施例中,文件系统项目在324保存到备份介质。在一个实施例中对备份进行记录,以便于在例如备份操作被中断的情况下能够识别保存集合中成功保存到备份介质的最后文件。在一个实施例中,备份的日志保存到备份数据库。在一个实施例中,文件名、文件大小、以及从保存集合的起点的偏移量,该偏移量识别文件在保存集合中的位置,如这里所描述的进行遍历。如果在322确定所获得的项目对应于目录,当前备份目录设定为与所获得项目对应的目录,并且在316为这个新的当前目录建立遍历列表。如果在320确定在遍历列表已经不存在待处理的项目,则在328确定当前备份目录的备份完成。在一个实施例中,当与当前目录相关的所有要素都已经备份时,与当前目录相关联的数据被备份和/或记录。如果在330确定当前目录不是第一级目录,则在322设定当前目录为当前所完成目录的父目录,并且在318从新设定当前目录的遍历列表获得下一个项目。在一个实施例中,第一级目录是保存集合的根目录。在一个实施例中,父目录是与由刚刚完成处理的目录替代的前一个当前备份目录相对应的目录。在一个实施例中,当前备份目录放置在堆栈数据结构中,即随着当前备份目录变化而向堆栈增加目录或者从堆栈拿掉目录。在另一个实施例中,对应于当前备份目录的遍历表也放置在堆栈中。如果在330确定当前目录是第一级目录,在334指示备份完成。在一个实施例中,334对应于图3A中在306的“完成”判定。在一个实施例中,如果图3A的过程在过程达到334之前中止,则遍历和备份过程没有完成。在一个实施例中,如果在备份过程中出现错误,则遍历和备份过程没有完成。在一个实施例中,错误包括以下的一个或多个:无效的遍历列表项目、无效的当前目录、无效的数据结构、存储器错误、处理错误、和/或任何其它与过程相关的错误。在一个实施例中,如果遍历和备份过程在334作出“完成”判定之前被中止或中断,则在图3A的306作出“未完成”的判定。
图3C说明了建立遍历列表的过程的一个实施例。图3C的过程在一个实施例中用于实现图3B中的316。在所示的例子中,在336获得当前目录中的所有文件系统项。在一个实施例中,获得操作包括处理一个或多个“readdir”或者类似的命令。在另一个实施例中,可以使用获得文件系统项的任何步骤。在一个实施例中,文件系统项存储在存储器中。在338以规范的顺序排序项目。规范的顺序可以基于文件名、修改时间、节点数量、建立时间、文件大小、和/或任何其它能够对文件系统项目进行排序的文件属性。在一个实施例中,可以使用任何可重复的顺序来排序列表。在另一个实施例中,以可重复顺序获得文件系统项,因而不需要排序。在另一个实施例中,不对项目进行排序。在一个实施例中,项目放置在列表中。在另一个实施例中,项目列表被保存。
图3D说明了恢复被中断的备份操作的过程的一个实施例。图3D的过程在一个实施例中用于实现图3D中的310。在所示的例子中,在340确定成功写入备份介质的最后文件。在342,通过递归函数调用仅下降到导向最后备份目录项目的子目录,借此建立递归堆栈(由递归过程产生的堆栈项目)和其它的过程前后关系。在一个实施例中,其它的过程前后关系包括一个或多个遍历列表。在其它实施例中,其它的过程前后关系包括包括过程变量和/或数据结构。可以使用非递归过程对备份数据进行遍历。在一个实施例中,不建立递归堆栈。备份数据可以不包括子目录。如果在过程前后关系建立的过程中,在344确定重新开始点、即与最后备份项目相关联的分量部分或者最后备份项目是无效的,则在350断定所恢复的备份操作是无效的。在一个实施例中,350的结论与图3A中312的无效判定相关联。在一个实施例中,由于文件系统的修改,可能无法找到最后备份项目的分量部分或者最后备份项目。如果在344确定最后备份点项目和所有其分量部分都存在,则在346在要备份的下一个文件系统项目处恢复备份并且在348断定所恢复的备份操作是有效的。在一个实施例中,348的结论与图3A中312的有效判定相关联。在另一个实施例中,如果在恢复步骤的过程中出现错误,则获得恢复操作无效的结论。
图3E说明了确定成功写入备份介质的最后文件系统项目的过程的一个实施例。图3C的过程在一个实施例中用于实现图3D中的340。这个例子仅是示例性的。可以使用任何确定成功写入备份介质的最后文件系统项目的过程。在所示的例子中,在352查询备份数据库以确定在备份操作被中断之前成功保存在备份介质中的最后“保存集合块”的最后(即结尾)偏移量。在一个实施例中,该偏移量与指示偏离于保存集合起点的位置相关联,即保存集合的起点的偏移量为零。在一个实施例中,“保存集合块”是写入备份介质的任何数据分组。在一个实施例中,可以通过任何获得数据的过程获得最后偏移量。在354,查询文件索引以定位保存在备份介质中的内容全部位于偏移范围内的最后文件系统项目。在一个实施例中,通过比较文件系统项结尾相对于参考点的偏移和最后偏移,确定内容完全位于最后偏移内的最后文件系统项目。在一个实施例中,文件索引包括保存集合中每个项目相对于参考点的偏移信息。在另一个实施例中,根据在文件备份开始时为文件记录的起点偏移和文件大小来计算文件的最后偏移信息。在一个实施例中,文件索引是文件系统的一部分。在另一个实施例中,文件索引与备份数据库相关联。
图3F说明了建立过程前后关系的过程的一个实施例。图3F的过程在一个实施例中用于实现图3D中的342。在所示的例子中,在340接收重新开始点。重新开始点可以是与最后处理的文件系统项目相关联的任意数据,即对应于在相关的备份操作中断之前完成保存在备份介质中的最后文件的文件系统路径。在一个实施例中,重新开始点是与如图3D中340确定的成功写入备份介质的最后文件系统项目相关联的数据。在358,从第一级目录开始对保存集合进行遍历。在360,获得被遍历的当前目录中下一个文件系统项目。如果在362确定所获得的项目是无效的,则在364作出重新开始点无效的结论。在一个实施例中,所获得的项目可能是无效的,因为在当前遍历的目录中不存在更多的文件系统项目,与重新开始点相关或对其影响的项目、和/或重新开始路径已经被改变、移动、或删除,或者由于文件系统的错误。在一个实施例中,在364的结论与图3D中344的无效判定相关联。如果所获得的项目在362确定是有效的并且在366确定对应于重新开始点,则在368作出重新开始点有效的结论。在一个实施例中,368的结论与图3D中344的有效判定相关联。如果在366确定所获得的项目不是重新开始点,并且在370确定所获得的项目是目录项,则在372确定所获得的目录项是否导向重新开始点。在一个实施例中,如果目录是导向重新开始点的文件系统路径的一部分,则该目录导向重新开始点。如果在372确定所获得的目录项导向重新开始点,则在374下降到该所获得的目录项。下降到该目录的过程可能不是递归过程。在一个实施例中,下降到目录的过程包括建立递归堆栈。在一个实施例中,下降到目录的过程包括以下的一个或多个:建立遍历列表、备份数据、读取文件系统项目、读取目录内容、遍历目录、以及初始化一个或多个变量和数据结构。在360获得下降目录中的下一个文件系统项目。如果所获得的项目在370确定不是目录或者在372确定不导向重新开始点,则在360获得当前被遍历的目录中的下一个文件系统项目。在一个实施例中,以可重复顺序遍历文件系统,即以为每个目录建立的遍历列表的顺序遍历文件系统项目。
虽然以上面讨论的特定实施例描述了文件系统的遍历和备份,但这里描述的方法可以应用于以可重复的方式遍历任何的数据结构。
图3A、3B、3C、3D、3E和3F中所示以及上面描述的过程可以用任何恰当的方式实现,例如一个和多个集成电路和/或其它器件,或者固件、软件、或其它的。
虽然为了理解清楚的目的描述了前面几个实施例的一些细节,但本发明不局限于所提供的细节。存在许多实现本发明的替代方式。所公开的实施例是示例的而非限制。
Claims (33)
1.一种处理层级式数据的方法,包括:
接收数据的第一等级中项目的第一列表;
以一定顺序排序该第一列表;
以所排序的第一列表的顺序处理第一等级的数据;以及
如果在处理过程中遇到数据的另一等级,则:
接收所遇到等级中项目的第二列表;
以一定顺序排序该第二列表;以及
以第二列表的顺序处理数据。
2.如权利要求1所述的方法,进一步包括在出现中断所述层级式数据被处理的执行操作的事件时恢复对层级式数据的处理,而不从起点重新开始该操作,包括通过对层级式数据进行遍历以达到重新开始点;并且以与在中断之前遍历层级式数据相同的顺序处理剩余的层级式数据单元,按着继续进行操作所要求的进行。
3.如权利要求2所述的方法,其中将层级式数据进行遍历以达到重新开始点的步骤包括以与在中断之前遍历层级式数据相同的顺序进行遍历在中断之前处理的层级式数据的至少一部分。
4.如权利要求1所述的方法,进一步包括,若有的话,一旦第二列表中最后的项目已经处理完成,以第一列表的顺序从下一个项目开始恢复处理第一等级的数据。
5.如权利要求1所述的方法,其中第一列表被排序在堆栈数据结构中的第一位置而第二列表被排序在堆栈数据结构中的第二位置,其中第一位置与数据的第一等级相关联而第二位置与数据的等级相关联。
6.如权利要求1所述的方法,其中层级式数据是包括文件系统或其一部分的保存集合。
7.如权利要求1所述的方法,其中层级式数据包括组织为树形、目录、阵列、或链接表的数据。
8.如权利要求1所述的方法,其中接收项目的第一列表的步骤包括从内容列出过程中接收数据。
9.如权利要求1所述的方法,其中接收项目的第一列表的步骤包括发出一个或多个请求以读取目录。
10.如权利要求1所述的方法,其中第一等级包括第一目录而第二等级包括第二目录,所述第二目录是第一目录内的子目录。
11.如权利要求1所述的方法,其中第一等级是保存集合的根目录。
12.如权利要求1所述的方法,其中第一等级是比第二等级更加概括的层级式数据等级。
13.如权利要求1所述的方法,其中以一定顺序排序第一列表包括以可重复顺序对项目进行排序。
14.如权利要求1所述的方法,其中以一定顺序排序第一列表包括以规范的顺序对项目进行排序。
15.如权利要求14所述的方法,其中规范的顺序包括基于以下一个或多个的排序:项目类型、项目名称、项目属性、项目修改时间、项目创建时间、项目大小、以及节点数量。
16.如权利要求1所述的方法,其中处理第一等级的数据的步骤包括对第一等级的数据进行遍历。
17.如权利要求1所述的方法,其中处理第一等级的数据的步骤包括备份与第一等级的数据相关联的数据。
18.如权利要求1所述的方法,其中处理第一等级的数据的步骤包括记录与第一等级的数据相关联的数据。
19.如权利要求1所述的方法,其中在处理过程中可以遇到任意数量的等级。
20.如权利要求1所述的方法,其中处理可以被中止。
21.如权利要求1所述的方法,其中如果处理已经被中止,该处理可以从最后完成的项目恢复继续。
22.如权利要求1所述的方法,其中如果处理已经被中止并且自中止以来没有经过预定的或动态配置的一段时间,则该处理可以从最后完成的项目恢复继续。
23.如权利要求1所述的方法,其中如果处理已经被中止并且自中止以来层级式数据没有被修改,则该处理可以从最后完成的项目恢复继续。
24.一种处理层级式数据的系统,包括:
处理器,其配置用于:
接收数据的第一等级中项目的第一列表,
以一定顺序排序该第一列表,
以所排序的第一列表的顺序处理第一等级的数据,以及
如果在处理过程中遇到数据的另一等级,则:
接收所遇到等级中项目的第二列表,
以一定顺序排序该第二列表,以及
以第二列表的顺序处理数据;和
存储器,其耦合到处理器和用于向处理器提供指令。
25.如权利要求24所述的系统,其中处理器用于若有的话,一旦第二列表中最后的项目已经处理完成,以第一列表的顺序从下一个项目开始恢复处理第一等级的数据。
26.如权利要求24所述的系统,其中处理器进一步用于在出现中断所述层级式数据被处理的执行操作的事件时恢复对层级式数据的处理,而不从起点重新开始该操作,包括通过对层级式数据进行遍历以达到重新开始点;并且以与在中断之前遍历层级式数据相同的顺序处理剩余的层级式数据单元,按着继续进行操作所要求的进行。
27.如权利要求26所述的系统,其中将层级式数据进行遍历以达到重新开始点的步骤包括以与在中断之前遍历层级式数据相同的顺序进行遍历在中断之前处理的层级式数据的至少一部分。
28.一种处理层级式数据的计算机程序产品,该计算机程序产品包含在计算机可读介质中并且包括用于完成以下操作的计算机指令:
接收数据的第一等级中项目的第一列表;
以一定顺序排序该第一列表;
以所排序的第一列表的顺序处理第一等级的数据;以及
如果在处理过程中遇到数据的另一等级,则:
接收所遇到等级中项目的第二列表;
以一定顺序排序该第二列表;以及
以第二列表的顺序处理数据。
29.如权利要求28所述的计算机程序产品,进一步包括,若有的话,一旦第二列表中最后的项目已经处理完成,以第一列表的顺序从下一个项目开始恢复处理第一等级的数据。
30.如权利要求28所述的计算机程序产品,进一步包括在出现中断所述层级式数据被处理的执行操作的事件时恢复对层级式数据的处理,而不从起点重新开始该操作,包括通过对层级式数据进行遍历以达到重新开始点;并且以与在中断之前遍历层级式数据相同的顺序处理剩余的层级式数据单元,按着继续进行操作所要求的进行。
31.如权利要求30所述的计算机程序产品,其中将层级式数据进行遍历以达到重新开始点的步骤包括以与在中断之前遍历层级式数据相同的顺序进行遍历在中断之前处理的层级式数据的至少一部分。
32.一种定位数据项目的方法,包括:
确定与层级式数据集合相关联的数据的最后段的段结尾相对于参考点的偏移,该最后段是与待存储到存储介质的层级式数据集合相关联的最后数据;以及
通过将数据对象结尾相对于参考点的偏移和段结尾的偏移进行比较,确定数据对象在层级式数据集合中的位置,所述数据对象是完全存储到存储介质的最后数据对象。
33.一种恢复层级式数据的处理的方法,包括:
通过在层级式数据的第一等级开始、忽略关于先前处理过部分中的数据的至少一个处理操作,遍历层级式数据的先前处理过部分;
若有的话,仅下降到导向层级式数据中重新开始位置的子等级;和
从重新开始位置之后的下一个数据开始恢复正常处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210403383.8A CN102982067B (zh) | 2005-04-14 | 2006-04-12 | 以可重复方式遍历数据 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/107,995 US7657579B2 (en) | 2005-04-14 | 2005-04-14 | Traversing data in a repeatable manner |
US11/107,995 | 2005-04-14 | ||
PCT/US2006/014000 WO2007027208A2 (en) | 2005-04-14 | 2006-04-12 | Traversing data in a repeatable manner |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210403383.8A Division CN102982067B (zh) | 2005-04-14 | 2006-04-12 | 以可重复方式遍历数据 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101208665A true CN101208665A (zh) | 2008-06-25 |
CN101208665B CN101208665B (zh) | 2012-12-12 |
Family
ID=37109770
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800121175A Active CN101208665B (zh) | 2005-04-14 | 2006-04-12 | 处理层级式数据的方法和系统 |
CN201210403383.8A Active CN102982067B (zh) | 2005-04-14 | 2006-04-12 | 以可重复方式遍历数据 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210403383.8A Active CN102982067B (zh) | 2005-04-14 | 2006-04-12 | 以可重复方式遍历数据 |
Country Status (5)
Country | Link |
---|---|
US (2) | US7657579B2 (zh) |
EP (1) | EP1869594A4 (zh) |
JP (1) | JP2008537229A (zh) |
CN (2) | CN101208665B (zh) |
WO (1) | WO2007027208A2 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729671A (zh) * | 2009-12-31 | 2010-06-09 | 宇龙计算机通信科技(深圳)有限公司 | 一种终端、备份文件管理的方法及系统 |
CN102479203A (zh) * | 2010-11-26 | 2012-05-30 | 金蝶软件(中国)有限公司 | 物料清单的展示方法及系统 |
CN103186568A (zh) * | 2011-12-28 | 2013-07-03 | 金蝶软件(中国)有限公司 | 树型结构数据的访问方法及系统 |
CN103514064A (zh) * | 2012-06-28 | 2014-01-15 | 国际商业机器公司 | 记录备份信息的方法和装置 |
CN105808633A (zh) * | 2016-01-08 | 2016-07-27 | 平安科技(深圳)有限公司 | 数据归档方法和系统 |
CN107798073A (zh) * | 2017-09-29 | 2018-03-13 | 华为技术有限公司 | 处理具有树形结构的数据集合的方法和装置 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7653624B1 (en) * | 2005-04-18 | 2010-01-26 | Emc Corporation | File system change tracking |
US7574461B1 (en) * | 2005-12-28 | 2009-08-11 | Emc Corporation | Dividing data for multi-thread backup |
US7693889B1 (en) | 2005-12-28 | 2010-04-06 | Emc Corporation | Automated backup and recovery for content repository |
US7882073B1 (en) * | 2007-09-28 | 2011-02-01 | Symantec Operating Corporation | Backup agent for dynamically decomposing a database backup request to constituent files to facilitate backup restartability |
US8176274B2 (en) * | 2008-10-24 | 2012-05-08 | Cyanline Llc | Electronic data reproduction |
US9235593B2 (en) * | 2010-09-30 | 2016-01-12 | Emc Corporation | Transmitting filesystem changes over a network |
US8671085B2 (en) | 2011-12-09 | 2014-03-11 | Microsoft Corporation | Consistent database recovery across constituent segments |
US9535794B2 (en) * | 2013-07-26 | 2017-01-03 | Globalfoundries Inc. | Monitoring hierarchical container-based software systems |
US9110910B1 (en) | 2013-07-31 | 2015-08-18 | Emc Corporation | Common backup format and log based virtual full construction |
US9678979B1 (en) * | 2013-07-31 | 2017-06-13 | EMC IP Holding Company LLC | Common backup format and log based virtual full construction |
US20150242284A1 (en) * | 2014-02-25 | 2015-08-27 | Ca, Inc. | Two-algorithm sort during backup and recovery |
CN105376277B (zh) * | 2014-08-25 | 2019-02-01 | Tcl集团股份有限公司 | 一种数据同步方法及装置 |
US9507668B2 (en) * | 2014-10-30 | 2016-11-29 | Netapp, Inc. | System and method for implementing a block-based backup restart |
US10318575B2 (en) | 2014-11-14 | 2019-06-11 | Zorroa Corporation | Systems and methods of building and using an image catalog |
US10853192B2 (en) * | 2015-02-24 | 2020-12-01 | Unisys Corporation | Database replication with continue and tape-type-override functions |
US10467257B2 (en) * | 2016-08-09 | 2019-11-05 | Zorroa Corporation | Hierarchical search folders for a document repository |
US10664514B2 (en) | 2016-09-06 | 2020-05-26 | Zorroa Corporation | Media search processing using partial schemas |
CN106777383B (zh) * | 2017-02-14 | 2020-05-19 | Oppo广东移动通信有限公司 | 文件排序方法及智能终端 |
US20220075830A1 (en) * | 2020-09-10 | 2022-03-10 | EMC IP Holding Company LLC | Resumable ordered recursive traversal of an unordered directory tree |
Family Cites Families (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4453217A (en) * | 1982-01-04 | 1984-06-05 | Bell Telephone Laboratories, Incorporated | Directory lookup method and apparatus |
US4945475A (en) * | 1986-10-30 | 1990-07-31 | Apple Computer, Inc. | Hierarchical file system to provide cataloging and retrieval of data |
US5398142B1 (en) * | 1989-05-31 | 1997-09-16 | Raxco Inc | Method for eliminating file fragmentation and reducing average seek times in a magnetic disk media environment |
US5649205A (en) * | 1989-07-07 | 1997-07-15 | Martins; Augusto Baronio | File retrieval system |
US5276874A (en) * | 1989-08-11 | 1994-01-04 | Digital Equipment Corporation | Method for creating a directory tree in main memory using an index file in secondary memory |
US5177744A (en) * | 1990-09-04 | 1993-01-05 | International Business Machines Corporation | Method and apparatus for error recovery in arrays |
US5239647A (en) * | 1990-09-07 | 1993-08-24 | International Business Machines Corporation | Data storage hierarchy with shared storage level |
US5764877A (en) * | 1991-06-25 | 1998-06-09 | Digital Equipment Corporation | Media recovery with time-split B-trees |
US5241668A (en) * | 1992-04-20 | 1993-08-31 | International Business Machines Corporation | Method and system for automated termination and resumption in a time zero backup copy process |
US5355497A (en) * | 1992-06-10 | 1994-10-11 | Physiotronics Corporation | File directory structure generator and retrevial tool with document locator module mapping the directory structure of files to a real world hierarchical file structure |
US5794252A (en) * | 1995-01-24 | 1998-08-11 | Tandem Computers, Inc. | Remote duplicate database facility featuring safe master audit trail (safeMAT) checkpointing |
US6453325B1 (en) * | 1995-05-24 | 2002-09-17 | International Business Machines Corporation | Method and means for backup and restoration of a database system linked to a system for filing data |
US5644736A (en) * | 1995-05-25 | 1997-07-01 | International Business Machines Corporation | System and method for selecting components of a hierarchical file structure |
US5778395A (en) * | 1995-10-23 | 1998-07-07 | Stac, Inc. | System for backing up files from disk volumes on multiple nodes of a computer network |
US5838783A (en) * | 1995-12-27 | 1998-11-17 | Lucent Technologies, Inc. | Smart directory management |
US6457017B2 (en) * | 1996-05-17 | 2002-09-24 | Softscape, Inc. | Computing system for information management |
JPH1040063A (ja) * | 1996-07-26 | 1998-02-13 | Canon Inc | 画像情報処理方法とその装置 |
US5878410A (en) * | 1996-09-13 | 1999-03-02 | Microsoft Corporation | File system sort order indexes |
US6148377A (en) * | 1996-11-22 | 2000-11-14 | Mangosoft Corporation | Shared memory computer networks |
US6647393B1 (en) * | 1996-11-22 | 2003-11-11 | Mangosoft Corporation | Dynamic directory service |
US6199074B1 (en) * | 1997-10-09 | 2001-03-06 | International Business Machines Corporation | Database backup system ensuring consistency between primary and mirrored backup database copies despite backup interruption |
DE69816415T2 (de) | 1998-03-02 | 2004-04-15 | Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto | Datensicherungssystem |
US6269381B1 (en) * | 1998-06-30 | 2001-07-31 | Emc Corporation | Method and apparatus for backing up data before updating the data and for restoring from the backups |
US6141773A (en) * | 1998-06-30 | 2000-10-31 | Emc Corporation | Method and apparatus for undoing changes to computer memory |
US6321219B1 (en) * | 1998-08-14 | 2001-11-20 | Microsoft Corporation | Dynamic symbolic links for computer file systems |
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 |
US6385706B1 (en) * | 1998-12-31 | 2002-05-07 | Emx Corporation | Apparatus and methods for copying a logical object to a primary storage device using a map of storage locations |
US6397308B1 (en) * | 1998-12-31 | 2002-05-28 | Emc Corporation | Apparatus and method for differential backup and restoration of data in a computer storage system |
US6487561B1 (en) * | 1998-12-31 | 2002-11-26 | Emc Corporation | Apparatus and methods for copying, backing up, and restoring data using a backup segment size larger than the storage block size |
US6779003B1 (en) | 1999-12-16 | 2004-08-17 | Livevault Corporation | Systems and methods for backing up data files |
US6785667B2 (en) * | 2000-02-14 | 2004-08-31 | Geophoenix, Inc. | Method and apparatus for extracting data objects and locating them in virtual space |
JP3938460B2 (ja) | 2000-05-24 | 2007-06-27 | 株式会社リコー | 情報記録装置と情報記録方法と情報記録処理プログラムを記録した記録媒体と光ディスク記録装置と光ディスク記録方法と情報記録システムと光ディスク記録システム |
US6687849B1 (en) * | 2000-06-30 | 2004-02-03 | Cisco Technology, Inc. | Method and apparatus for implementing fault-tolerant processing without duplicating working process |
US6513135B2 (en) * | 2000-08-02 | 2003-01-28 | Hitachi, Ltd. | Automatic read reassignment method and a magnetic disk drive |
US6625591B1 (en) * | 2000-09-29 | 2003-09-23 | Emc Corporation | Very efficient in-memory representation of large file system directories |
US6804690B1 (en) * | 2000-12-27 | 2004-10-12 | Emc Corporation | Method for physical backup in data logical order |
US6662281B2 (en) | 2001-01-31 | 2003-12-09 | Hewlett-Packard Development Company, L.P. | Redundant backup device |
CN1197013C (zh) * | 2001-02-02 | 2005-04-13 | 英业达股份有限公司 | 利用同步目录容错的方法 |
US7546305B2 (en) * | 2001-04-13 | 2009-06-09 | Oracle International Corporation | File archival |
US6912645B2 (en) * | 2001-07-19 | 2005-06-28 | Lucent Technologies Inc. | Method and apparatus for archival data storage |
US7134041B2 (en) * | 2001-09-20 | 2006-11-07 | Evault, Inc. | Systems and methods for data backup over a network |
EP1300757A1 (en) * | 2001-10-02 | 2003-04-09 | Sun Microsystems, Inc. | Shareable installation hierarchies |
US6839819B2 (en) * | 2001-12-28 | 2005-01-04 | Storage Technology Corporation | Data management appliance |
US20030172094A1 (en) * | 2002-03-06 | 2003-09-11 | International Business Machines Corporation | Automatic file system maintenance |
US7007047B2 (en) * | 2002-03-29 | 2006-02-28 | Panasas, Inc. | Internally consistent file system image in distributed object-based data storage |
EP1674998A3 (en) * | 2002-06-21 | 2013-05-22 | Sharp Kabushiki Kaisha | Information processing apparatus, information equipment, information processing system, automatic backup method, data transmission and reception method, automatic backup program, data transmission and reception program, and record medium having the programs recorded thereon |
US7386529B2 (en) * | 2002-12-19 | 2008-06-10 | Mathon Systems, Inc. | System and method for managing content with event driven actions to facilitate workflow and other features |
US20040199485A1 (en) * | 2003-04-01 | 2004-10-07 | International Business Machines Corporation | Index for directory database |
US7069402B2 (en) * | 2003-06-02 | 2006-06-27 | International Business Machines Corporation | Host-independent incremental backup method, apparatus, and system |
US7328366B2 (en) | 2003-06-06 | 2008-02-05 | Cascade Basic Research Corp. | Method and system for reciprocal data backup |
US7092976B2 (en) * | 2003-06-24 | 2006-08-15 | International Business Machines Corporation | Parallel high speed backup for a storage area network (SAN) file system |
US7234077B2 (en) * | 2003-06-24 | 2007-06-19 | International Business Machines Corporation | Rapid restoration of file system usage in very large file systems |
JP4559046B2 (ja) | 2003-08-04 | 2010-10-06 | 株式会社日立製作所 | 仮想テープライブラリ装置 |
KR100762629B1 (ko) * | 2003-08-26 | 2007-10-01 | 삼성전자주식회사 | 휴대단말기의 백업서비스 처리방법 |
US7085962B1 (en) * | 2003-09-08 | 2006-08-01 | Veritas Operating Corporation | Method and system for completing a backup job that was interrupted during a backup process |
-
2005
- 2005-04-14 US US11/107,995 patent/US7657579B2/en active Active
-
2006
- 2006-04-12 EP EP06824703A patent/EP1869594A4/en not_active Withdrawn
- 2006-04-12 CN CN2006800121175A patent/CN101208665B/zh active Active
- 2006-04-12 WO PCT/US2006/014000 patent/WO2007027208A2/en active Application Filing
- 2006-04-12 CN CN201210403383.8A patent/CN102982067B/zh active Active
- 2006-04-12 JP JP2008506719A patent/JP2008537229A/ja active Pending
-
2009
- 2009-12-08 US US12/653,107 patent/US8260749B2/en active Active
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729671A (zh) * | 2009-12-31 | 2010-06-09 | 宇龙计算机通信科技(深圳)有限公司 | 一种终端、备份文件管理的方法及系统 |
CN102479203A (zh) * | 2010-11-26 | 2012-05-30 | 金蝶软件(中国)有限公司 | 物料清单的展示方法及系统 |
CN102479203B (zh) * | 2010-11-26 | 2014-05-28 | 金蝶软件(中国)有限公司 | 物料清单的展示方法及系统 |
CN103186568A (zh) * | 2011-12-28 | 2013-07-03 | 金蝶软件(中国)有限公司 | 树型结构数据的访问方法及系统 |
CN103186568B (zh) * | 2011-12-28 | 2017-03-22 | 金蝶软件(中国)有限公司 | 树型结构数据的访问方法及系统 |
CN103514064A (zh) * | 2012-06-28 | 2014-01-15 | 国际商业机器公司 | 记录备份信息的方法和装置 |
CN105808633A (zh) * | 2016-01-08 | 2016-07-27 | 平安科技(深圳)有限公司 | 数据归档方法和系统 |
CN105808633B (zh) * | 2016-01-08 | 2019-07-23 | 平安科技(深圳)有限公司 | 数据归档方法和系统 |
CN107798073A (zh) * | 2017-09-29 | 2018-03-13 | 华为技术有限公司 | 处理具有树形结构的数据集合的方法和装置 |
CN107798073B (zh) * | 2017-09-29 | 2020-07-24 | 华为技术有限公司 | 处理具有树形结构的数据集合的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP1869594A2 (en) | 2007-12-26 |
CN102982067B (zh) | 2016-02-24 |
WO2007027208A2 (en) | 2007-03-08 |
US8260749B2 (en) | 2012-09-04 |
WO2007027208A3 (en) | 2007-11-22 |
CN101208665B (zh) | 2012-12-12 |
JP2008537229A (ja) | 2008-09-11 |
CN102982067A (zh) | 2013-03-20 |
US20060235847A1 (en) | 2006-10-19 |
US20100094807A1 (en) | 2010-04-15 |
EP1869594A4 (en) | 2009-10-21 |
US7657579B2 (en) | 2010-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101208665B (zh) | 处理层级式数据的方法和系统 | |
US8161321B2 (en) | Virtual machine-based on-demand parallel disaster recovery system and the method thereof | |
US8924355B1 (en) | Checkpoint restart | |
US10235375B1 (en) | Persistent file system objects for management of databases | |
US9213706B2 (en) | Live restore for a data intelligent storage system | |
US7822726B1 (en) | Encapsulation of storage object extensibility records for backup and restore | |
US9785518B2 (en) | Multi-threaded transaction log for primary and restore/intelligence | |
US7831795B2 (en) | Systems and methods for classifying and transferring information in a storage network | |
US8849764B1 (en) | System and method of data intelligent storage | |
US10628270B1 (en) | Point-in-time database restoration using a reduced dataset | |
US7849361B2 (en) | Methods and apparatus for multiple point in time data access | |
US20160224430A1 (en) | Triggering discovery points based on change | |
US20070185917A1 (en) | Systems and methods for classifying and transferring information in a storage network | |
US20070162513A1 (en) | Methods and apparatus for point in time data access and recovery | |
US8099398B2 (en) | Method for managing a database system | |
US10013424B2 (en) | Efficient building of restore list | |
US8346731B1 (en) | Techniques for global single instance indexing for backup data | |
US20080065637A1 (en) | Locating last processed data | |
US20220335011A1 (en) | System and Method for Eliminating Full Rescan Synchronizations on Service Restarts | |
KR101666440B1 (ko) | 환형큐 기반의 인-메모리 데이터베이스 시스템에서의 데이터 처리방법 | |
JPH1027116A (ja) | 不要ファイル削除装置 |
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 |