数据单元集合的检查点设置的制作方法
【专利说明】
[0001] 相关申请的交叉引用
[0002] 本申请要求享有2013年10月21日提交的美国申请号61/893,439的优先权。
技术领域
[0003] 本申请设及对数据单元集合设置检查点。
【背景技术】
[0004] 有各种类型的数据处理系统,其响应于故障或其他突发事件恢复或重启的能力是 有用的。例如,在实时流处理或复杂事件处理系统中,保存诸如输入数据和/或状态信息的 系统信息对于在该输入数据上执行的计算是有用的。设置检查点(化eckpointing)是周期 性保存系统信息W便该系统能够从最近保存的一致状态恢复的方式的一个例子。在美国专 利号6,584,581中描述了针对在连续的数据流上操作的数据处理系统的检查点设置技术, 该专利通过引用合并于此。
【发明内容】
[0005] -方面,通常,一种用于管理存储数据的计算系统包括:存储器模块,被配置为存 储包括多个数据单元的工作数据;存储系统,被配置为存储包括多组一个或多个数据单元 的恢复数据;W及至少一个处理器,被配置为管理存储器模块和存储系统之间的数据单元 的传送。所述管理包括:维护包括在工作数据中的多个数据单元的顺序,该顺序定义了包括 多个数据单元中一个或多个数据单元的第一连续部分和包括多个数据单元中一个或多个 数据单元的第二连续部分;W及对于多个时间间隔中的每一个,识别在该时间间隔期间从 工作数据访问的任意数据单元,并且将一组两个或更多个数据单元加入到恢复数据,该一 组两个或多个数据单元包括:来自于第一连续部分并包括任意已访问数据单元的一个或多 个数据单元,W及来自于第二连续部分并包括先前已经加入到恢复数据的至少一个数据单 元的一个或多个数据单元。
[0006] 运些方面可包括W下一个或多个特征。
[0007] 所述管理还包括:对于多个时间间隔中的每一个,从恢复数据删除至少一组一个 或多个数据单元,对于该组一个或多个数据单元而言,仍然包括在所述工作数据中的任意 数据单元被存储在至少另一组一个或多个数据单元中。
[0008] 所述管理还包括:对于多个时间间隔中的每一个,识别在该时间间隔期间从工作 数据删除的任意数据单元。
[0009] 第二连续部分不包括任何已删除的数据单元。
[0010] 所述管理还包括:对于多个时间间隔中的每一个,将识别任何已删除的数据单元 的信息加入到恢复数据。
[0011] 识别在该时间间隔期间从工作数据访问的任意数据单元包括将在该时间间隔期 间从工作数据访问的任意数据单元移动到第一连续部分中。
[0012] 包括在工作数据中的多个数据单元之间的顺序建立在近来数据单元被访问的先 后基础之上。
[0013] 第一连续部分包括:包括在工作数据中的所有多个数据单元中最近被访问的数据 单元,W及自从最近被访问之后尚未加入到恢复数据的多个数据单元中的子集的最近最少 被访问的数据单元。
[0014] 第二连续部分不与第一连续部分重叠。
[0015] 第二连续部分包括自从最近被访问之后已经加入到恢复数据的至少一个数据单 J L· 〇
[0016] 来自第二连续部分的一个或多个数据单元限于一定数量的数据单元,该一定数量 的数据单元介于来自第一连续部分的一个或多个数据单元中数据单元的大致一半数量和 来自第一连续部分的一个或多个数据单元中数据单元的大致两倍数量之间。
[0017] 第一连续部分包括比第二连续部分中的任何数据单元都更近被访问的数据单元。
[0018] 指示近来数据单元被访问的先后的时间对应于开始独占访问该数据单元的时间。
[0019] 指示近来数据单元被访问的先后的时间对应于结束独占访问该数据单元的时间。
[0020] 所述管理还包括响应于故障而使用恢复数据来恢复工作数据的状态。
[0021 ]包括在工作数据中的多个数据单元的每个都分别与一键值相关联。
[0022] 包括在工作数据中的至少一个数据单元包括基于与该数据单元相关联的键值而 可访问的一个或多个值。
[0023] 与包括在工作数据中的不同数据单元相关联的不同键值的总数约大于1000。
[0024] 所述时间间隔彼此互不重叠。
[0025] 识别在该时间间隔期间从工作数据访问的任意数据单元包括识别W下至少其中 之一:在该时间间隔期间加入到工作数据的任意数据单元、在该时间间隔期间从工作数据 读取的任意数据单元、或在该时间间隔期间工作数据内更新的任一数据单元。
[00%]存储器模块包括易失性存储设备。
[0027] 存储系统包括非易失性存储设备。
[0028] 在另一方面,通常,一种用于管理计算系统的存储器模块和该计算系统的存储系 统之间的数据单元的传送的方法包括:将包括多个数据单元的工作数据存储在存储器模块 中;将包括多组一个或多个数据单元的恢复数据存储在该存储系统中;维护包括在工作数 据中的多个数据单元的顺序,该顺序定义了包括多个数据单元中一个或多个数据单元的第 一连续部分W及包括多个数据单元中一个或多个数据单元的第二连续部分;并且对于多个 时间间隔中的每一个,识别在该时间间隔期间从工作数据访问的任意数据单元,并且将一 组两个或更多个数据单元加入到恢复数据,该组两个或更多个数据单元包括:来自于第一 连续部分并包括任意已被访问数据单元的一个或多个数据单元,W及来自于第二连续部分 并包括先前已经加入到恢复数据的至少一个数据单元的一个或多个数据单元。
[0029] 在另一方面,通常,软件W非暂时性方式存储在计算机可读介质上用于管理计算 系统的存储器模块和该计算系统的存储系统之间的数据单元的传送。该软件包括用于使计 算系统执行W下操作的指令:将包括多个数据单元的工作数据存储在存储器模块中;将包 括多组一个或多个数据单元的恢复数据存储在该存储系统中;维护包括在工作数据中的多 个数据单元的顺序,该顺序定义了包括多个数据单元中一个或多个数据单元的第一连续部 分w及包括多个数据单元中一个或多个数据单元的第二连续部分;并且对于多个时间间隔 中的每一个,识别在该时间间隔期间从工作数据访问的任意数据单元,并且将一组两个或 更多个数据单元加入到恢复数据,该一组两个或更多个数据单元包括:来自于第一连续部 分并包括任意已被访问数据单元的一个或多个数据单元,W及来自于第二连续部分并包括 先前已经加入到恢复数据的至少一个数据单元的一个或多个数据单元。
[0030] 运些方案可包括一个或多个W下优点。
[0031] 在一些数据处理系统中,由系统维护的信息包括工作数据,该工作数据包括随着 处理进行而定期更新的数据单元的集合。在复杂事件处理(Complex Event Processing, CEP)系统中,例如,对事件流进行处理和聚合,同时基于结果而采取措施。针对CEP系统的一 组工作数据可W包括多个数据单元的状态,多个数据单元代表条目,针对条目正在接收各 自不同的数据流,例如与不同股票代码相关联的价格。由特定数据单元代表的状态可W存 储为通过唯一键(例如,数值)而访问的状态对象。在股票代码示例中,系统将为每一股票代 码维护一个状态对象。每一个状态对象可W具有一个或多个字段,所述字段存储有诸如纯 量(例如,与股票相关联的的值)和矢量(例如,历史价格数据)的值。在一些示例中,状态对 象的字段可W存储表示应用函数,例如聚合函数(例如,和函数、计数函数、极大值函数和平 均函数),的结果的计算值,递增地更新针对对应的股票代码的每一新价格值。可W具有系 统内的状态对象的多个集合,每一个集合可W包括具有特定字段集的状态对象。随着加入 新的状态对象和删除旧的状态对象,集合的大小可W变化,但是集合中大多数变化数据可 W归因于存储在正在更新的一部分状态对象中的实际数据。
[0032] 在一些实施方式中,针对系统的工作数据存储在大量的相对快速的存储器中,该 存储器可W是易失性存储器,例如动态随机存取存储器(DRAM)。为了确保工作数据的持久 性,采用检查点方案将每一个状态对象的最新版本定期存储在更加稳定而可靠的存储设备 (例如,硬盘驱动器、固态驱动器或其它非易失性存储介质)可W是特别有用的,同时确保对 所需资源(例如数据传送时间和数据存储空间)方面的成本进行有效管理。虽然工作数据可 W包括大量的数据单元(例如上述的状态对象),但是在检查点操作之间的任一给定的时期 (称之为"检查点间隔"),可能有一小部分的数据单元发生变化。该检查点方案应使每一个 数据单元的最近状态能够在出现故障的情况下得W恢复,包括最近已经改变了的那些数据 单元W及尚未改变的那些数据单元。
[0033] 在运样的系统中进行有效检查点设置的技术是具有挑战性的,尤其当正在被管理 的数据单元的数量特别大时。例如,在一种情形下,工作数据包括每个为数字节的大约十亿 个数据单元的集合,并且在每一检查点间隔期间,有大约千分之一的数据单元(1百万个数 据单元)发生了变化。当然,在每一检查点间隔期间,已经发生变化的数据单元的集合可W 是不同(但可能重叠)的集合。为了恢复,还可W假设只需要任意特定数据