使用非易失性存储器的崩溃恢复的制作方法

文档序号:9925294阅读:417来源:国知局
使用非易失性存储器的崩溃恢复的制作方法
【专利说明】使用非易失性存储器的崩溃恢复
[0001 ] 背景
[0002]应用常常使用易失性存储器来高效地操作。在操作期间,数据从机械盘中读入到存储器中并且可能还以被称为“页”的不同大小的组成部分被写回到机械盘。缓冲池是在存储器块(诸如页)被从机械盘中读出或正在存储器中被修改时被用于高速缓存各块的存储器。缓冲池通过允许从存储器而不是从机械盘中存取数据而改善了性能。仅仅作为示例,数据库常常使用缓冲池以便于对存储器中的各页进行管理和索引。
[0003]当系统操作时,系统将随机存取工作页集。随着时间流逝,当系统操作时,该工作页集将改变,这常常还导致该工作页集的大小的改变。如果该工作页集大于随机存取存储器(RAM)中的可用缓冲池,则系统从机械盘执行多出来的随机存取操作。
[0004]机械盘由机械旋转磁介质来构造,其中磁盘头扫过磁盘来读取和存取数据。顺序读/写是更有效率的,因为它们不涉及磁盘头的机械扫掠,而仅仅涉及从磁盘头和控制器电路到存储器的电子传输延迟。因此,机械盘操作对于顺序操作而言高效得多,而对机械盘进行随机存取操作可能显著地降低系统性能。随着工作页集变得大于缓冲池,因此页不得不从缓冲池中被移出并且使用随机存取操作来写入磁盘。因此,随着工作集变得大于缓冲池,系统性能降级。
[0005]简要概述
[0006]本文中描述的至少一个实施例涉及计算系统的崩溃恢复,该计算系统包括易失性存储器、中间非易失性存储器、以及非易失性存储,该易失性存储器由于崩溃而丢失了内容,该中间非易失性存储器与该易失性存储器一起构成计算系统的活跃存储器。恢复通过标识在崩溃时处于易失性存储器中的页来进行。对于这些页中的每一个页,恢复确定将页从中间非易失性存储还是存储中恢复到易失性存储器中,并且随后执行恢复。在其中计算系统是支持事务的一些实施例中,恢复还标识崩溃时活跃的事务,并且撤消那些事务中的每一个事务的动作。
[0007]对于中间非易失性存储器的存取速度可比对于诸如磁盘或旋转介质存储之类的存储的存取速度快得多。例如,中间非易失性存储器可以是存储类存储器(SCM),诸如固态硬盘(SSD)。因此,在其中要恢复的大部分页是从中间非易失性存储器而不是存储中恢复的情况下,恢复时间可被缩短,甚至可能是大幅缩短。
[0008]本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
[0009]附图简述
[0010]为了描述能够获得上述和其它优点和特征的方式,各实施例的更具体的描述将通过参考各附图来呈现。可以理解,这些附图只描绘了示例实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释各实施例,在附图中:
[0011]图1例示出可在其中采用本文描述的一些实施例的计算系统;
[0012]图2例示出包括易失性存储器、非易失性存储以及中间非易失性存储器的存储器分层结构;
[0013]图3例示出与具有存储器分层结构的计算系统的恢复相关联的示例通用流程;
[0014]图4例示出用于从计算系统的崩溃中恢复的方法的流程图,在该崩溃中,易失性存储器的内容丢失;
[0015]图5例示出在系统是事务性系统的上下文中的用于从计算系统的崩溃中恢复的更具体的方法的流程图,在该崩溃中,易失性存储器的内容丢失;
[0016]图6例示出用于自动标识崩溃时曾在易失性存储器中的多个页并且自动标识在崩溃时活跃的事务的方法的流程图;以及
[0017]图7例示出示例分析阶段、重做阶段和撤消阶段的上下文中的日志的时间线。
[0018]详细描述
[0019]根据本文中描述的各实施例,描述了计算系统的崩溃恢复。计算系统包括易失性存储器、中间非易失性存储器、以及非易失性存储,其中易失性存储器由于崩溃而丢失了内容,并且中间非易失性存储器与该易失性存储器一起构成计算系统的活跃存储器。恢复通过标识在崩溃时处于易失性存储器中的页来进行。对于这些页中的每一个页,恢复确定将页从中间非易失性存储器还是存储中恢复到易失性存储器中,并且随后执行恢复。在其中中间非易失性存储器的存取速度可比存储的存取速度快得多、并且大部分页是从中间非易失性存储器中恢复的实施例中,端对端恢复时间可被缩短。端对端恢复时间包括崩溃恢复时间以及用于将系统恢复到稳定执行的重启或上手时间。首先,将参考图1来描述关于计算系统的一些引导性讨论。随后,关于恢复的各实施例将参考图2到7来描述。
[0020]计算系统现在越来越多地采取多种多样的形式。例如,计算系统可以是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统或甚至常规上不被认为是计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包含至少一个物理且有形的处理器以及其上能具有可由处理器执行的计算机可执行指令的物理且有形的存储器。存储器可以采取任何形式,并可以取决于计算系统的性质和形式。计算系统可以分布在网络环境中,并可包括多个组分计算系统。
[0021]如图1所示,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,该物理系统存储器可以是易失性的、非易失性的、或两者的某种组合。计算系统100还包括非易失性存储器或存储106。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如此处所使用的那样,术语“模块”或“组件”可以指在计算系统上执行的软件对象或例程。此处所描述的不同组件、模块、引擎以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。
[0022]在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可以被存储在计算系统100的存储器104和/或存储106中。计算系统100还可包含允许计算系统100例如通过网络110与其他消息处理器通信的通信信道108。
[0023]本文中描述的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本文中描述的各实施例包括一种或多种用于卸载或存储计算机可执行指令和/或数据结构物理和其它计算机可读介质形式的计算机程序产品。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。
[0024]计算机存储介质包括RAM、R0M、EEPR0M、CD_R0M或其他光盘存储、磁盘存储或其他磁存储设备、或者可用于存储以计算机可执行指令或数据结构的形式的期望程序代码手段且可由通用或专用计算机访问的任何其他有形介质。
[0025]“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1