一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

增量地更新针对存储器系统的恢复映射数据的制作方法

2022-04-27 08:24:55 来源:中国专利 TAG:

增量地更新针对存储器系统的恢复映射数据


背景技术:

1.近年来,使用计算设备(例如,移动设备、个人计算机、服务器设备、云计算系统)来接收、存储、编辑、传输或以其他方式利用数字数据已急剧增长。例如,个人和企业现在通常将大量数据存储在本地计算设备和/或远程云计算系统上。实际上,随着对计算设备上的增加的存储和存储器容量的需求增加,与存储和处理数据相关联的技术创新已类似地得到改进并变得更有能力。
2.随着存储器和存储容量的大小和复杂性已增加,从而确保了需要永久但当前驻留在易失性介质(例如,存储器)中的任何数据已变得日益困难。例如,随着存储器容量的增加,通常需要附加处理资源来捕获和存储存储器系统的存储器的当前状态。另外,在计算设备捕获和存储表示存储器的当前状态的快照之间可能经过了长时间段的情况下,通常需要附加时间来恢复已发生了存储器状态的大量更新的存储器的当前状态。此外,虽然许多常规系统可以通过以更高频率简单地捕获存储器状态的快照来减少恢复时间,但是捕获或以其他方式生成存储器系统的快照涉及大量处理资源并随着时间的推移加速介质磨损。
3.这些和其他问题针对促进存储器系统的存储器状态的快速且高效的恢复存在。
附图说明
4.图1图示了根据一个或多个实施例的具有在其上实现的存储器恢复系统的示例计算设备。
5.图2图示了根据一个或多个实施例的用于生成并更新恢复映射的示例工作流。
6.图3图示了示出根据一个或多个实施例的恢复映射的更新的示例时间线。
7.图4图示了根据一个或多个实施例的用于生成并更新恢复映射的另一示例工作流。
8.图5a至图5e图示了根据一个或多个实施例的沿示例时间线的不同检查点处的恢复映射的示例更新。
9.图6图示了根据一个或多个实施例的用于生成并更新恢复映射的一系列示例动作。
10.图7图示了根据一个或多个实施例的用于生成并更新恢复映射的另一系列示例动作。
11.图8图示了可以包括在计算机系统内的某些组件。
具体实施方式
12.本公开大体上涉及一种用于生成并更新恢复映射的存储器恢复系统,该恢复映射包括使得计算设备能够恢复存储器系统的存储器的当前状态的信息。具体地,如下面将进一步详细讨论的,该存储器恢复系统可以维护恢复映射,该恢复映射包括存储器系统的存储器状态的周期性更新的快照以及相关联的日志更新,该相关联的日志更新指示最新近的更新与最当前的状态之间的存储器状态的改变。使用经更新的恢复映射和日志更新,该存
储器恢复系统能够诸如响应于功率损耗事件(例如,拔掉插头、电池功率损耗、或者其他在计划外的功率损耗事件)而随时恢复数据的当前状态。如在下面将讨论的,该存储器恢复系统可以以各种方式实现本文中所描述的与恢复映射的部分的周期性更新相关联的益处。
13.作为第一示例,存储器恢复系统可以接收、生成或以其他方式标识包括存储器快照的恢复映射。存储器快照可以包括存储器系统(例如,计算设备的存储系统的存储器组件)在特定时间点(例如,最新近的更新的时间或存储器快照被生成的时间)的存储器状态的表示。该存储器恢复系统还可以生成与持续时间内的存储器状态的改变(例如,写入)相关联的日志更新,并且将日志更新添加到恢复映射。基于日志更新的数目,该存储器恢复系统可以通过生成存储器快照的经更新的部分以替换存储器快照的与存储器系统的对应的部分(例如,逻辑块地址(lba)的相同范围或存储器硬件的物理区域)相关联的更旧或过时的部分或段,来周期性地更新存储器快照。
14.作为另一示例,存储器恢复系统可以维护包括快照流的恢复映射。快照流可以包括多个段,该多个段表示存储器系统的存储器状态的对应的部分。该存储器恢复系统还可以生成与存储器系统的状态的改变相关联的日志更新,并且将日志更新添加到恢复映射。该存储器恢复系统可以基于定时检查点来迭代地更新快照流的段以维护恢复映射,该恢复映射具有存储器系统上的存储器状态的当前表示。该存储器恢复系统可以结合日志更新的选择性集合来使用快照流,以使得能够随时恢复存储器的当前状态,同时限制恢复存储器的当前状态所涉及的时间。
15.如下面将进一步详细讨论的,本公开包括具有本文中所描述的特征和功能性的若干实际应用,这些实际应用提供与维护恢复映射相关联的益处和/或解决提供,该恢复映射使得计算设备能够(例如,响应于在计划外的功率损耗事件)随时恢复存储器的当前状态。将理解,下面所描述的益处是通过示例的方式提供的,并且与维护恢复映射相关联的各种问题的其他益处和/或解决方案可以类似地使用本文中所描述的特征和功能性来实现。
16.例如,如在下面将讨论的,存储器恢复系统可以随着时间的推移而周期性地更新存储器快照的选定部分。通过周期性地更新存储器快照的选定部分,该存储器恢复系统可以避免存储器恢复已花费了大量资源来生成非常大的存储器系统的新快照,却在不合时宜的时刻(例如,当新快照几乎完成时)经历功率损耗事件的场景。在这种情况下,该存储器恢复系统并非失去所有进展,而是仅失去与存储器快照的最新近的段或部分相关联的进展,同时仍受益于恢复映射的先前更新的部分。
17.另外,在一个或多个实施例中,存储器恢复系统在更新恢复映射时提供了与处理资源的利用相关联的更大的灵活性。例如,因为存储器恢复系统周期性地更新恢复映射的选定部分,所以存储器恢复系统可以减少处理资源的分配以维护存储器快照的当前版本。例如,通过维护具有周期性更新的快照流或通过简单地更新恢复映射的选定部分(例如,子集),存储器恢复系统可以以比常规存储器系统更低的频率生成存储器快照,同时确保恢复时间不超过期望时间阈值。
18.通过降低存储器恢复系统生成或更新恢复映射的频率,存储器恢复系统还可以减少由于以比常规系统更低的频率执行整个恢复映射的更新而导致的介质磨损。例如,通过更新恢复映射的选定部分,存储器恢复系统可以降低整个存储器快照被更新的整体频率。这减少了向存储系统写入恢复数据的次数,从而减少与向存储系统重复写入和重新写入恢
复数据相关联的介质磨损。
19.如在前述讨论中所说明的,本公开利用各种术语来描述本文中所描述的系统的特征和优点。现在提供关于这些术语中的一些术语的含义的附加细节。如本文中所使用的,“存储器系统”可以是指计算设备或计算设备的系统的任何易失性或非永久性存储器。例如,在一个或多个实施例中,存储器系统是指由计算设备可用于执行读取、写入或其他动作(诸如,存储可以由计算设备的一个或多个处理器(例如,cpu)访问的存储器)的任何随机存取存储器(ram)。存储器系统可以包括各种类型的易失性存储器,通过示例的方式,包括,动态ram(dram)、同步dram(sdram)、静态ram(sram)或任何其他类型的非永久性存储器。存储器系统可以在个人计算设备(诸如,膝上型或桌上型计算机)上实现,或者备选地,可以是指云计算系统的一个或多个服务器设备的存储器。
20.在本文中所描述的一个或多个实施例中,存储器系统可以包括“存储器状态”。如本文中所使用的,“存储器状态”可以是指在任何时间点的存储器状态。存储器状态可以包括存储器系统内的一个或多个存储器元件(例如,存储器单元)的任何数目的状态。存储器状态可以是指存储器系统的存储器元件中的每个存储器元件的二进制状态。附加地,存储器状态可以包括在各种应用中或在不同类型的存储器硬件上的多个存储器元件的组合存储器状态。在一个或多个实施例中,存储器状态是指存储器系统的所有元件的存储器状态。备选地,在本文中所描述的一个或多个实施例中,存储器状态可以是指与存储器元件的特定部分或区域(例如,lba的范围或存储器元件的阵列的选定部分)相对应的存储器元件的状态。
21.如本文中所使用的,“恢复映射”是指存储器系统的存储器状态的表示。恢复映射可以包括存储器快照,该存储器快照包括存储器系统的存储器状态的最近捕获到的表示。例如,存储器快照可以是指最新捕获到的存储器状态并且包括用以重新创建或恢复存储器系统的存储器状态的任何数据,如同这些数据存在于存储器快照被生成的时间点一样。在一个或多个实施例中,恢复映射可以包括闪存转换层(ftl)映射以及与存储器系统的存储器状态相对应的日志更新。例如,在一个或多个实施例中,快照可以是指ftl映射。备选地,恢复映射可以是指根据本文中所描述的一个或多个实施例的包括快照和日志方案的任何元数据块。
22.在本文中所描述的一个或多个实施例中,存储器快照包括共同构成整个存储器系统的表示的离散部分或段。部分或段可以包括存储器系统的存储器状态的多个部分或段的表示,该多个部分或段与存储器系统上的存储器元件的相应部分或区域相对应。如下面将进一步详细讨论的,快照部分中的每个快照部分可以与相应快照部分被生成的不同时间相对应。因此,存储器快照的多个部分可以包括存储器系统的不同部分的存储器状态的表示,这是由于存储器系统的相应部分在快照部分被生成的时间存在。例如,在存储器快照被划分成四个快照部分的情况下,快照部分中的每个快照部分可以包括与四个快照部分被生成的四个时间相关联的存储器系统的四个对应的部分的存储器状态的表示。
23.存储器快照的部分可以以若干种方式被划分。例如,存储器快照可以包括基于对存储器系统做出的若干改变(例如,写入)而生成的相应部分。作为另一示例,存储器快照可以是指具有基于定时检查点而划分的快照段的快照流。实际上,存储器快照可以包括根据本文中所描述的一个或多个实施例的以不同频率被生成的任何数目的部分。下面结合图2
至图5e提供了结合各种示例的另一细节。
24.除了存储器快照之外,恢复映射可以包括任何数目的日志更新。如本文中所使用的,日志更新可以包括与存储器系统的改变相关联的任何信息。例如,日志更新可以包括对存储器系统的写入的指示,并且可以包括写入的值以及与写入何时被实现相关联的时间戳。在本文中所描述的一个或多个示例中,日志更新提供用以使得存储器恢复系统能够鉴于最新近的存储器快照来重新创建存储器的当前状态的任何信息。例如,在经历了计算设备的意外功率损耗时,存储器恢复系统可以通过组合最新的存储器快照与来自恢复映射的任何日志更新来恢复存储器系统的当前状态,以在意外功率损耗时重新创建存储器快照的状态。在一个或多个实施例中,日志更新是指与对应的ftl映射相关联的ftl日记页。备选地,日志更新可以是指任何数据对象,该任何数据对象包括对应存储器块的存储器状态的改变的指示。
25.现在将提供关于存储器恢复系统的附加细节,该存储器恢复系统用于生成并更新恢复映射的部分以促进计算设备上的存储器的当前状态的高效并且准确的恢复。例如,图1图示了包括在其上实现的存储器恢复系统104的示例计算设备102。如图1中所示出的,存储器恢复系统104包括存储器系统106和状态数据108。如上面所提到的,存储器系统106可以是指计算设备102上的具有相关联的状态数据108的(多个)任何易失性或非永久性存储器设备,该存储器设备可以包括与存储器系统106的存储器元件的存储器状态相关联的任何信息。在一个或多个实施例中,存储器系统106包括dram或其他类型的非永久性存储器。
26.存储器恢复系统104还可以包括存储器监测器110、快照管理器112、日志管理器114和恢复管理器116。如进一步所示出的,存储器恢复系统104可以包括存储系统118,其可以包括任何非易失性或永久性磁盘存储装置,并且可以包括任何类型的非易失性或永久性存储元件,诸如nand存储装置、闪速存储装置、ssd设备、或者任何其他相似类型的存储元件。如下面将进一步详细讨论的,存储系统118可以包括存储在其上的恢复映射120。恢复映射120可以包括使得存储器恢复系统104能够恢复存储器系统106的存储器的当前状态的任何信息。如图1中所示出的,恢复映射120可以包括存储器快照122,其可以包括存储器快照122的多个快照段124或其他离散部分。恢复映射还可以包括多个日志更新126和定时数据128。定时数据128可以包括指示存储器快照122的快照段124和日志更新126被发起或以其他方式被生成的时间的数据。具体地,如下面将描述的,快照管理器112和日志管理器114可以指示快照段124和/或日志更新126被生成(或者,发起)的时间。
27.计算设备102可以是指各种类型的计算设备。例如,计算设备102可以是指服务器设备,诸如互连服务器设备的网络(例如,云计算系统)上的服务器节点或节点系统。另外或作为备选,计算设备102可以是指移动设备,诸如移动电话、智能电话、个人数字助理(pda)、平板、膝上型计算机或可穿戴计算设备(例如,耳机或智能手表)。计算设备102还可以包括一个或多个非移动设备,诸如桌上型计算机、服务器、或者其他非便携式设备。计算设备102可以包括下面结合图8描述的附加特征和功能性。
28.图1图示了存储器恢复系统104和相关联的组件在单个计算设备102上被实现的示例实施例。例如,存储器恢复系统104可以在单个服务器设备或个人计算设备上实现,该单个服务器设备或个人计算设备具有在其上实现的存储器系统106和存储系统118。备选地,存储器恢复系统104的一个或多个组件可以在多个设备上实现。例如,在一个或多个实施例
中,存储器恢复系统104包括在第一设备上实现的存储器系统106,而组件110到116中的一个或多个组件和/或存储系统118在第二设备(或者,多个设备)上实现。
29.在一个或多个实施例中,存储器恢复系统104的组件中的每个组件使用任何合适的通信技术彼此通信。附加地,存储器恢复系统104的组件可以与其他设备通信。将理解,虽然图1中所示出的存储器恢复系统104的组件在图1中被示出为分开的,但是子组件中的任何子组件可以被组合成更少的组件(诸如,组合成单个组件)或被划分成更多的组件,如可以服务于特定实施例。
30.存储器恢复系统104的组件(例如,106到118)可以包括软件、硬件或两者。例如,存储器恢复系统104的组件可以包括存储在计算机可读存储介质上且由一个或多个计算设备的处理器可执行的一个或多个指令。存储器恢复系统104的计算机可执行指令在由一个或多个处理器执行时可以使计算设备102执行本文中所描述的方法。备选地,存储器恢复系统104的组件可以包括硬件(诸如,专用处理设备)以执行特定功能或功能组。附加地或备选地,存储器恢复系统104的组件可以包括计算机可执行指令与硬件的组合。
31.根据上面讨论的一个或多个实施例,存储器恢复系统104可以生成并周期性地更新恢复映射120,该恢复映射120包括存储器系统106上的状态数据108的表示。例如,存储器监测器110可以监测状态数据108以追踪对状态数据108的任何写入或其他修改,该状态数据108改变存储器系统106的存储器状态。这可以包括追踪由计算设备102执行的影响或更改存储器系统106的状态数据108的任何数目的读取、写入或任何其他动作。附加地,存储器监测器110可以追踪和记录或以其他方式指示由计算设备102执行的任何读取、写入或其他动作的定时。存储器监测器110可以向存储系统118提供对应的定时信息和/或向存储器系统106的存储器写入定时信息本身。
32.如图1中所示出且如下面将进一步详细讨论的,存储器恢复系统104包括快照管理器112。快照管理器112可以在任何时间点捕获存储器快照122,该存储器快照122表示存储器系统106的存储器的当前状态(例如,状态数据的当前状态)。快照管理器112可以捕获表示初始存储器状态的存储器快照122(例如,在打开或启动计算设备102时)。在一个或多个实施例中,快照管理器112捕获表示最终存储器状态的存储器快照122,该最终存储器状态与存储器在计算设备102关机时(例如,有计划的关机)或在经历有计划的功率损耗事件(例如,提供充足时间来生成最新快照并且将快照传递给存储系统118的事件)时的状态相对应。
33.除了捕获表示存储器系统106的存储器的整个分配的存储器状态的存储器122快照之外,快照管理器112还可以周期性地更新存储器快照122的离散部分(例如,子集)。例如,在一个或多个实施例中,快照管理器112从存储器系统106标识存储器的离散部分,诸如lba的离散范围、来自存储器系统106的存储器元件的物理区域或存储器系统106的其他可定义部分,快照管理器122可以使用该其他可定义部分来针对存储器系统106的相应子集捕获或以其他方式生成快照(例如,快照段)。
34.在标识存储器系统106的部分后,快照管理器112可以针对存储器系统106的相应部分生成快照更新。例如,在一个或多个实现中,快照管理器112通过标识存储器系统106的特定部分的状态数据108并更新存储器系统106的(多个)所标识的部分的快照段来选择性地更新存储器快照122。如下面将结合图2至图3进一步详细讨论的,快照管理器112可以通
过生成经更新的快照段来更新存储器快照122的选择性段或部分,该经更新的快照段表示存储器系统106的一部分的存储器状态,该部分已相对于存储器快照122的其他部分进行了最不新近地更新。
35.在一个或多个实施例中,存储器快照122包括具有快照段124的快照流,该快照段124在定期或不定期的定时检查点处被更新。在一个或多个实施例中,快照管理器112在两个后续检查点之间的时间段内连续更新快照段124,并且在每个检查点处丢弃最不新近的快照段,该最不新近的快照段与存储器系统106的与最近更新的快照段相同的部分相对应。下面结合图4至图5e讨论了结合生成并更新包括快照流的存储器快照122的另一细节。
36.如进一步所示出的,存储器恢复系统104可以包括日志管理器114。如上面所讨论的,恢复映射120可以包括日志更新126的数目,日志更新126的数目与存储器快照122(例如,存储器快照122的特定部分)已被更新的时间与当前时间之间的状态数据108的改变相对应。例如,基于状态数据108的检测到的改变,日志管理器114可以生成日志更新,该日志更新指示存储器系统106的一个或多个存储器元件的存储器的状态的改变以及改变的相关联的定时。如图1中所示出的,日志管理器114可以存储关联于恢复映射120内的每个日志更新的相关联的定时数据128(例如,时间戳)。日志更新的定时可以与多个快照段124中的每个快照段的时间戳一起被存储在定时数据128内,该时间戳指示每个快照段被发起或以其他方式被生成的时间。
37.如上面所提到的,可以由存储器恢复系统104利用来自恢复映射120的信息来恢复存储器系统106的存储器的最新近的状态。具体地,如图1中所示出的,存储器恢复系统104可以包括恢复管理器116,该恢复管理器116被配置为在任何特定时间点恢复存储器状态。例如,恢复管理器116可以重建状态数据,如同状态数据存在于某个时间点(诸如,在计算设备102的意外功率损耗时)一样。在一个或多个实施例中,恢复管理器116通过标识最新近的或经更新的存储器快照122来恢复存储器状态。附加地,恢复管理器116可以通过将日志更新126中的每个日志更新应用于存储器快照122来修改在最新近的存储器快照122内指示的数据。在一个或多个实现中,恢复管理器116可以迭代地应用恢复映射120内所包括的日志更新126中的每个日志更新,该恢复映射120具有一直到功率损耗事件(或者,其他事件)或提示恢复存储器系统106的给定存储器状态的定时的时间的定时数据128(例如,时间戳)。
38.图2提供了根据本文中所描述的一个或多个实施例的示例工作流200,该示例工作流200指示用于维护经更新的恢复映射120的一系列动作。如图2中所示出的,存储器恢复系统104可以执行接收与存储器系统106上的存储器状态相关联的存储器快照的动作202。例如,存储器恢复系统104可以捕获初始存储器快照122(例如,在打开计算设备102时)。在一个或多个实施例中,存储器恢复系统104接收表示存储器系统106上的存储器的当前状态或最新近的状态的先前生成的快照。作为示例,在存储器恢复系统104在将计算设备102关机(例如,有计划的关机)之前生成存储器快照122的情况下,存储器恢复系统104可以在将计算设备102通电时接收最新的存储器快照122。
39.如图2中进一步示出的,存储器恢复系统104可以执行监测存储器活动以检测存储器系统106上的写入(或者,其他改变)的动作204。存储器恢复系统104可以监测存储器系统106上的任何类型的活动,诸如影响存储器系统106上的状态数据108的当前状态的读取、写入、访问、或者任何其他活动。
40.响应于检测到状态数据108的任何改变,存储器恢复系统104可以执行针对对存储器系统106的检测到的写入(或者,其他改变)生成日志更新的动作206。如上面所提到的,存储器恢复系统104可以针对对存储器系统106的每次写入生成一个或多个日志更新。日志更新中的每个日志更新可以包括使得存储器恢复系统104能够确定在最新近的存储器快照122被捕获的时间(例如,对一个或多个快照段124的最新近的更新被执行的时间)与当前时间之间的状态数据108的当前状态所需的任何信息。另外,日志更新中的每个日志更新可以包括时间戳或其他定时信息128以指示日志更新被创建的时间和/或存储器系统106上的检测到的写入发生的时间。
41.附加地,存储器恢复系统104可以执行确定是否要更新存储器快照122的动作208。存储器恢复系统104可以基于若干因素来确定是否要更新存储器快照122。在一个或多个实施例中,存储器恢复系统104基于在后续更新之间已经过的时间段来确定要更新存储器快照122。在一个或多个实施例中,存储器恢复系统104基于接收到的输入或对生成经更新的存储器快照122的请求来确定要更新存储器快照122。
42.在一个或多个实施例中,存储器恢复系统104基于已被生成且添加到恢复映射120的日志更新的数目来确定要更新存储器快照122。例如,为了确保存储器恢复系统104能够在阈值时间段内恢复当前状态,存储器恢复系统104可以确定要更新存储器快照122以避免在恢复映射120内具有阈值数目的日志更新126。因此,存储器恢复系统104可以基于恢复映射120内的日志更新126的总数,或者备选地,基于自从执行存储器快照122的最新近的更新以来已被生成且添加到恢复映射120的日志更新126的数目,来确定要更新存储器快照122。
43.在存储器恢复系统104确定不更新存储器快照122的情况下,存储器恢复系统104可以返回到动作204并还监测存储器系统106的存储器活动。备选地,在存储器恢复系统104确定要更新存储器快照122的情况下,存储器恢复系统104可以执行针对存储器系统106的对应的部分生成快照段的动作210。具体地,存储器恢复系统104并非更新整个存储器快照122,而是可以更新与来自存储器系统106的存储器元件的子集(例如,lba的范围、存储器硬件的离散区域)相对应的选定部分(例如,快照段)。
44.在一个或多个实施例中,存储器恢复系统104选择性地更新与存储器快照122的最不新近更新的部分相对应的快照段。例如,存储器恢复系统104可以评估多个快照段124的定时数据128,以标识哪些快照段124已被最不新近地更新。存储器恢复系统然后可以通过捕获存储器系统106的对应部分的存储器的当前状态来选择性地更新最不新近更新的快照段中的一个或多个最不新近更新的快照段。存储器恢复系统104还可以通过将经更新的快照段添加到恢复映射120来更新存储器快照122。
45.在生成或以其他方式更新快照段后,存储器恢复系统104还可以执行丢弃与存储器系统106的部分相对应的(多个)旧快照段作为已被更新的(多个)新快照段的动作212。具体地,响应于生成一个或多个新快照段,存储器恢复系统104可以丢弃与存储器系统106的(多个)相同部分相对应的任何数目的过时的快照段。
46.如图2中所示出的,存储器恢复系统104可以执行确定恢复映射120是否包括一个或多个过时的日志更新的动作214。具体地,存储器恢复系统104可以确定当前在恢复映射120中的日志更新集合126中的一个或多个日志更新是否具有在日期上先于已从恢复映射120丢弃的(多个)过时的快照段的定时数据128(例如,时间戳)。虽然恢复映射120可以包括
存储器快照122的每次迭代更新被丢弃的一个或多个过时的日志更新,但是在一个或多个实施例中,在执行快照段124的第一迭代更新集合时,日志更新集合126可以全部都是当前的,如将结合图3通过示例的方式讨论的。在这种场景中(例如,当恢复映射120不包括任何过时的日志更新时),存储器恢复系统104可以返回以监测结合存储器系统106的附加存储器活动。
47.备选地,响应于确定在存储器映射120内存在一个或多个过时的日志更新,存储器恢复系统104可以执行丢弃过时的日志更新的动作216。例如,存储器恢复系统104可以从具有定时数据128的恢复映射120移除任何日志更新,该定时数据128在日期上先于从恢复映射丢弃的最不新近的快照段。具体地,如下面将通过示例的方式讨论的,存储器恢复系统104可以丢弃包括信息的任何日志更新,该信息在最近更新的存储器快照122内的快照段124的当前集合内被捕获或以其他方式被包括进来。
48.图3提供了根据本文中所描述的一个或多个实施例的结合迭代地更新恢复映射120的特征和功能性的示例说明。具体地,图3图示了在初始时间(t0)的示例存储器快照(ss0)302a,其表示存储器在初始时间(t0)的状态。初始存储器快照(ss0)302a可以包括与存储器系统106的相应部分相对应的快照段s1、s2以及s3。如进一步所示出的,t0映射(例如,在初始时间(t0)的恢复映射)包括不具有日志更新的初始存储器快照(ss0)302a。如图3中所示出的,存储器恢复系统104可以接收或以其他方式生成初始恢复映射(t0映射308a),该初始恢复映射表示存储器系统106上的存储器在t0的状态。
49.随着时间的推移,存储器恢复系统104可以在t0与t1之间生成第一日志更新集合306a。根据上面讨论的示例,存储器恢复系统104可以继续生成日志更新,直至第一时间(t1)为止。例如,在第一日志更新集合306a超过阈值数目的更新之后和/或在已经过了阈值持续时间之后,存储器恢复系统104可以执行恢复映射120的第一更新。如图3中所示出的,在第一时间(t1)以及在发起更新之前或在开始发起更新时,除了第一日志更新集合306a之外,t1映射308b还包括初始快照(ss0)。
50.如进一步所示出的,存储器恢复系统104可以通过生成第一新段(s
11
)并将新段附加到段s2和s3来执行初始存储器快照(ss0)302a的更新以生成第一经更新的存储器快照(ss1)302b。存储器恢复系统104然后可以丢弃第一经更新的存储器快照302b的第一经更新的部分(s1)304a,该第一经更新的部分(s1)304a与来自存储器系统106的存储器的与新段(s
11
)相同的部分相对应。如图3中所示出的,存储器恢复系统104可以继续生成第二日志更新集合306b并将日志更新306b添加到恢复映射。当存储器恢复系统104确定恢复映射的另一迭代更新将被执行时,存储器恢复系统104可以生成一直到第二时间(t2)的任何数目的日志更新。
51.如图3中所示出的,除了表示初始时间(t0)与第二时间(t2)之间的对存储器系统106的更新的前两个日志更新集合306a-b之外,t2映射308c(例如,恰好在发起第二映射更新之前的恢复映射)还包括t1存储器快照(ss1)302b。在一个或多个实施例中,初始时间(t0)与第一时间(t1)之间的持续时间同第一时间(t1)与第二时间(t2)之间的持续时间相同或大致相同。备选地,在一个或多个实施例中,不同定时之间的持续时间是基于触发恢复映射的部分的更新的日志更新的数目。因此,图3中所示出的每个增量时间可以取决于日志更新的数目和频率而不同。
52.如图3中所示出的,存储器恢复系统104可以继续以增量步骤迭代地更新恢复映射。例如,如图3中所示出的,在第二时间(t2)更新存储器快照时,第二经更新的存储器快照(ss2)302c可以包括初始第三段(s3)以及经更新的第一段和第二段(s
11
和s
21
)。存储器恢复系统104还可以丢弃过时的第二段(s2),该过时的第二段(s2)对应于存储器系统106的与新添加的段(s
21
)相同的部分。如进一步所示出的,存储器恢复系统104可以在存储器恢复系统104确定另一更新应该被执行的第二时间(t2)与第三时间(t3)之间生成第三日志更新集合306c。如图3中所示出的,在第三时间(t3),t3映射308d可以包括第二经更新的存储器快照(ss2)302c以及表示t0与t3之间的存储器系统的改变的三个日志更新集合306a-c。
53.如进一步所示出的,存储器恢复系统104可以生成包括经更新的快照部分s
11
、s
21
以及s
21
的第三经更新的存储器快照(ss3)302d。在生成第三经更新的存储器快照(ss3)302d时,存储器恢复系统104还可以丢弃过时的段(s3)304c,该过时的段(s3)被表示存储器系统106的相同部分的存储器的更当前的状态的新段替换。存储器恢复系统104可以继续生成第四日志更新集合306d并将其添加到恢复映射的当前版本,直至存储器恢复系统104确定要执行存储器快照的另一迭代更新的第四时间(t4)为止。
54.如图3中所示出的,在第四时间(t4)以及在发起快照更新之前,除了表示初始时间(t0)与第四时间(t4)之间的存储器系统106的改变的前四个日志更新集合306a-d之外,t4映射308e还包括第三经更新的存储器快照(ss3)。存储器恢复系统104可以通过生成包括快照段s
21
、s
31
以及s
12
的第四经更新的存储器快照302e来更新存储器快照。存储器恢复系统104还可以丢弃现在过时的段(s
11
)304d,该现在过时的段(s
11
)304d被表示存储器系统106的相同部分的更当前的存储器状态的更当前的段(s
12
)替换。
55.此时并随着对存储器映射的迭代更新,存储器恢复系统104可以开始从恢复映射丢弃一个或多个过时的日志更新。例如,在第四时间(t4)之前,没有一个日志更新是过时的,这是由于在发起相应快照更新时没有一个日志更新在日期上先于丢弃的快照段304a-d。然而,在生成(例如,完成生成)第四经更新的存储器快照(ss4)302e时,存储器恢复系统104可以确定第一日志更新集合306a已过时,这是由于最新的快照段s
21
、s
31
以及s
12
中的每个最新的快照段分别包括存储器状态数据108,该存储器状态数据108表示包含在第一日志更新集合306a内的信息。因此,在第五时间,并且在生成第五日志更新集合306e(并且丢弃具有在日期上先于第一时间(t1)的时间戳的过时的日志更新)之后,t5恢复映射308f可以包括第四经更新的存储器快照302e以及第一时间(t1)与第五时间(t5)之间的日志更新。
56.结合图3描述的特征和功能性通过示例而非限制的方式被提供。例如,存储器恢复系统104可以执行对恢复映射的任何数目的迭代更新,该迭代更新涉及更新存储器快照和移除过时的日志更新。而且,虽然图3示出了包括存储器快照的三个离散部分的示例,但是存储器恢复系统104可以包括任何数目的快照段。而且,存储器恢复系统104可以根据本文中所描述的一个或多个实施例的以不同阈值数目的日志更新执行更新。
57.图4图示了另一个示例实现,其中存储器恢复系统104根据上面结合一个或多个实施例讨论的相似原理迭代地更新恢复映射。具体地,图4图示了示例工作流400,该示例工作流400包括用于根据若干检查点(例如,定时检查点)迭代地更新快照流的一系列动作。具体地,图4图示了存储器恢复系统104生成并更新快照流的示例,该快照流包括可以以定期的时间间隔随着时间的推移连续生成或更新的段。快照流可以是指上面结合一个或多个实施
例所讨论的示例存储器快照122。虽然图2至图3以及图4至图5e被描述为不同示例,但是上面结合图2至图3讨论所的一个或多个特征可以类似地应用于结合图4至图5e所描述的一个或多个实施例(反之亦然)。
58.如图4中所示出的,存储器恢复系统104可以执行标识快照流的检查点数据的动作402。在一个或多个实施例中,存储器恢复系统104确定用于更新快照流的频率。例如,存储器恢复系统104可以确定固定间隔,在固定间隔下,存储器恢复系统104更新快照流的段并丢弃一个或多个过时的日志更新。备选地,存储器恢复系统104可以在快照流的每次迭代更新之间确定阈值数目的日志更新。
59.存储器恢复系统104可以基于若干考虑来标识检查点数据。例如,在一个或多个实施例中,存储器恢复系统104基于要分配用于维护和更新恢复映射的处理资源的数量来确定检查点之间的持续时间。例如,存储器恢复系统104可以确定检查点之间的较高持续时间,以便使用计算设备102的更少的处理资源。备选地,存储器恢复系统104可以确定检查点之间的较低持续时间,以确保用于恢复存储器系统106的当前状态的时间可以在恢复时间的阈值周期内完成。在一个或多个实施例中,存储器恢复系统104基于用户提供的参数(例如,用户设置)和/或基于用于供计算设备102执行各种其他任务的可用处理资源来标识检查点数据。
60.如图4中所示出的,存储器恢复系统104可以执行基于存储器系统106的当前状态来更新快照流的动作404。例如,存储器恢复系统104可以更新整个快照流或快照流的离散段以反映存储器系统106的当前状态。在计算设备102最近被打开的情况下,存储器恢复系统104可以通过生成表示存储器系统106的所有存储器的当前状态的新快照流来更新快照流。备选地,在一个或多个实施例中,存储器恢复系统104更新快照流的最不新近更新的部分以反映存储器系统106的对应部分,如上面根据一个或多个实施例讨论的。
61.存储器恢复系统104还可以执行基于对存储器系统106的检测到的写入(或者,其他改变)来生成日志更新的动作406。该动作406可以与上面结合图2所讨论的动作206相似。例如,类似于图2,存储器恢复系统104可以监测存储器活动,并且响应于检测到对存储器系统106的一个或多个存储器元件的状态的每个修改而生成一个或多个日志更新。
62.如图4中所示出的,存储器恢复系统104可以执行检测检查点的动作408。例如,存储器恢复系统104可以确定自从执行快照流的新近更新以来是否已过去了阈值时间段。另外或作为备选,存储器恢复系统104可以基于最近已生成的日志更新的数目或基于恢复映射内所包括的日志更新的总数来检测检查点。
63.在一个或多个实施例中,存储器恢复系统104基于存储器恢复系统104恢复存储器系统106的存储器的当前状态所花费的预计时间来检测检查点。例如,在计算设备102包括高处理能力(并且能够以比具有更有限的处理能力的设备更高的速率处理日志更新)的情况下,存储器恢复系统104可以基于比其他计算系统更大的数目的日志更新来检测检查点。备选地,在计算设备102具有有限的处理能力且可能需要更多时间来为存储器系统106重建存储器的当前状态的情况下,存储器恢复系统104可以基于比其他计算系统更小的数目的日志更新来检测检查点。而且,存储器恢复系统104可以基于存储器系统104的大小(例如,具有对应存储器状态的存储器元件的数目),并且基于存储器恢复系统104可以用来恢复存储器系统106的当前状态的时间,来检测检查点。
64.在存储器恢复系统104没有检测到检查点的情况下,存储器恢复系统104可以返回到基于存储器系统106的当前状态来更新快照流的动作404。例如,存储器恢复系统104可以继续更新恢复映射以包括新近日志更新。另外,在存储器恢复系统104正处于生成快照流的段的过程中,存储器恢复系统104可以继续生成新段,同时还监测存储器系统106的改变。下面关于至图图5a至图5e讨论了结合在处理日志更新的同时生成段的附加细节。
65.备选地,在存储器恢复系统104检测检查点的情况下,存储器恢复系统104可以执行基于检查点来丢弃快照屏幕的过时的段的动作410。如上面所提到的,在一个或多个实施例中,存储器恢复系统104可以通过随着时间的推移迭代地更新快照流的部分来逐渐更新快照流的段。在一个或多个实施例中,存储器恢复系统104不断更新与存储器系统104的对应部分相关联的快照流的新部分(例如,快照段),然后丢弃与存储器系统104的相同部分相对应的过时的段。因此,在一个或多个实施例中,存储器恢复系统104可以在循环上更新快照流,这将在下面结合至图图5a至图5e进一步进行详细讨论。
66.在丢弃快照屏幕的过时的段时,附加地,存储器恢复系统104可以执行基于相对于快照流的当前重放窗口的检查点来丢弃日志更新的动作412。例如,存储器恢复系统104可以丢弃快照段的活动查看窗口之外的任何日志更新,该活动查看窗口是指快照流的第一检查点与当前时间之间的持续时间。具体地,存储器恢复系统104可以丢弃具有在日期上先于第一检查点的时间戳的任何日志更新,该第一检查点与尚未从快照流的当前版本丢弃的快照流的最不新近的段相对应。另一细节结合至图图5a至图5e通过示例的方式被提供。
67.在丢弃快照屏幕的过时的段并且从恢复映射丢弃任何过时的日志条目之后,存储器恢复系统104可以返回到基于存储器系统106的当前状态来更新快照流的动作404。如在下面将讨论的,存储器恢复系统104可以通过如下操作来迭代地更新恢复映射的快照流和对应日志条目:循环通过动作404到412任何次数,直至检测到功率损耗事件或使存储器恢复系统104恢复存储器系统106的当前状态的其他事件为止。
68.图5a至图5e图示了根据本文中所描述的一个或多个实施例的结合维护和迭代地更新快照流的存储器恢复系统104的示例实现。具体地,图5a至图5e图示了包括两个段的示例快照流,该段具有跨越两个检查点内的两个等间隔的持续时间的查看窗口。该说明通过示例而非限制的方式被提供。将理解,快照流可以包括与任何数目的检查点相对应的任何数目的段。而且,段可以与不同持续时间或不同数目的日志更新相关联。
69.图5a图示了在初始时间(t0)的初始快照流502a(例如,与图5a中所示出的示例中的当前时间(tc)相对应)。初始快照流502a包括第一段(s1)和第二段(s0),该第一段(s1)和第二段(s0)包括与存储器系统106的相应部分相对应的数据。段中的每个段可以是指来自存储器系统106的存储器的相同大小的部分。备选地,段可以是指存储器系统106的具有不同大小(例如,lba的不同范围或不同数目的存储器元件)的两个离散部分。在一个或多个实施例中,初始快照流502a表示由存储器恢复系统104最初生成的快照流(例如,在打开设备或触发捕获表示整个存储器系统106的存储器快照的其他事件时)。如图5a中所示出的,t0恢复映射504a包括初始快照流且不包括日志更新。
70.如上面所讨论的,存储器恢复系统104可以随着时间的推移连续更新快照流的部分。例如,在命中每个检查点时,存储器恢复系统104可以发起更新快照流的下一个段并继续更新快照流的段,直至命中下一个检查点为止。因此,虽然段可以与存储器系统106的固
定部分相关联,但是在一个或多个实施例中,存储器恢复系统104简单地发起更新快照流的一部分并且通过如下操作来继续更新快照流:浏览行、列或存储器系统106的其他部分,直至命中下一个检查点为止。存储器恢复系统104然后可以基于在快照流的最新近的段内捕获到的存储器系统104的数目来丢弃快照流的过时部分(和相关联的日志更新)。
71.图5b图示了经更新的快照流502b,其中当前时间(tc)是与第一检查点相对应的第一时间(t1)。如上面所讨论的,存储器恢复系统104可以在初始时间(t0)与当前时间(tc)之间生成日志更新508a,该日志更新508a包括对存储器系统106的任何更新。响应于在t1检测到第一检查点,存储器恢复系统104还可以通过丢弃与存储器系统106的第一部分相对应的第一过时的段(s1)506a作为新创建的第一段(s
11
)来更新快照流502b。如上面所提到的,存储器恢复系统104可以在初始时间(t0)与第一检查点(t1)之间连续更新快照流502b。如图5b中所示出的,t1恢复映射504b可以包括经更新的快照502b和在初始时间(t0)与当前时间(tc)(与t1对应)之间添加的日志更新。
72.存储器恢复系统104可以继续更新如图5c中所示出的快照流。具体地,图5c图示了另一经更新的快照流502c,其中当前时间(tc)是与第二检查点相对应的第二时间(t2)。如图5c中所示出的,快照流包括第二经更新的段(s
21
)以替换基于检测到第二检查点而从快照流移除的第二过时的段(s2)506b。如进一步所示出的,存储器恢复系统104可以在与前两个检查点相对应的第一时间(t1)与第二时间(t2)之间生成第二日志更新集合508b,该第二日志更新集合508b指示存储器状态的改变。如进一步所示出的,t2恢复映射504c包括经更新的快照流502c和t0与t2之间的日志更新集合(例如,快照流的当前重放窗口)。
73.如本文中所讨论的,“重放窗口”是指快照段的当前范围,其包括用于恢复存储器系统106的当前存储器状态的信息。例如,重放窗口可以包括与包括在恢复映射的当前版本内的快照流的当前版本相对应的初始检查点。如至图图5a至图5e中所示出的,重放窗口可以基于快照流的一部分被经更新的部分部分替换而在每个后续检查点处改变。其他信息在下面通过示例的方式被提供。
74.图5d图示了示出在第三时间(t3)在第三检查点之前的当前时间(tc)的示例实现。具体地,如上面结合图4所讨论的,存储器恢复系统104可以继续更新恢复映射504d以反映存储器系统106的存储器的当前状态,直至检测到后续检查点为止。因此,快照流的当前版本可以是指与上面结合图5c所讨论的相同的经更新的快照流502c,在图5c中,第二经更新的第一段(s
12
)被部分生成(或者,完全生成),但是尚未被添加到快照流的当前版本。然而,如图5d中所示出的,存储器恢复系统104可以在更新快照流之前继续生成附加日志更新512以包括在恢复映射504d的当前版本内,如下面将结合图5e所讨论的。
75.如图5e中所示出的,存储器恢复系统104可以等待更新快照流,直至当前时间(tc)对应于与第三检查点相关联的第三时间(t3)为止。在检测到第三检查点时,存储器恢复系统104可以更新恢复映射504e以包括经更新的快照流502d,该经更新的快照流502d包括第一经更新的第二段(s
21
)和第二经更新的第一段(s
12
)以替换现在过时的第一段(s
11
)506c。第二经更新的第一段(s
12
)可以与存储器系统106的与过时的第一段(s
11
)506c相同的部分相关联。
76.除了丢弃过时的段506c之外,附加地,存储器恢复系统104还可以丢弃一个或多个过时的日志更新514。具体地,如图5e中所示出的,存储器恢复系统104可以丢弃当前快照流
502d的当前重放窗口之外的任何日志更新。因此,如图5e中所示出的,存储器恢复系统104可以更新t3恢复映射504e以包括经更新的存储器流502d并且丢弃过时的日志更新514以仅包括t1与t3之间的那些日志更新(例如,在当前重放窗口内的那些日志更新)。
77.如上面结合图5d至图5e所讨论的,快照流可以包括与存储在恢复映射中的快照流的当前版本的第一当前检查点相对应的当前重放窗口和与存储器系统106的存储器的当前状态相关联的当前时间(tc)。例如,在图5d中,重放窗口可以是指初始检查点(to)(是指存储在对应恢复映射504d内的经更新的快照流502c的最不新近的检查点)与当前时间(tc)之间的时间段。在该示例中,响应于计算设备102经历了意外功率损耗事件,存储器恢复系统104可以通过标识当前存储器流502c(例如,不考虑部分生成的段510)和在恢复窗口开始时开始的所有日志更新(例如,t0与tc之间的所有日志更新)来恢复存储器的当前状态。存储器恢复系统104然后可以将所标识的日志更新508a-b、512应用于经更新的快照流502c并且恢复存储器系统106的存储器的当前状态。
78.作为结合图5e的计算设备102在第三时间(t3)(或者,在更新存储器映射之后不久)经历意外功率损耗事件的另一示例,除了从第一时间(t1)(而非初始时间(t0))开始的日志更新之外,存储器恢复系统104还可以考虑从t1检查点到当前时间(tc)的快照流,如将结合在图5d中所示出的当前时间(tc)恢复存储器状态所进行的。
79.与响应于在计划外的功率事件而丢失部分生成的存储器快照的所有进展的常规系统相比,通过连续更新快照流并且在如至图图5a至图5e中所讨论的检查点处周期性地更新对应恢复映射,存储器恢复系统104可以避免部分生成的快照的所有进展由于功率损耗事件而丢失的场景。实际上,尽管图5a至图5e图示了仅包括两个段的示例快照流,但是存储器恢复系统104可以基于对快照流的更细粒度的更新来执行对包含在恢复映射的当前版本中的信息的周期性更新。以这种方式,由于意外功率损耗事件而丢失的进展量限制于检查点之间的时间以及针对快照流迭代更新的段的频率和数目。因此,如图5d的示例中所示出的,在受益于包括在快照流的当前重放窗口内的任何段时,只有最新近的段更新的部分进展可以丢失。
80.现在转向图6至图7,这些图图示了包括用于执行恢复映射的迭代更新的一系列动作的示例流程图,该恢复映射包括多个快照段和当前日志更新集合。虽然图6至图7图示了根据一个或多个实施例的动作,但是备选实施例可以省略、添加、重新排序和/或修改图6至图7中所示出的动作中的任何动作。而且,结合关于图6至图7的单独动作或一系列动作描述的单独特征和功能性中的一个或多个单个特征和功能性可以类似地应用于本文中所描述的其他实施例和示例。图6至图7的动作可以作为方法的一部分而执行。备选地,非瞬态计算机可读介质可以包括指令,该指令在由一个或多个处理器执行时使计算设备执行图6至图7的动作。在又一些实施例中,系统可以执行图6至图7的动作。
81.图6图示了根据本文中所描述的一个或多个实施例的用于迭代地更新恢复映射的一系列示例动作600。例如,一系列动作600可以包括标识存储器映射的动作610,该存储器映射包括表示存储器系统的存储器状态的存储器快照。例如,动作610可以包括:标识具有存储器快照的恢复映射,该存储器快照包括存储器系统在与存储器快照何时被生成相关联的第一时间的存储器状态的表示。
82.如进一步所示出的,一系列动作600可以包括在第一时间与第二时间之间生成与
存储器状态的改变相关联的日志更新的动作620。例如,动作620可以包括:在第一时间与在存储器快照被生成之后的第二时间之间生成与存储器状态的改变相关联的日志更新,并且将日志更新添加到恢复映射。
83.如进一步所示出的,一系列动作600包括通过生成存储器快照的与存储器系统的一部分相对应的经更新的第一部分并替换存储器快照的与存储器系统的相同部分相对应的旧的第一部分来更新存储器快照的动作630。例如,基于在第一时间与第二时间之间生成的日志更新的数目,动作630可以包括:生成存储器快照的经更新的版本。生成存储器快照的经更新的版本可以包括:生成存储器快照的经更新的第一部分,该经更新的第一部分包括存储器系统的第一部分在第二时间的存储器状态的表示;以及用存储器快照的经更新的第一部分替换存储器快照的与存储器系统的第一部分相关联的第一部分。存储器系统的第一部分可以包括存储器系统上的存储器位置的子集,并且其中快照的第一部分包括与存储器系统上的存储器位置的子集相对应的逻辑块地址(lba)的状态数据。
84.在一个或多个实施例中,一系列动作600包括:从恢复映射丢弃任何过时的日志更新。例如,从恢复映射丢弃任何过时的日志更新可以包括:确定与生成存储器快照的第一部分相关联的时间;以及基于在日期上先于与生成存储器快照的第一部分相关联的时间的一个或多个日志更新的时间戳来丢弃与存储器系统的存储器状态的改变相关联的一个或多个日志更新。
85.在一个或多个实施例中,一系列动作600可以包括:在第二时间与第三时间之间生成与存储器状态的改变相关联的附加日志更新,并且将附加日志更新添加到恢复映射。一系列动作600还可以包括:生成存储器快照的第二经更新的版本。生成存储器快照的第二经更新的版本可以包括:生成存储器快照的经更新的第二部分,该经更新的第二部分包括存储器系统的第二部分在第三时间的存储器状态的表示;以及用存储器快照的经更新的第二部分替换存储器快照的与存储器系统的第二部分相关联的第二部分。
86.存储器快照的第一部分和存储器快照的第二部分可以是与生成存储器快照的第一部分和存储器快照的第二部分相关联的时间的存储器状态的完整表示。进一步地,生成存储器快照的第二经更新的部分还包括:从恢复映射丢弃具有相关联的时间戳的任何日志更新,该时间戳在日期上先于与存储器快照何时被生成相关联的第一时间。
87.在一个或多个实施例中,生成存储器快照的经更新的版本包括:响应于检测到对存储器系统的写入阈值次数而发起存储器快照的经更新的版本的生成。进一步地,在一个或多个实施例中,第一时间与第二时间之间的持续时间是基于对存储器系统的写入阈值次数被检测到的持续时间。
88.在一个或多个实施例中,一系列动作600包括:检测功率损耗事件(例如,在计划外的功率损耗事件)。一系列动作600还可以包括:基于存储器快照的经更新的版本和来自恢复映射的日志更新来在功率损耗事件时恢复存储器系统的当前状态。在一个或多个实施例中,存储器系统包括计算设备的易失性存储介质。进一步地,一系列动作600可以包括:将恢复映射存储在计算设备的非易失性存储介质上。在一个或多个实现中,易失性存储介质包括动态随机存取存储器(dram),并且非易失性存储介质包括一个或多个固态驱动器(ssd)。
89.图7图示了根据本文中所描述的一个或多个实施例的用于迭代地更新恢复映射的另一示例系列动作700。例如,一系列动作700包括标识存储器映射的动作710,该存储器映
射包括快照流并且具有表示存储器系统的存储器状态的多个部分的多个快照段。例如,动作710可以包括:标识包括快照流的恢复映射,该快照流包括多个快照段,其中该多个快照段包括存储器系统的存储器状态的多个部分的表示。
90.在一个或多个实施例中,多个快照段包括如在与在多个快照段中的快照段中的每个快照段被捕获的多个时间相关联的对应的定时检查点处捕获到的存储器系统上的存储器位置的子集的逻辑块地址(lba)的状态数据。进一步地,在一个或多个实施例中,定时检查点包括恢复映射的迭代更新被发起的定期间隔,其中定时检查点与多个部分中的若干部分之间的持续时间是基于可用于维护快照流的计算设备的处理资源的数量。
91.如进一步所示出的,一系列动作700包括生成与存储器系统的存储器状态的改变相关联的日志更新并将日志更新添加到存储器映射的动作720。例如,动作720可以包括:生成与存储器系统的存储器状态的改变相关联的日志更新并将日志更新添加到恢复映射。
92.如进一步所示出的,一系列动作700包括通过生成与存储器系统的相应部分相对应的新快照段并用新快照段替换最不新近的快照段来在定时检查点处迭代地更新存储器映射的动作730。例如,动作730可以包括:在多个快照段的定时检查点处迭代地更新恢复映射以生成快照流的经更新的多个快照段。更新恢复映射可以包括:针对存储器状态的一部分生成新快照段,该部分与来自快照流的最不新近的快照段相对应;以及用新快照段替换最不新近的快照段。在一个或多个实施例中,迭代地更新恢复映射包括:基于与相对于多个快照段的最不新近的定时检查点的过时的日志更新相关联的时间戳来从恢复映射丢弃任何过时的日志更新。
93.在一个或多个实施例中,一系列动作700可以包括:针对存储器系统生成与存储器状态的附加改变相关联的附加日志更新,并且将附加日志更新添加到恢复。一系列动作700还可以包括:针对存储器状态的附加部分发起附加的新快照段的生成,该附加部分与经更新的多个快照段的最不新近的快照相对应。一系列动作700还可以包括:在完成附加的新快照段的生成之前检测功率损耗事件。一系列动作700还可以包括:基于经更新的多个快照段以及在功率损耗时恢复映射内的所有日志更新来在功率损耗事件时恢复存储器系统的当前状态。
94.图8图示了可以包括在计算机系统800内的某些组件。一个或多个计算机系统800可以用于实现本文中所描述的各种设备、组件和系统。
95.计算机系统800包括处理器801。处理器801可以是通用单芯片或多芯片微处理器(例如,高级risc(精简指令集计算机)机器(arm))、专用微处理器(例如,数字信号处理器(dsp))、微控制器、可编程门阵列等。处理器801可以被称为中央处理单元(cpu)。尽管在图8的计算机系统800中仅示出了单个处理器801,但是在备选配置中,能够使用处理器的组合(例如,arm和dsp)。
96.计算机系统800还包括与处理器801电子通信的存储器803。存储器803可以是能够存储电子信息的任何电子组件。例如,存储器803可以被具体实施为随机存取存储器(ram)、只读存储器(rom)、磁盘存储介质、光存储介质、ram中的闪速存储器设备、包括在处理器中的板载存储器、可擦除编程只读存储器(eprom)、电可擦除编程只读存储器(eeprom)存储器、寄存器等,包括其组合。
97.指令805和数据807可以被存储在存储器803中。指令805可以由处理器801可执行
以实现本文中所公开的功能性中的一些或全部功能性。执行指令805可以涉及使用存储在存储器803中的数据807。本文中所描述的模块和组件的各种示例中的任何示例可以部分或全部地被实现为存储在存储器803中并由处理器801执行的指令805。本文中所描述的数据的各种示例中的任何示例都可以在存储在存储器803中并且在指令805由处理器801执行期间使用的数据807当中。
98.计算机系统800还可以包括用于与其他电子设备通信的一个或多个通信接口809。(多个)通信接口809可以基于有线通信技术、无线通信技术或两者。通信接口809的一些示例包括通用串行总线(usb)、以太网适配器、根据电气和电子工程师协会(ieee)802.11无线通信协议运行的无线适配器、无线通信适配器和红外(ir)通信端口。
99.计算机系统800还可以包括一个或多个输入设备811和一个或多个输出设备813。输入设备811的一些示例包括键盘、鼠标、麦克风、遥控设备、按钮、操纵杆、轨迹球、触摸板和光笔。输出设备813的一些示例包括扬声器和打印机。计算机系统800中通常包括的一种特定类型的输出设备是显示设备815。与本文中所公开的实施例一起使用的显示设备815可以利用任何合适的图像投影技术,诸如液晶显示器(lcd)、发光二极管(led)、气体等离子体、电致发光等。显示控制器817还可以被提供用于将存储在存储器803中的数据807转换为在显示设备815上示出的文本、图形和/或运动图像(视情况而定)。
100.计算机系统800的各种组件可以通过一个或多个总线耦接在一起,这些总线可以包括电源总线、控制信号总线、状态信号总线、数据总线等。出于清楚起见,各种总线在图8中被图示为总线系统819。
101.本文中所描述的技术除非明确地被描述为以特定方式实现,否则可以利用硬件、软件、固件或其任何组合实现。被描述为模块、组件等的任何特征也可以在集成逻辑设备中一起实现,或者作为离散但可互操作的逻辑设备单独实现。如果利用软件来实现,那么这些技术可以至少部分地由包括指令的非瞬态处理器可读存储介质实现,这些指令在由至少一个处理器执行时执行本文中所描述的方法中的一种或多种方法。指令可以被组织成例程、程序、对象、组件、数据结构等,其可以执行特定任务和/或实现特定数据类型并且可以在各种实施例中根据需要进行组合或分布。
102.在不脱离权利要求书的范围的情况下,本文中所描述的方法的步骤和/或动作可以彼此互换。换言之,除非为了正确操作所描述的方法需要步骤或动作的特定顺序,否则可以在不脱离权利要求书的范围的情况下修改特定步骤和/或动作的顺序和/或使用。
103.术语“确定”涵盖各种动作,因此,“确定”可以包括计算、测算、处理、导出、调查、查找(例如,在表格、数据库或其他数据结构中查找)、确定等。而且,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。而且,“确定”可以包括解决、选择、选取、建立等。
104.术语“包括”、“包含”以及“具有”旨在是包括性的,并且意味着可以存在除所列元件之外的附加元件。附加地,应理解,对本公开的“一个实施例”或“实施例”的引用不旨在被解释为排除还包含所叙述的特征的附加实施例的存在。例如,关于本文中的实施例描述的任何元件或特征可以与本文中所描述的任何其他实施例的任何元件或特征在兼容的情况下组合。
105.本公开可以在不脱离其精神或特点的情况下以其他特定形式具体实施。所描述的
实施例将被视为说明性的而非限制性的。因此,本公开的范围由随附权利要求书而非前述描述指示。在权利要求书的含义和等效范围内的改变都应包含在其范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献