CN105659214B - 数据单元集合的检查点设置 - Google Patents

数据单元集合的检查点设置 Download PDF

Info

Publication number
CN105659214B
CN105659214B CN201480057992.XA CN201480057992A CN105659214B CN 105659214 B CN105659214 B CN 105659214B CN 201480057992 A CN201480057992 A CN 201480057992A CN 105659214 B CN105659214 B CN 105659214B
Authority
CN
China
Prior art keywords
data
data cell
cell
computing system
continuous part
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
Application number
CN201480057992.XA
Other languages
English (en)
Other versions
CN105659214A (zh
Inventor
约瑟夫·斯凯芬顿·沃莱三世
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ab Initio Software LLC
Original Assignee
Ab Initio Software LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ab Initio Software LLC filed Critical Ab Initio Software LLC
Publication of CN105659214A publication Critical patent/CN105659214A/zh
Application granted granted Critical
Publication of CN105659214B publication Critical patent/CN105659214B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting 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)
  • Library & Information Science (AREA)
  • Retry When Errors Occur (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种存储器模块(108)存储包括数据单元的工作数据(114)。一种存储系统(116)存储包括多组一个或多个数据单元的恢复数据(120)。在存储器模块和存储系统之间传送数据单元包括:维护工作数据中所包括的数据单元的顺序,该顺序限定第一连续部分和第二连续部分;以及对于多个时间间隔(202A和202B)中的每一个,识别在所述时间间隔期间从工作数据访问的任意数据单元,并且将一组两个或多个数据单元加入到恢复数据,该组两个或多个数据单元包括:来自于第一连续部分并包括任意已访问数据单元的一个或多个数据单元,以及来自于第二连续部分并包括先前已经加入到恢复数据的至少一个数据单元的一个或多个数据单元。

Description

数据单元集合的检查点设置
相关申请的交叉引用
本申请要求享有2013年10月21日提交的美国申请号61/893,439的优先权。
技术领域
本申请涉及对数据单元集合设置检查点。
背景技术
有各种类型的数据处理系统,其响应于故障或其他突发事件恢复或重启的能力是有用的。例如,在实时流处理或复杂事件处理系统中,保存诸如输入数据和/或状态信息的系统信息对于在该输入数据上执行的计算是有用的。设置检查点(Checkpointing)是周期性保存系统信息以便该系统能够从最近保存的一致状态恢复的方式的一个例子。在美国专利号6,584,581中描述了针对在连续的数据流上操作的数据处理系统的检查点设置技术,该专利通过引用合并于此。
发明内容
一方面,通常,一种用于管理存储数据的计算系统包括:存储器模块,被配置为存储包括多个数据单元的工作数据;存储系统,被配置为存储包括多组一个或多个数据单元的恢复数据;以及至少一个处理器,被配置为管理存储器模块和存储系统之间的数据单元的传送。所述管理包括:维护包括在工作数据中的多个数据单元的顺序,该顺序定义了包括多个数据单元中一个或多个数据单元的第一连续部分和包括多个数据单元中一个或多个数据单元的第二连续部分;以及对于多个时间间隔中的每一个,识别在该时间间隔期间从工作数据访问的任意数据单元,并且将一组两个或更多个数据单元加入到恢复数据,该一组两个或多个数据单元包括:来自于第一连续部分并包括任意已访问数据单元的一个或多个数据单元,以及来自于第二连续部分并包括先前已经加入到恢复数据的至少一个数据单元的一个或多个数据单元。
这些方面可包括以下一个或多个特征。
所述管理还包括:对于多个时间间隔中的每一个,从恢复数据删除至少一组一个或多个数据单元,对于该组一个或多个数据单元而言,仍然包括在所述工作数据中的任意数据单元被存储在至少另一组一个或多个数据单元中。
所述管理还包括:对于多个时间间隔中的每一个,识别在该时间间隔期间从工作数据删除的任意数据单元。
第二连续部分不包括任何已删除的数据单元。
所述管理还包括:对于多个时间间隔中的每一个,将识别任何已删除的数据单元的信息加入到恢复数据。
识别在该时间间隔期间从工作数据访问的任意数据单元包括将在该时间间隔期间从工作数据访问的任意数据单元移动到第一连续部分中。
包括在工作数据中的多个数据单元之间的顺序建立在近来数据单元被访问的先后基础之上。
第一连续部分包括:包括在工作数据中的所有多个数据单元中最近被访问的数据单元,以及自从最近被访问之后尚未加入到恢复数据的多个数据单元中的子集的最近最少被访问的数据单元。
第二连续部分不与第一连续部分重叠。
第二连续部分包括自从最近被访问之后已经加入到恢复数据的至少一个数据单元。
来自第二连续部分的一个或多个数据单元限于一定数量的数据单元,该一定数量的数据单元介于来自第一连续部分的一个或多个数据单元中数据单元的大致一半数量和来自第一连续部分的一个或多个数据单元中数据单元的大致两倍数量之间。
第一连续部分包括比第二连续部分中的任何数据单元都更近被访问的数据单元。
指示近来数据单元被访问的先后的时间对应于开始独占访问该数据单元的时间。
指示近来数据单元被访问的先后的时间对应于结束独占访问该数据单元的时间。
所述管理还包括响应于故障而使用恢复数据来恢复工作数据的状态。
包括在工作数据中的多个数据单元的每个都分别与一键值相关联。
包括在工作数据中的至少一个数据单元包括基于与该数据单元相关联的键值而可访问的一个或多个值。
与包括在工作数据中的不同数据单元相关联的不同键值的总数约大于1000。
所述时间间隔彼此互不重叠。
识别在该时间间隔期间从工作数据访问的任意数据单元包括识别以下至少其中之一:在该时间间隔期间加入到工作数据的任意数据单元、在该时间间隔期间从工作数据读取的任意数据单元、或在该时间间隔期间工作数据内更新的任一数据单元。
存储器模块包括易失性存储设备。
存储系统包括非易失性存储设备。
在另一方面,通常,一种用于管理计算系统的存储器模块和该计算系统的存储系统之间的数据单元的传送的方法包括:将包括多个数据单元的工作数据存储在存储器模块中;将包括多组一个或多个数据单元的恢复数据存储在该存储系统中;维护包括在工作数据中的多个数据单元的顺序,该顺序定义了包括多个数据单元中一个或多个数据单元的第一连续部分以及包括多个数据单元中一个或多个数据单元的第二连续部分;并且对于多个时间间隔中的每一个,识别在该时间间隔期间从工作数据访问的任意数据单元,并且将一组两个或更多个数据单元加入到恢复数据,该组两个或更多个数据单元包括:来自于第一连续部分并包括任意已被访问数据单元的一个或多个数据单元,以及来自于第二连续部分并包括先前已经加入到恢复数据的至少一个数据单元的一个或多个数据单元。
在另一方面,通常,软件以非暂时性方式存储在计算机可读介质上用于管理计算系统的存储器模块和该计算系统的存储系统之间的数据单元的传送。该软件包括用于使计算系统执行以下操作的指令:将包括多个数据单元的工作数据存储在存储器模块中;将包括多组一个或多个数据单元的恢复数据存储在该存储系统中;维护包括在工作数据中的多个数据单元的顺序,该顺序定义了包括多个数据单元中一个或多个数据单元的第一连续部分以及包括多个数据单元中一个或多个数据单元的第二连续部分;并且对于多个时间间隔中的每一个,识别在该时间间隔期间从工作数据访问的任意数据单元,并且将一组两个或更多个数据单元加入到恢复数据,该一组两个或更多个数据单元包括:来自于第一连续部分并包括任意已被访问数据单元的一个或多个数据单元,以及来自于第二连续部分并包括先前已经加入到恢复数据的至少一个数据单元的一个或多个数据单元。
这些方案可包括一个或多个以下优点。
在一些数据处理系统中,由系统维护的信息包括工作数据,该工作数据包括随着处理进行而定期更新的数据单元的集合。在复杂事件处理(Complex Event Processing,CEP)系统中,例如,对事件流进行处理和聚合,同时基于结果而采取措施。针对CEP系统的一组工作数据可以包括多个数据单元的状态,多个数据单元代表条目,针对条目正在接收各自不同的数据流,例如与不同股票代码相关联的价格。由特定数据单元代表的状态可以存储为通过唯一键(例如,数值)而访问的状态对象。在股票代码示例中,系统将为每一股票代码维护一个状态对象。每一个状态对象可以具有一个或多个字段,所述字段存储有诸如纯量(例如,与股票相关联的的值)和矢量(例如,历史价格数据)的值。在一些示例中,状态对象的字段可以存储表示应用函数,例如聚合函数(例如,和函数、计数函数、极大值函数和平均函数),的结果的计算值,递增地更新针对对应的股票代码的每一新价格值。可以具有系统内的状态对象的多个集合,每一个集合可以包括具有特定字段集的状态对象。随着加入新的状态对象和删除旧的状态对象,集合的大小可以变化,但是集合中大多数变化数据可以归因于存储在正在更新的一部分状态对象中的实际数据。
在一些实施方式中,针对系统的工作数据存储在大量的相对快速的存储器中,该存储器可以是易失性存储器,例如动态随机存取存储器(DRAM)。为了确保工作数据的持久性,采用检查点方案将每一个状态对象的最新版本定期存储在更加稳定而可靠的存储设备(例如,硬盘驱动器、固态驱动器或其它非易失性存储介质)可以是特别有用的,同时确保对所需资源(例如数据传送时间和数据存储空间)方面的成本进行有效管理。虽然工作数据可以包括大量的数据单元(例如上述的状态对象),但是在检查点操作之间的任一给定的时期(称之为“检查点间隔”),可能有一小部分的数据单元发生变化。该检查点方案应使每一个数据单元的最近状态能够在出现故障的情况下得以恢复,包括最近已经改变了的那些数据单元以及尚未改变的那些数据单元。
在这样的系统中进行有效检查点设置的技术是具有挑战性的,尤其当正在被管理的数据单元的数量特别大时。例如,在一种情形下,工作数据包括每个为数字节的大约十亿个数据单元的集合,并且在每一检查点间隔期间,有大约千分之一的数据单元(1百万个数据单元)发生了变化。当然,在每一检查点间隔期间,已经发生变化的数据单元的集合可以是不同(但可能重叠)的集合。为了恢复,还可以假设只需要任意特定数据单元的最近状态。
第一种方法是,在每一个检查点间隔将数据单元的整个集合分别以检查点文件的形式存储在存储设备中。为了恢复该集合中每一个数据单元的最新状态,系统能够简单读取该检查点文件(多个)。这第一种方法对于具有千兆字节的工作数据和秒级的检查点间隔而言在数据传送成本方面价格高昂,甚至可能没有足够时间将所有的数据单元写入到存储设备。
第二种方法是,在每一个检查点间隔仅将自从最后的检查点间隔以来发生变化的数据单元分别以检查点文件的形式存储在存储设备中。虽然这第二种方法减少了在每一个检查点的传送时间,但是随着时间的推移,恢复变得代价更大。这是由于要恢复每一个数据单元的最新状态,系统需要从检查点进程的起点开始读取每一个检查点文件,以确保恢复自写入第一个检查点文件以来尚未发生变化的一些数据单元的最新状态。
对该第二种方法可能的改进是,由系统执行脱机处理,在该脱机处理中,扫描存储设备中的检查点文件并删除完全由具有以最近存储的检查点文件表示的更新状态的数据单元的旧拷贝组成的检查点文件。对该第二种方法的另一种改进是,扫描检查点文件并重写检查点文件以删除数据单元的旧拷贝,将每一个已删除数据单元的至少一个较近的拷贝保留在至少一个较新的检查点文件中。当检查点文件中的数据单元降到零时,该检查点文件就会从存储设备中删除,以释放存储空间。这种改进的一些潜在的挑战是:(a)整合进程引入另一要管理的进程,这通常会使系统不太可靠;以及(b)该整合进程有计算时间方面的成本,包括至少一次读取由检查点文件表示的检查点数据,但是也可能包括若干次读写该检查点数据。
第三种方法是由系统为每一个数据单元存储单独的检查点文件。在每一个检查点间隔中,针对特定的更新后的数据单元而写入的新检查点文件可以替换针对该数据单元的前一个检查点文件。这将避免高昂的数据传送成本(由于只需存储发生变化的条目),并将避免高昂的数据存储成本(由于过时数据的检查点文件将不会无限制地累积),且会降低复杂性(由于其不需要清除进程)。然而,这第三种方法价格高昂的潜在原因是相对于存储空间,文件相对昂贵。如果工作数据由数十亿个数据单元构成,而每一个数据单元仅有几个字节,那么文件系统可能无法承受文件创建和管理操作,并且针对文件系统元数据的存储空间开销会以消耗比数据单元的实际内容更多的存储空间而告终。
针对以下描述的检查点的一些技术至少有一些上述方法及其改进的优点。例如,基于识别恢复数据可在同一检查点文件中包括可能发生变化的数据单元的新拷贝和先前加入到(不同)检查点文件中的数据单元的旧拷贝,从而能够限制数据存储成本(包括文件系统开销)和数据传送时间。将旧拷贝递增地迁移到较新检查点文件的进程能够以这样的方式来完成:限制在检查点间隔中正在进行的额外工作的数量,并逐步整合最近最少访问的数据单元的旧拷贝,直至可以丢弃旧的检查点文件,这是由于其存储的仅是数据单元的冗余备份副本。该整合进程可以由存储检查点文件的同一检查点进程来执行,因此可能要比离线整合进程更简单也更可靠。即使不删除旧的检查点文件,由于文件系统开销,将多个数据单元(即,具有不同键的数据单元)的最新状态存储在同一检查点文件中降低了潜在的数据存储成本,尤其是当分配给数据单元的不同键的数量很大时(例如,约大于1000,或约大于1000000,或约大于1000000000)。
通过以下说明书和权利要求书,本发明的其它特征和优点将变得显而易见。
附图说明
图1是数据处理系统的框图。
图2A和图2B是检查点设置和数据处理操作的时间线。
图3A和图3B是检查点设置和恢复算法各自的流程图。
图4A、图4E和图4F是工作数据状态的示意图。
图4B、图4C和图4D是检查点文件的示意图。
图5是指针随时间移动的示意图。
具体实施方式
图1所示的是数据处理系统100的一个示例,检查点技术可应用于该数据处理系统。系统100包括数据源102,该数据源102可以包括一个或多个数据源,例如,存储设备或在线数据源,每一个数据源可以以多种格式(例如,数据库表、电子表格文件、纯文本文件或主机所用的本机格式)中的任一种格式来存储或提供数据。执行环境104包括处理模块106(例如,具有一个或多个处理核的至少一个中央处理器)和存储器模块108(例如,一个或多个存储设备,例如DRAM或其它形式的相对快速的存储介质)。执行环境104可以被托管在受适当操作系统(比如UNIX操作系统的一个版本)控制的一个或多个通用计算机。例如,执行环境104可以包括多节点并行计算环境,该多节点并行计算环境包括使用多个中央处理器(CPU)或处理器内核的计算机系统的配置,所述计算机系统可以是本地(例如多处理器系统,如对称多处理(SMP)计算机)、或本地分布式(例如多个处理器耦合为群集或大规模并行处理(MPP)系统)或者远程或远程分布式(例如通过局域网(LAN)和/或广域网(WAN)来耦合的多个处理器)或者上述的组合。
提供数据源102的存储设备可以是该执行环境104本地的存储设备,例如,存储在连接至托管该执行环境104的计算机的存储介质110,或者是对于该执行环境104而言远程的存储设备,例如,托管在通过远程连接(例如,流处理数据馈送的服务器连接)与托管该执行环境104的计算机进行通讯的远程系统(例如,主机112)。由执行环境104内数据处理生成的输出数据可以被存储回数据源102或其它存储介质中,或以其他方式使用。
处理模块106针对任意各种应用(例如,复杂事件处理)而处理来自于数据源102的数据,并且在所述处理期间访问存储在存储器模块108的工作数据114。处理模块106还周期性地执行检查点进程,该检查点进程将部分工作数据114存储在可在执行环境104内访问的数据存储系统116(例如,托管执行环境104的计算机的硬盘驱动器)。检查点进程可以整体存储工作数据114的某些部分,而仅仅选择性地存储其它部分,以避免多余地备份自最后一次检查点间隔以来尚未发生变化的某些数据。例如,工作数据114可以包括一组数据单元,检查点进程根据数据单元的维护顺序而将这一组数据单元选择性地存储在一组检查点文件120中。工作数据114的其他部分,例如与数据处理相关联的其它内存中状态,可以被存储在单独的检查点文件中。
数据单元的顺序由管理程序来维护,该管理程序可以是更大的数据处理程序的一部分,或者也可以是管理工作数据114的单独进程。在一些实施方式中,数据单元存储在以最近最少访问(least-recently-accessed,LRA)到最近访问(most-recently-accessed,MRA)的顺序组织的键值对条目的关联阵列中的存储器模块108中。例如,关联阵列可以实现为哈希表,根据维护顺序采用双重链接表指针布置能够将哈希表中的条目串在一起。哈希表中的每一个条目基于唯一键来访问,并且能够在封闭的数据对象,例如上述键控状态对象,中存储对应于该键(表示变量或其他状态信息的任意数量的独立值)的数据。该管理程序维护指向哈希表中MRA条目的MRA指针以及指向哈希表中LRA条目的LRA指针。该管理程序还维护最近最少设置检查点(LRC)的指针以及最近设置检查点(MRC)的指针。哈希表中的每一个条目还具有相关联的属性,该相关联的属性存储有对应于检查点文件的检查点号(CPN),该CPN是在上次保存到该检查点文件中的(如果有的话)。这些指针和字段用于选择性地确定在任一给定检查点间隔中哪些条目将被复制到新检查点文件,下面更详细地进行说明。
每次访问条目时,该条目就成为最近访问的条目,即,将MRA指针分配给该条目的内存地址,并适当调整链表内的其它指针(例如,针对表中旧位置处的相邻条目)。在一些实施方式中,在条目的键被用于检索存储在该条目中数据的任何情况下,或者当已经将该条目加入到该表中,则认为已经访问了该条目。在这样的实施方式中,当程序检索条目的数据以便读取而不改变该条目时,仍然认为已经访问了该条目。在一些实施方式中,管理程序基于条目实际上已经发生变化的时间(例如,最近发生变化或者最近最少发生变化)来维护顺序,并且不认为读取条目的数据而不改变该条目能影响该顺序。这样的实施方式例如可针对由于访问而发生变化的每一条目采用“脏位(dirty bit)”。在以下示例中,采用的是更简单的方案,即假设任何访问可能已经改变了存储在条目中的数据。管理程序还确定何时不再需要条目并应从表中删除该条目。例如,在一些实施方式中,当存储器或时间约束支配时,从最近最少访问的条目开始从表中删除条目。
数据处理系统100通过以检查点间隔执行检查点进程来提供增量式的检查点方案。例如,可以在预定时间后或在系统接收预定数量的输入记录后触发检查点进程。触发检查点进程时,以在最近检查点间隔期间已经被访问的数据单元的“新”拷贝和类似数量的在最近检查点间隔期间尚未被访问且已经存储在检查点文件中的数据单元的“旧”拷贝来存储检查点文件,调整MRC指针在下面进行更详细地描述。由检查点进程执行的这些检查点操作可以在管理程序继续管理针对数据处理操作的工作数据114的访问时发生,或者在检查点进程执行时可以暂时阻止对工作数据114的访问。图2A和图2B示出了针对最近检查点间隔的检查点处理操作的计时的示例的时间线(往右边表示时间增加)。在图2A的示例中,检查点进程执行检查点操作200,以保存活动的工作数据状态,该活动在前一个检查点间隔202A期间发生,同时执行检查点间隔202B期间继续的数据处理操作204。可替代地,在图2B的示例中,在数据处理操作204’在检查点间隔202B期间重新开始之前,检查点进程完成针对在前一个检查点间隔202A期间发生的活动的检查点操作200’。为了在恢复期间能够对工作数据114进行适当的重建,检查点进程以这样的方式存储数据单元:使新拷贝能够与旧拷贝相区分(例如,针对每一个数据单元采用标记,或者将数据单元写入独立部分中的检查点文件)。由于检查点进程将旧数据写入较新的检查点文件,在满足一定的条件下可以删除先前存储有那些数据单元(现在存储在较新的检查点文件中)的检查点文件。
由于管理程序在正常数据处理期间管理着工作数据114的访问,其适当地更新MRA指针和MRC指针,以便为将在下一个检查点间隔出现的检查点进程做准备。例如,对于如上描述的组织为链表的条目表,如果访问的是MRC条目,则MRC条目在表的一端成为MRA条目,并且调整MRC指针以引用朝向表的LRA端一步的条目。当下一个检查点进程出现时,只需要存储MRA(含)指针和MRC(不含)指针之间的条目。当MRC指针和MRA指针之间的条目存储至检查点文件后,检查点进程将MRC指针设置到由MRA指针识别的条目,以便为下一个检查点间隔做准备。
管理工作数据114以及与表在恢复期间的适当重建有关的检查点文件120的另一方面是追踪已经从工作数据114删除(或指示为不再使用)的数据单元(例如表条目)。为了明确地识别自从数据处理开始就已经存在的每一个数据单元,包括那些已经删除的数据单元,为每一个数据单元分配唯一标识符(ID)。由于表中条目的键是唯一的,所以,只要不再重复使用已经删除的条目的键,这些键就可以用作唯一ID。否则,如要重复使用这些键,可以将另外的唯一ID分配给每一条目。在以下示例中,每当有新条目加入到表中都要递增的8字节整数将既充当这样的唯一ID又充当条目的键。当在检查点间隔期间从表中删除条目时,管理程序将其ID加入到针对该检查点间隔的已删除条目列表,存储其作为检查点文件的一部分。
因此,特定检查点间隔的检查点文件可以包括存储有以下两种类型项目的数据结构(例如,表):
(1)存储有自从最后一个检查点间隔就被删除了的条目的键的项目,以及
(2)存储有自从最后一个检查点间隔就被访问的条目(键和对应的数据)的拷贝的项目。
一种可能的恢复进程包括按其创建顺序来读取每一个检查点文件。对于每一个检查点文件,由处理模块106执行的恢复进程将执行以下步骤:
(1)删除键被存储在检查点文件的第(1)类型项目中的任何条目,然后
(2)加入或更新存储在检查点文件的第(2)类型项目中的条目。
虽然从存储的第一检查点文件读取每一个检查点文件将导致正确的行为,能够进行改善从而使得恢复进程在恢复时无需从检查点开头起读取每一个检查点文件并将每一个改变重现到表中。通过将先前已被拷贝到旧检查点文件中的条目增量地拷贝到新检查点文件中,检查点进程最终能够删除不再需要的较旧的检查点文件。这能够加快恢复进程并降低数据存储成本。
为了确保能够安全删除旧检查点文件而不会丢失对于恢复表中(自最近完成的检查点间隔起)每一个条目的最近状态而言必要的任何已保存状态,管理程序和检查点进程一起使LRC指针从LRA端朝向MRA端增量式地扫描条目,以便记录已经拷贝到较新检查点文件中的旧条目。对于每一个检查点间隔,检查点进程从LRA端保存了和其从MRA端保存的新条目一样多的旧条目。这样,检查点进程将数据传送成本限制为与自从最后一个检查点间隔访问的条目的数目成比例。由于检查点进程将来自LRA端的旧条目写入较新的检查点文件中,所以能够删除先前是一部分的检查点文件,只要这些检查点文件没有存储尚未拷贝到较新的检查点文件中的旧条目。所述恢复然后能够通过按照从最旧到最新的顺序读取剩余的检查点文件而恢复最新的表。
当数据处理系统100开始处理数据并管理存储在存储器模块108中的工作数据114时,可以有初始数量的检查点间隔,其中,初始的检查点进程仅以新的数据单元建立一组初始的一个或多个检查点文件120。例如,该初始的检查点进程在MRC指针(不含)和MRA指针(含)之间的表的MRA端处存储有新条目。LRC指针不用于该初始的检查点进程。在已经存储一定数量的初始检查点文件120后,正常的(稳态)检查点进程也开始存储旧数据单元(即,条目表)和新数据单元。当正常的检查点进程开始时,LRC指针最初被设置为LRA指针。检查点进程然后将在LRC指针(含)和MRC指针(不含)之间的表的LRA端处存储有限数量的旧条目,或者从LRC指针(含)到设置检查点的新条目的数量,二者中取数量较少者。
检查点进程所采用的算法的以下示例是以伪代码写成的。该伪代码包括描述该伪代码陈述和功能的功能性注释。该伪代码针对条件语句(例如‘if’语句)和循环(例如,‘while’循环和‘for’循环)以及针对注释(加前缀‘//’)采用标准C编程语言语法。在该伪代码列表中,MRA指针在变量‘mra’中,LRA指针在变量‘lra’中,MRC指针在变量‘mrc’中,以及LRC指针在变量‘lrc’中。点表示法随这些变量一起使用,以表示由这些指针识别的部分条目。特别地,点表示法‘pointer.prev’和‘pointer.next’分别用于表示表中从由‘pointer(指针)’指向的条目到MRA端和LRA端更近一步的位置,点表示法‘pointer.checkpoint_number’、‘pointer.key’和‘pointer.data’分别用于表示由‘指针’指向的条目的CPN、键和数据。点表示法还用于表示与变量相关联的调用某些函数,例如‘item.is_<property>()’以测试由变量‘item’表示的条目是否具有属性‘<property>’。可以针对每一个检查点间隔由检查点进程来执行以下算法。
//以检查点文件的空列表开始予以删除
files_to_remove=empty_list();
//打开新(空)检查点文件
//(以当前的检查点号命名)
checkpoint_file=open_checkpoint_file(checkpoint_number);
//推进MRC指针(找出第一个新条目)
mrc=mrc.prev;
//while循环来拷贝所有被访问的条目
//在最近的检查点间隔期间
//以及旧条目的相等数量:
while(mrc!=mra){
//将当前新条目写入当前检查点文件
//设置‘新(New)?’为真
write(checkpoint_file,checkpointed_entry(mrc,true));
//将检查点号记录到当前新条目
mrc.checkpoint_number=checkpoint_number;
//推进MRC指针
mrc=mrc.prev;
//如果LRC尚未赶上MRC...
if(lrc!=mrc){
//...将LRC条目写入当前检查点文件
//设置‘新(New)?’为假
write(checkpoint_file,checkpointed_entry(lrc,false));
//如果LRC条目是在其旧检查点文件中的最新条目
//那么删除该文件
if(lrc.checkpoint_number!=lrc.prev.checkpoint_number)
files_to_remove.add(lrc.checkpoint_number);
//记录新检查点号
lrc.checkpoint_number=checkpoint_number;
//推进LRC指针
lrc=lrc.prev;
}
}
//MRC现在是MRA(自while循环退出)
//如果LRC赶上MRC,那么将其设置回LRA
if(lrc==mrc)
lrc=lra;
//记录删除型条目,这些条目带有此间隔所删除全部条目的键:
for(key in removed_keys)
write(checkpoint_file,checkpointed_removal(key));
//记录带有LCR键的LRC型条目:
write(checkpoint_file,checkpointed_lrc(lrc.key));
//推进检查点号
checkpoint_number++;
//删除列出为删除的文件
for(file in files_to_remove)
remove_checkpoint_file(file);
上述算法也表示在图3A的流程图中。检查点进程初始化300检查点文件,删除检查点文件的空列表,加入新的空检查点文件,并将MRC指针推进至第一新条目。该进程以循环条件来执行while循环302,该循环条件维持循环直至MRC指针等于MRA指针。在while循环302中,进程将当前新条目写入304当前检查点文件,将当前CPN记录306进当前MRC条目,并推进308MRC指针。进程检查310以确定LRC是否已经达到MRC,如果达到则返回进行下一个while循环迭代,如果尚未达到则继续进行。如果继续进行while循环302,进程将LRC条目写入312当前检查点文件。然后进程检查314以确定LRC条目是否为其旧检查点文件中的最新条目,如果是,则通过将其加入到待删除的检查点文件列表来标记316该检查点文件为待删除。然后进程将当前CPN记录318到当前LRC条目,并在返回到下一个while循环迭代之前推进320LRC指针。当退出while循环302之后,进程检查322以确定LRC是否已经达到MRC,如果达到则将LRC设置回LRA。然后进程以在该检查点间隔删除的所有条目的键记录326删除型项目,记录328LRC型项目,推进330 CPN,并删除332标记为待删除的检查点文件。
以下是恢复进程所用的以伪代码写成的算法的一个示例。可以实施以下算法以在发生故障后恢复条目表的最新的一致状态(即,最近设置检查点的状态)。
上述算法也表示在图3B的流程中。恢复进程将MRA指针和LRA指针初始化340为空值。然后恢复进程执行嵌套For循环,外For循环344在检查点文件上(最旧到最新)进行迭代,内For循环346在每一个检查点文件中的项目上进行迭代。在内For循环346之中,如果项目是删除型项目,则该进程就会删除该项目。然后该进程检查350该项目是否是条目型项目,如果是,则查找352到具有指定键的条目并更新具有指定数据的条目,或者如果未查找到,则创建具有指定键和数据的条目。通过设置指针而将更新的或创建的条目插入354到表的适当位置。插入之后,或者如果该项目不是条目型项目,如果是LRC型项目则该进程将LRC设置356为具有指定键的条目。然后两种For循环返回以便进行下一次迭代。两种For循环退出后,该进程将MRC设置为MRA。
可以被检查点进程所用的算法的其它示例可以包括其他步骤。例如,可以压缩检查点文件。检查点文件可以合并为少于每个检查点间隔一个的物理文件。例如,可以有周期性转换,其允许检查点进程以常量时间的操作来删除已经存储有更新拷贝的表条目的较旧拷贝。可以在条目修改而非简单访问的基础上来维护较旧的条目列表。进程能够简单地删除与小于针对最后一个LRC条目的检查点号的检查点号相关联的所有检查点文件,而不记录当推进LRC指针时待删除的检查点文件中每一个的检查点号。当写入新条目时,进程能够计数这些新条目,并在已经将这些新条目写入检查点文件的独立部分(例如,针对新条目的部分、针对旧条目的部分、针对具有删除的键的条目的部分以及针对具有LRC条目的键的项目的部分)之后写入相同(或相似)数量的旧条目,而不交叉存取检查点文件中的新、旧条目以及利用标记区分新、旧条目。
图4A到图4F示出了条目的表的不同状态和工作数据114内其它内存中状态的示例、以及检查点文件120的不同状态的示例的图示。图4A示出了存储有键/数据对的条目和识别最新的检查点文件的CPN(上述键/数据对存储在该最新的检查点文件中)的表400的部分以及MRA指针、LRA指针、MRC指针和LRC指针的位置。图4A还示出了删除了的键的列表402。在检查点进程生成具有CPN201的检查点文件之前,表400和列表402针对一种状态而示出。为简单起见,针对给定键的数据的内容在示例中用单个字母表示。
图4B和图4C显示的是在生成具有CPN201的检查点文件之前的现有检查点文件(CPN193-CPN200)的一些集合。图4B示出了较早的检查点文件193-194,并且图4C示出了最新的检查点文件198-200。在该示例中,检查点文件显示为表,以项目作为表中的行。每一个项目具有针对‘类型’字段的三个可能值中的一个:E(条目型)、R(删除型)或L(LRC型)。条目型项目具有针对‘键’字段的键值、针对‘数据’字段的数据值以及针对‘真(New)?’字段的T(真)或F(假),分别指示条目是“新”条目还是“旧”条目。如上所述,“旧”条目是已经存储在先前检查点文件中并且现在正在再次存储在较新检查点文件中的条目。删除型项目或LRC型项目具有针对‘键’字段的键值,但不具有针对‘数据’或‘真(New)?’字段的值。
针对以如图4A所示的表400和列表402和如图4B-4C所示的检查点文件结束的检查点间隔而执行上述伪代码中所描述的示意性算法,检查点进程将存储如图4D所示的具有CPN201的新检查点文件。检查点进程还将删除具有CPN193的检查点文件,这是由于LRC指针从该检查点文件中最后一个设置检查点的条目过渡到在具有CPN194的检查点文件中最后一个设置检查点的条目表示不再需要具有CPN193的检查点文件中条目的任何拷贝。在检查点进程已经存储了具有CPN201的检查点文件之后,并且在自从图4A的状态之后任何条目有机会被访问之前,表400和列表402具有如图4E所示的状态。
如果在存储具有CPN201的检查点文件之后有系统故障的话,系统能够通过按照其CPN的顺序来仅仅对剩余的检查点文件(具有CPN194-CPN201)进行处理从而执行恢复进程以恢复表400和列表402(如图4E所示)的状态。图4F示出了当重建表400时表400的状态的一系列快照(snapshot)。表400的状态的部分在处理完第一个检查点文件194并在处理完每一个检查点文件198-200之后显示。然后,在处理完检查点文件201之后,恢复至表400的完全恢复后的状态,包括表400(如图4E所示)中的指针。MRA指针和MRC指针被设置为表400中的第一条目,并且LRA指针被设置为表400中的最后一个条目。利用最后一个检查点文件的LRC型项目来恢复LRC指针值,上述检查点文件在该示例中是检查点文件201。
图5示出了关于不同指针对于一系列九个不同检查点间隔是如何随时间移动的描述,针对每一个检查点间隔的带纹理条柱表示表的不同部分。不同部分的大小随时间而变化说明LRC指针赶上MRC指针并循环回LRA指针。在该示例中,有稳定数量的数据单元在该系列检查点间隔期间被访问,并且表的大小稳定。在每一条下面是针对该检查点间隔正在写入的检查点文件的当前CPN,在该当前CPN下面是存储有表的状态(已经删除任何旧检查点文件之后)的剩余有效检查点文件的CPN列表。在多数使用情况下,包括在该示例中,剩余检查点文件集相当稳定,平均每一个检查点间隔删除一个检查点文件。
例如可以通过使用执行适当软件指令的可编程计算系统来实施上述检查点设置方法,或者可以在诸如现场可编程门阵列(FPGA)的适当的硬件中或以一些混合形式来实施。例如,在程序化方法中,软件可以包括在一个或多个已编程或可编程计算系统(可以具有各种架构,诸如分布式、客户端/服务器、或网格式)上执行的一个或多个计算机程序中的进程,每个计算系统包括至少一个处理器、至少一个数据存储系统(包括易失性和/或非易失性存储器和/或存储元素)以及至少一个用户接口(用于使用至少一个输入设备或端口来接收输入,以及用于使用至少一个输出设备或端口来提供输出)。该软件可包括更大型程序的一个或多个模块,例如,该大型程序提供与数据流图的设计、配置和执行相关的其它服务。该程序的模块(例如,数据流图的元素)可以被实施为数据结构或者符合在数据库中存储的数据模型的其它组织的数据。
该软件可以被提供在诸如CD-ROM或其他计算机可读介质之类的有形永久存储介质(其可以被通用或专用计算系统或装置读取)上或者通过网络的通信介质递送(编码成传播信号)到执行该软件的计算系统的有形永久介质。一些或全部处理可以在专用计算机上执行,或者使用诸如协处理器或现场可编程门阵列(FPGA)或专用集成电路(ASIC)之类的专用硬件来执行。该处理可以以分布方式实施,在该分布方式中,由该软件指定的不同的计算部分由不同的计算元件执行。每个这样的计算机程序优选地被存储在或下载到可由通用或专用可编程计算机读取的存储设备的计算机可读存储介质(例如,固态存储器或介质、或者磁或光介质),用于在计算机读取该存储设备介质时配置和操作该计算机,以执行此处所描述的处理。也可以考虑将本发明的系统实施为有形永久存储介质,其配置有计算机程序,其中,如此配置的存储介质使得计算机以特定和预定义的方式操作以执行此处所描述的一个或多个处理步骤。
已经对本发明的多个实施例进行了描述。然而,应当理解,前面的描述旨在说明而非限制本发明的范围,本发明的范围由以下权利要求书的范围来限定。因此,其它实施例也落在以下权利要求书的范围内。例如,在不脱离本发明的范围的情况下可进行各种修改。此外,上述的一些步骤可以是顺序独立的,因此可以以不同于所述的顺序来执行。

Claims (25)

1.一种用于管理存储数据的计算系统,所述计算系统包括:
存储器模块,被配置为存储包括多个数据单元的工作数据;
存储系统,被配置为存储包括多组一个或多个数据单元的恢复数据;以及
至少一个处理器,被配置为管理所述存储器模块和所述存储系统之间的数据单元的传送,所述管理包括:
维护所述工作数据中所包括的所述多个数据单元的顺序,所述顺序限定包括所述多个数据单元中一个或多个数据单元的第一连续部分以及包括所述多个数据单元中一个或多个数据单元的第二连续部分;以及
对于多个时间间隔中的每一个,识别在该时间间隔期间从所述工作数据访问的任意数据单元,并且将一组两个或更多个数据单元加入到所述恢复数据,该组两个或更多个数据单元包括:来自于所述第一连续部分的一个或多个数据单元,该一个或多个数据单元包括任意已经访问的数据单元,以及来自于所述第二连续部分的一个或多个数据单元,该一个或多个数据单元包括先前已经加入到所述恢复数据的至少一个数据单元。
2.根据权利要求1所述的计算系统,其中所述管理还包括:对于多个时间间隔中的每一个,从所述恢复数据删除至少一组一个或多个数据单元,对于该组一个或多个数据单元,仍然包括在所述工作数据中的任意数据单元存储在至少另一组一个或多个数据单元中。
3.根据权利要求1所述的计算系统,其中所述管理还包括:对于多个时间间隔中的每一个,识别在该时间间隔期间从所述工作数据删除的任意数据单元。
4.根据权利要求3所述的计算系统,其中所述第二连续部分不包括任何已删除的数据单元。
5.根据权利要求3所述的计算系统,其中所述管理还包括:对于多个时间间隔中的每一个,将识别任何已删除的数据单元的信息加入到所述恢复数据。
6.根据权利要求1所述的计算系统,其中识别在该时间间隔期间从所述工作数据访问的任意数据单元包括将在该时间间隔期间从所述工作数据访问的任意数据单元移动到所述第一连续部分中。
7.根据权利要求1所述的计算系统,其中所述工作数据中所包括的所述多个数据单元之间的顺序是基于近来所述数据单元被访问的先后。
8.根据权利要求7所述的计算系统,其中所述第一连续部分包括:所述工作数据中所包括的所有所述多个数据单元中的最近访问数据单元,以及自从最近访问之后尚未加入到所述恢复数据的所述多个数据单元中的子集中的最近最少访问数据单元。
9.根据权利要求8所述的计算系统,其中所述第二连续部分与所述第一连续部分不重叠。
10.根据权利要求9所述的计算系统,其中所述第二连续部分包括自从最近访问之后已经加入到所述恢复数据的至少一个数据单元。
11.根据权利要求10所述的计算系统,其中来自所述第二连续部分的所述一个或多个数据单元限于一定数量的数据单元,所述一定数量的数据单元介于来自所述第一连续部分的一个或多个数据单元中数据单元的大致一半数量和来自所述第一连续部分的一个或多个数据单元中数据单元的大致两倍数量之间。
12.根据权利要求11所述的计算系统,其中所述第一连续部分包括比所述第二连续部分中的任意数据单元都更近被访问的数据单元。
13.根据权利要求1所述的计算系统,其中指示数据单元近来被访问的先后的时间对应于开始独占访问该数据单元的时间。
14.根据权利要求1所述的计算系统,其中指示数据单元近来被访问的先后的时间对应于结束独占访问该数据单元的时间。
15.根据权利要求1所述的计算系统,其中所述管理还包括响应于故障而使用所述恢复数据来恢复所述工作数据的状态。
16.根据权利要求1所述的计算系统,其中所述工作数据中所包括的所述多个数据单元的每个分别与一键值相关联。
17.根据权利要求16所述的计算系统,其中所述工作数据中所包括的至少一个所述数据单元包括基于与该数据单元相关联的键值而可访问的一个或多个值。
18.根据权利要求16所述的计算系统,其中与所述工作数据中所包括的不同数据单元相关联的不同键值的总数约大于1000。
19.根据权利要求1所述的计算系统,其中所述时间间隔彼此互不重叠。
20.根据权利要求1所述的计算系统,其中识别在该时间间隔期间从所述工作数据访问的任意数据单元包括识别以下中至少一个:在该时间间隔期间加入到所述工作数据的任意数据单元、在该时间间隔期间从所述工作数据读取的任一数据单元、或在该时间间隔期间所述工作数据内更新的任意数据单元。
21.根据权利要求1所述的计算系统,其中所述存储器模块包括易失性存储设备。
22.根据权利要求1所述的计算系统,其中所述存储系统包括非易失性存储设备。
23.一种用于管理存储数据的计算系统,所述计算系统包括:
存储器模块,被配置为存储包括多个数据单元的工作数据;
存储系统,被配置为存储包括多组一个或多个数据单元的恢复数据;以及
用于管理所述存储器模块和所述存储系统之间的数据单元的传送的装置,所述管理包括:
维护所述工作数据中所包括的所述多个数据单元的顺序,所述顺序限定包括所述多个数据单元中一个或多个数据单元的第一连续部分以及包括所述多个数据单元中一个或多个数据单元的第二连续部分;以及
对于多个时间间隔中的每一个,识别在该时间间隔期间从所述工作数据访问的任意数据单元,并且将一组两个或多个数据单元加入到所述恢复数据,该组两个或多个数据单元包括:来自于所述第一连续部分的一个或
多个数据单元,该一个或多个数据单元包括任意已经访问的数据单元,以及来自于所述第二连续部分的一个或多个数据单元,该一个或多个数据单元包括先前已经加入到所述恢复数据的至少一个数据单元。
24.一种用于管理计算系统的存储器模块和所述计算系统的存储系统之间的数据单元的传送的方法,所述方法包括:
将包括多个数据单元的工作数据存储在所述存储器模块中;
将包括多组一个或多个数据单元的恢复数据存储在所述存储系统中;
维护所述工作数据中所包括的所述多个数据单元的顺序,所述顺序限定包括所述多个数据单元中一个或多个数据单元的第一连续部分以及包括所述多个数据单元中一个或多个数据单元的第二连续部分;以及
对于多个时间间隔中的每一个,识别在该时间间隔期间从所述工作数据访问的任意数据单元,并且将一组两个或更多个数据单元加入到所述恢复数据,该组两个或更多个数据单元包括:来自于所述第一连续部分的一个或多个数据单元,该一个或多个数据单元包括任意已经访问的数据单元,以及来自于所述第二连续部分的一个或多个数据单元,该一个或多个数据单元包括先前已经加入到所述恢复数据的至少一个数据单元。
25.一种计算机可读介质,其上存储有计算机程序,所述计算机程序用于管理计算系统的存储器模块和所述计算系统的存储系统之间的数据单元的传送,所述计算机程序包括用于使所述计算系统执行以下操作的指令:
将包括多个数据单元的工作数据存储在所述存储器模块中;
将包括多组一个或多个数据单元的恢复数据存储在所述存储系统中;
维护所述工作数据中所包括的所述多个数据单元的顺序,所述顺序限定包括所述多个数据单元中一个或多个数据单元的第一连续部分以及包括所述多个数据单元中一个或多个数据单元的第二连续部分;以及
对于多个时间间隔中的每一个,识别在该时间间隔期间从所述工作数据访问的任意数据单元,并且将一组两个或更多个数据单元加入到所述恢复数据,该组两个或更多个数据单元包括:来自于所述第一连续部分的一个或多个数据单元,该一个或多个数据单元包括任意已经访问的数据单元,以及来自于所述第二连续部分的一个或多个数据单元,该一个或多个数据单元包括先前已经加入到所述恢复数据的至少一个数据单元。
CN201480057992.XA 2013-10-21 2014-09-26 数据单元集合的检查点设置 Active CN105659214B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361893439P 2013-10-21 2013-10-21
US61/893,439 2013-10-21
PCT/US2014/057624 WO2015060991A1 (en) 2013-10-21 2014-09-26 Checkpointing a collection of data units

Publications (2)

Publication Number Publication Date
CN105659214A CN105659214A (zh) 2016-06-08
CN105659214B true CN105659214B (zh) 2019-01-15

Family

ID=51752165

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480057992.XA Active CN105659214B (zh) 2013-10-21 2014-09-26 数据单元集合的检查点设置

Country Status (9)

Country Link
US (1) US9354981B2 (zh)
EP (1) EP3060991B1 (zh)
JP (1) JP6400695B2 (zh)
KR (1) KR102179669B1 (zh)
CN (1) CN105659214B (zh)
AU (1) AU2014340626B2 (zh)
CA (1) CA2926935C (zh)
SG (1) SG11201603105VA (zh)
WO (1) WO2015060991A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017123849A1 (en) 2016-01-14 2017-07-20 Ab Initio Technology Llc Recoverable stream processing
US10146642B1 (en) * 2016-03-24 2018-12-04 EMC IP Holding Company LLC Fault resilient distributed computing using virtual machine continuous data protection
US10073746B2 (en) * 2016-07-12 2018-09-11 Advanced Micro Devices, Inc. Method and apparatus for providing distributed checkpointing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1298536A1 (en) * 2001-10-01 2003-04-02 Partec AG Distributed file system and method of operating a distributed file system
CN101080710A (zh) * 2004-08-24 2007-11-28 塞门铁克操作公司 映象数据存储装置写时间映射
CN102682069A (zh) * 2011-03-04 2012-09-19 微软公司 管理数据库恢复时间

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03171242A (ja) * 1989-11-30 1991-07-24 Oki Electric Ind Co Ltd ファイルバックアップ方法
JP3148099B2 (ja) * 1995-05-31 2001-03-19 株式会社東芝 入出力制御方式及び入出力制御方法
US5819021A (en) 1995-12-11 1998-10-06 Ab Initio Software Corporation Overpartitioning system and method for increasing checkpoints in component-based parallel applications
US5712971A (en) 1995-12-11 1998-01-27 Ab Initio Software Corporation Methods and systems for reconstructing the state of a computation
JPH10240630A (ja) * 1997-02-28 1998-09-11 Toshiba Corp コンピュータシステム及び同システムに適用するメモリ制御方法
JP2000163294A (ja) * 1998-11-30 2000-06-16 Nec Corp データベース管理方法及びその装置並びにプログラムを記録した機械読み取り可能な記録媒体
US6584581B1 (en) 1999-12-06 2003-06-24 Ab Initio Software Corporation Continuous flow checkpointing data processing
JP2002132561A (ja) * 2000-10-20 2002-05-10 Fuji Xerox Co Ltd 差分バックアップ方法および装置
US7111136B2 (en) * 2003-06-26 2006-09-19 Hitachi, Ltd. Method and apparatus for backup and recovery system using storage based journaling
US7577807B2 (en) * 2003-09-23 2009-08-18 Symantec Operating Corporation Methods and devices for restoring a portion of a data store
US7406489B2 (en) * 2005-01-28 2008-07-29 Solid Information Technology Oy Apparatus, system and method for persistently storing data in a data synchronization process
US7865684B2 (en) 2005-06-27 2011-01-04 Ab Initio Technology Llc Managing message queues
JP5021929B2 (ja) * 2005-11-15 2012-09-12 株式会社日立製作所 計算機システム及びストレージシステムと管理計算機並びにバックアップ管理方法
US8229902B2 (en) 2006-11-01 2012-07-24 Ab Initio Technology Llc Managing storage of individually accessible data units
JP5008991B2 (ja) * 2007-01-24 2012-08-22 株式会社日立製作所 データのリカバリを制御する装置及び方法
JP2009169515A (ja) 2008-01-11 2009-07-30 Denso Corp コンピュータシステム及びシステム回復装置
US8392370B1 (en) 2008-03-28 2013-03-05 Emc Corporation Managing data on data storage systems
US8539179B1 (en) * 2009-03-31 2013-09-17 Symantec Corporation Methods and systems for creating full backups
US9021299B2 (en) 2011-02-18 2015-04-28 Ab Initio Technology Llc Restarting processes
US8949517B2 (en) * 2011-10-05 2015-02-03 Lsi Corporation Self-journaling and hierarchical consistency for non-volatile storage
US9747293B2 (en) * 2012-02-28 2017-08-29 Deep Information Sciences, Inc. Method and system for storage and retrieval of information
US9185235B2 (en) 2012-08-02 2015-11-10 Ab Initio Technology Llc Aggregating data in a mediation system
US9116819B2 (en) * 2012-10-17 2015-08-25 Datadirect Networks, Inc. Reducing metadata in a write-anywhere storage system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1298536A1 (en) * 2001-10-01 2003-04-02 Partec AG Distributed file system and method of operating a distributed file system
CN101080710A (zh) * 2004-08-24 2007-11-28 塞门铁克操作公司 映象数据存储装置写时间映射
CN102682069A (zh) * 2011-03-04 2012-09-19 微软公司 管理数据库恢复时间

Also Published As

Publication number Publication date
SG11201603105VA (en) 2016-05-30
KR102179669B1 (ko) 2020-11-17
US20150113325A1 (en) 2015-04-23
CA2926935C (en) 2022-05-31
CA2926935A1 (en) 2015-04-30
JP2016540285A (ja) 2016-12-22
EP3060991B1 (en) 2017-09-06
JP6400695B2 (ja) 2018-10-03
KR20160074587A (ko) 2016-06-28
WO2015060991A1 (en) 2015-04-30
US9354981B2 (en) 2016-05-31
CN105659214A (zh) 2016-06-08
AU2014340626B2 (en) 2019-05-16
EP3060991A1 (en) 2016-08-31

Similar Documents

Publication Publication Date Title
US11308071B2 (en) Update and query of a large collection of files that represent a single dataset stored on a blob store
CN104040481B (zh) 用于融合、存储和检索增量式备份数据的方法和系统
US9183236B2 (en) Low level object version tracking using non-volatile memory write generations
US8060713B1 (en) Consolidating snapshots in a continuous data protection system using journaling
US10430298B2 (en) Versatile in-memory database recovery using logical log records
CN108509462B (zh) 一种同步活动事务表的方法及装置
US10896156B2 (en) Flexible synchronous file system replication
US8396833B2 (en) Inode management in redirect-on-write file system
CN103092905A (zh) 使用虚拟文件数据对象的列式数据库
CN107665219B (zh) 一种日志管理方法及装置
CN112470130A (zh) 恒定时间数据库恢复
EP2590078A2 (en) Shadow paging based log segment directory
US20170212902A1 (en) Partially sorted log archive
Sauer et al. Single-pass restore after a media failure
CN105659214B (zh) 数据单元集合的检查点设置
US20230409545A1 (en) Version control interface supporting time travel access of a data lake
CN112965939A (zh) 一种文件合并方法、装置和设备
US8572048B2 (en) Supporting internal consistency checking with consistency coded journal file entries
CN114816224A (zh) 数据管理方法和数据管理装置
US11803525B2 (en) Selection and movement of data between nodes of a distributed storage system
AU2014340626A1 (en) Checkpointing a collection of data units
Gamell et al. Specification of Fenix MPI Fault Tolerance library version 0.9.
JP6464771B2 (ja) 情報処理装置、情報処理システム、情報処理方法、および、コンピュータ・プログラム
CN116257531A (zh) 一种数据库空间回收方法
JPS63261437A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1225119

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant