CN105706061A - 使用非易失性存储器的崩溃恢复 - Google Patents

使用非易失性存储器的崩溃恢复 Download PDF

Info

Publication number
CN105706061A
CN105706061A CN201480060820.8A CN201480060820A CN105706061A CN 105706061 A CN105706061 A CN 105706061A CN 201480060820 A CN201480060820 A CN 201480060820A CN 105706061 A CN105706061 A CN 105706061A
Authority
CN
China
Prior art keywords
page
nonvolatile memory
volatile memory
action
memory
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
Application number
CN201480060820.8A
Other languages
English (en)
Other versions
CN105706061B (zh
Inventor
D·P·布拉德肖
P·瑟利斯
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing 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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105706061A publication Critical patent/CN105706061A/zh
Application granted granted Critical
Publication of CN105706061B publication Critical patent/CN105706061B/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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/1441Resetting or repowering
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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/1474Saving, restoring, recovering or retrying in transactions
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

描述了在包括易失性存储器(它因崩溃而丢失了内容)、中间非易失性存储器、以及非易失性存储的计算系统的上下文中的计算系统的崩溃恢复,其中中间非易失性存储器(与该易失性存储器一起)构成计算系统的活跃存储器。恢复通过标识在崩溃时处于易失性存储器中的页来进行。对于这些页中的每一个页,恢复确定将页从中间非易失性存储器还是存储中恢复到易失性存储器中,并且随后执行恢复。在其中中间非易失性存储器的存取速度可比存储的存取速度快得多、并且大部分页是从中间非易失性存储器中恢复的实施例中,恢复时间可被缩短。

Description

使用非易失性存储器的崩溃恢复
背景
应用常常使用易失性存储器来高效地操作。在操作期间,数据从机械盘中读入到存储器中并且可能还以被称为“页”的不同大小的组成部分被写回到机械盘。缓冲池是在存储器块(诸如页)被从机械盘中读出或正在存储器中被修改时被用于高速缓存各块的存储器。缓冲池通过允许从存储器而不是从机械盘中存取数据而改善了性能。仅仅作为示例,数据库常常使用缓冲池以便于对存储器中的各页进行管理和索引。
当系统操作时,系统将随机存取工作页集。随着时间流逝,当系统操作时,该工作页集将改变,这常常还导致该工作页集的大小的改变。如果该工作页集大于随机存取存储器(RAM)中的可用缓冲池,则系统从机械盘执行多出来的随机存取操作。
机械盘由机械旋转磁介质来构造,其中磁盘头扫过磁盘来读取和存取数据。顺序读/写是更有效率的,因为它们不涉及磁盘头的机械扫掠,而仅仅涉及从磁盘头和控制器电路到存储器的电子传输延迟。因此,机械盘操作对于顺序操作而言高效得多,而对机械盘进行随机存取操作可能显著地降低系统性能。随着工作页集变得大于缓冲池,因此页不得不从缓冲池中被移出并且使用随机存取操作来写入磁盘。因此,随着工作集变得大于缓冲池,系统性能降级。
简要概述
本文中描述的至少一个实施例涉及计算系统的崩溃恢复,该计算系统包括易失性存储器、中间非易失性存储器、以及非易失性存储,该易失性存储器由于崩溃而丢失了内容,该中间非易失性存储器与该易失性存储器一起构成计算系统的活跃存储器。恢复通过标识在崩溃时处于易失性存储器中的页来进行。对于这些页中的每一个页,恢复确定将页从中间非易失性存储还是存储中恢复到易失性存储器中,并且随后执行恢复。在其中计算系统是支持事务的一些实施例中,恢复还标识崩溃时活跃的事务,并且撤消那些事务中的每一个事务的动作。
对于中间非易失性存储器的存取速度可比对于诸如磁盘或旋转介质存储之类的存储的存取速度快得多。例如,中间非易失性存储器可以是存储类存储器(SCM),诸如固态硬盘(SSD)。因此,在其中要恢复的大部分页是从中间非易失性存储器而不是存储中恢复的情况下,恢复时间可被缩短,甚至可能是大幅缩短。
本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图简述
为了描述能够获得上述和其它优点和特征的方式,各实施例的更具体的描述将通过参考各附图来呈现。可以理解,这些附图只描绘了示例实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释各实施例,在附图中:
图1例示出可在其中采用本文描述的一些实施例的计算系统;
图2例示出包括易失性存储器、非易失性存储以及中间非易失性存储器的存储器分层结构;
图3例示出与具有存储器分层结构的计算系统的恢复相关联的示例通用流程;
图4例示出用于从计算系统的崩溃中恢复的方法的流程图,在该崩溃中,易失性存储器的内容丢失;
图5例示出在系统是事务性系统的上下文中的用于从计算系统的崩溃中恢复的更具体的方法的流程图,在该崩溃中,易失性存储器的内容丢失;
图6例示出用于自动标识崩溃时曾在易失性存储器中的多个页并且自动标识在崩溃时活跃的事务的方法的流程图;以及
图7例示出示例分析阶段、重做阶段和撤消阶段的上下文中的日志的时间线。
详细描述
根据本文中描述的各实施例,描述了计算系统的崩溃恢复。计算系统包括易失性存储器、中间非易失性存储器、以及非易失性存储,其中易失性存储器由于崩溃而丢失了内容,并且中间非易失性存储器与该易失性存储器一起构成计算系统的活跃存储器。恢复通过标识在崩溃时处于易失性存储器中的页来进行。对于这些页中的每一个页,恢复确定将页从中间非易失性存储器还是存储中恢复到易失性存储器中,并且随后执行恢复。在其中中间非易失性存储器的存取速度可比存储的存取速度快得多、并且大部分页是从中间非易失性存储器中恢复的实施例中,端对端恢复时间可被缩短。端对端恢复时间包括崩溃恢复时间以及用于将系统恢复到稳定执行的重启或上手时间。首先,将参考图1来描述关于计算系统的一些引导性讨论。随后,关于恢复的各实施例将参考图2到7来描述。
计算系统现在越来越多地采取多种多样的形式。例如,计算系统可以是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统或甚至常规上不被认为是计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包含至少一个物理且有形的处理器以及其上能具有可由处理器执行的计算机可执行指令的物理且有形的存储器。存储器可以采取任何形式,并可以取决于计算系统的性质和形式。计算系统可以分布在网络环境中,并可包括多个组分计算系统。
如图1所示,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,该物理系统存储器可以是易失性的、非易失性的、或两者的某种组合。计算系统100还包括非易失性存储器或存储106。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如此处所使用的那样,术语“模块”或“组件”可以指在计算系统上执行的软件对象或例程。此处所描述的不同组件、模块、引擎以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。
在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可以被存储在计算系统100的存储器104和/或存储106中。计算系统100还可包含允许计算系统100例如通过网络110与其他消息处理器通信的通信信道108。
本文中描述的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本文中描述的各实施例包括一种或多种用于卸载或存储计算机可执行指令和/或数据结构物理和其它计算机可读介质形式的计算机程序产品。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或者可用于存储以计算机可执行指令或数据结构的形式的期望程序代码手段且可由通用或专用计算机访问的任何其他有形介质。
“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可以包括可用于携带计算机可执行指令或数据结构形式的期望程序代码装置并可被通用或专用计算机访问的网络和/或数据链路。上述的组合应当也被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码资料可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可以在网络接口模块(例如,“NIC”)内的RAM中被缓冲,然后最终被传输至计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。
计算机可执行指令包括例如当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能(诸如本文中描述的功能)的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
图2例示出包括易失性存储器201、非易失性存储203以及中间非易失性存储器202的存储器分层结构200。非易失性存储器202和非易失性存储203用较厚的平行条纹边界来示出,表示它们的内容通常将在断电中存活。然而,易失性存储器201的内容依赖于电力以便于刷新其内容,因此易失性存储器201的内容在断电之际将会丢失。例如,如果存储器分层结构200存在于图1的计算系统100中,则易失性存储器201将是图1的存储器104的易失性部分的示例,中间易失性存储器202将是图1的存储器104的非易失性部分的示例,而非易失性存储203将是图1的存储106的示例。
中间易失性存储器202可包括存储器分层结构200中的一个单层。然而,在一些实施例中,在存储器分层结构200中可以有不止一个中间非易失性存储器层,如省略号204所表示的。例如,可以有一部分非易失性存储器202,其具有比具有较低存取速度(即,在存储器分层结构中较低)的非易失性存储器203的另一部分更快的存取速度(即在存储器分层结构中较高)。
易失性存储器201和非易失性存储器202可一起构成计算系统的系统存储器211,系统存储器211包括可由计算系统的处理器寻址的地址范围。系统存储器211包括计算系统较频繁地操作的页的工作集210。该工作集210表示正由计算系统活跃地使用以便执行其当前功能的数据和指令。该工作集210具有拥有更多随机存取的特性。易失性存储器201具有高效的随机存取速度(因此被称为“随机存取存储器”或“RAM”)。然而,非易失性存储器202在随机存取下也是高效的,尤其是与存储203相比,存储203较佳地适用于顺序存取。因此,非易失性存储器202和易失性存储器201一起充当一个大的随机存取存储器,并且一起提供与比单单采用易失性存储器201所可能的大得多的工作集210一起工作的能力。
作为一个示例,中间非易失性存储器202可以是存储类存储器,诸如固态盘。术语“存储类存储器”是本领域公知的,因此本描述纳入的是该术语的公知定义。存储类存储器具有以下性质。
1.该存储器是固态的;
2.该存储器是可随机存取的;
3.该存储器具有比机械盘低的等待时间;
4.该存储器具有比机械盘大的I/O吞吐量,因为随机存取是固态电子过程而不采用磁盘头的机械移动。
另外,在用作为图2的非易失性存储器202时,存储类存储器是非易失性的。
固态盘是一类存储类存储器,并且作为一种固态设备而与机械盘相区分。固态盘另外还具有以下性质,这些性质也可被包括在可与本文中描述的原理一起使用的其它类型的存储类存储器中的一些(但可能不是所有)中:
1.高粒度随机存取。
2.比DRAM更大的容量(容量是磁盘容量的量级)。
3.比DRAM更高的晶体管密度,单位面积(体积)存储更多。
4.比旋转介质和DRAM更低的功耗和耗散。
5.在SSD和盘之间通常不存在直接存储器存取。相反,数据必须流经DRAM到达盘。
其它类型的存储类存储器包括相变存储器(PCM)、氧化亚铁、以及记忆电阻,这些存储器潜在地具有比存储类磁盘更低的等待时间和更好的存取粒度。然而,本文中描述的原理甚至不限于目前已有的存储类存储器技术,而是还可被延伸至应用于将来开发出的存储类存储器技术或者除存储类存储器以外的任何次级存储器。
再次参照图2,在本文中描述的各实施例中,存储器分层结构以被称为“页”的数据段来操作。在本说明书和权利要求书中,“页”被定义为作为一个整体在系统存储器211和存储203、和/或在易失性存储器201和非易失性存储器202之间交换的任何数据群。此外,虽然并非必需,系统存储器211可具有升级和逐出机制,通过该机制,被更频繁使用的页趋向于被加载到存储器分层结构中的更高处,而较不频繁使用的页趋向于被逐出到存储器分层结构中的较低层级。在一些示例中,当页被从非易失存储器202读入到易失性存储器201中时,该页的副本被保留在非易失性存储器202中。此外,在一些情况下,当页被从存储203读入到非易失性存储器202或易失性存储器201中时,该页的副本被保留在存储203中。
图3例示出与具有存储器分层结构200的计算系统100的恢复相关联的示例通用流程300。在断电之后启动(启动301)之际,计算系统进入初始化阶段302,随后是分析阶段311,随后是重做阶段312,并且在事务性系统中,随后是撤消阶段313。
此时,注意到传统的恢复算法也使用分析、恢复、以及重做阶段。例如,恢复和隔离利用语义算法(此后称为“ARIES”)是一种包括这类阶段的恢复算法。然而,ARIES是为其中系统存储器通过将页从存储读回到存储器中来完全重建的环境中的数据库恢复而设计的。本文中描述的原理构建在ARIES之上并且通过将页从非易失性存储器202以及从存储203中恢复到易失性存储器201来缩短恢复时间。事实上,如果正常的转发处理被进一步修改以包括非易失性存储器202中的快照(也称为“检查点”),则恢复时间可被进一步缩短,尤其是在对于非易失性存储器202的快照是频繁的、而且对存储203的快照更频繁的情况下。这一检查点技术是一种减小日志大小的优化技术。检查点技术因此减少了在崩溃恢复期间不得不执行的重做和撤消动作的数目。
在描述以下的进一步的恢复细节时将会频繁地参照图3。图3是一个总的示图,但是关于在哪个阶段可执行什么功能的更多细节将在以下以进一步的细节来概括。在以下描述的恢复细节中,正常处理被修改为包括两种类型的快照:对于存储203的较不频繁的快照、以及对于非易失性存储器202的新的更频繁的快照。此外,ARIES算法的分析阶段被修改为形成图3的分析阶段311。另外,ARIES算法的重做阶段被修改为形成图3的重做阶段312。
图4例示出用于从计算系统的崩溃中恢复的方法400的流程图,在该崩溃中,易失性存储器的内容丢失。方法400可以在具有存储器分层结构200的计算系统100的上下文中执行,因此方法400将频繁参照图1和2来描述。此外,恢复可按照图3的通用流程程300执行,因此方法400还将频繁参照图3来描述。
方法400包含自动标识在崩溃时处于易失性存储器中的页(动作401)。这些被标识的页也将是要被恢复回易失性存储器201中以便系统恢复的页。参照图2,回忆起非易失性存储器202和非易失性存储203的内容被保持,尽管计算系统的电力中断。然而,易失性存储器201需要电力以便维持其内容。相应地,在易失性存储器201中的所有页在电力中断时丢失。参照图3,在以下提供的具体示例中,对崩溃时处于易失性存储器中的页的标识可在分析阶段311期间执行。
对于在崩溃时处于易失性存储器中的这些页中的每一个页,框410的上下文被执行。具体地,系统自动确定页的恢复版本的来源(动作411)。换言之,系统确定是从计算系统的存储203还是非易失性存储器202恢复该页。恢复来源可以是存储203,就像在诸如ARIES恢复之类的传统恢复机制中一样。
然而,与传统恢复机制不同,恢复来源也可以是中间非易失性存储器202。当恢复版本位于中间非易失性存储器202中的情况下,如果有多个存储器等级的中间非易失性存储器202,系统还可确定要从哪个存储器等级的中间非易失性存储器202加载页。参照图3,在以下提供的详细示例中,对恢复来源的标识可在分析阶段311中被执行。
对于每一个要被恢复的页,该页随后从恢复来源加载到易失性存储器中(动作412)。例如,如果页的恢复版本位于非易失性存储器202中,则该页将从非易失性存储器202加载到易失性存储器201中。另一方面,如果页的恢复版本位于存储203中,则该页将从存储203加载到易失性存储器201中。在一些示例中,在正常操作中,当页被从非易失存储器202读入到易失性存储器201中时,该页的副本被保留在非易失性存储器202中。在这种情况下,大部分恢复的页可从非易失性存储器202而不是存储203中恢复。因此,由于从非易失性存储器202的随机存取速度比从存储203的快得多,因此这显著加快了恢复时间。参照图3,在以下提供的具体示例中,将页从非易失性存储器202或存储203中加载可以是重做阶段312的一部分。
可选地,系统构造映射(动作413),该映射为在中间非易失性存储器内具有恢复版本的每一个页标识每一个页的恢复版本在中间非易失性存储器内的位置。参照图3,这可在初始化阶段302期间被执行。从恢复来源中加载页(动作412)使用这一映射来找出其恢复版本位于中间非易失性存储器内的每一个页的恢复版本的位置。一旦在崩溃之前存在于易失性存储器201中的所有页被从它们各自的恢复来源加载回到易失性存储器201中,易失性存储器201就重新获得了其在崩溃时所具有的页。
图5例示出在系统是事务性系统的上下文中的用于从计算系统的崩溃中恢复的更具体的方法500的流程图,在该崩溃中,易失性存储器的内容丢失。方法500是图4的方法400的详细示例,但包括一些附加动作。相应地,方法400的动作401、410、412和413被再次在图5内例示出。
在事务性系统中,系统确定崩溃时哪些事务被准备(动作511)。参照图3,在以下的示例中,对待决事务的标识可在分析阶段311期间被执行。系统随后在将页从恢复来源加载到易失性存储器中(动作412)之前准备曾在崩溃时被准备的每一个事务(动作512)。参照图3,对事务的准备可被执行作为分析阶段311的一部分。
可存在可能已被提交的事务。对于这些已被提交的事务的改变已被记录在日志中,但是受影响的页可能还未被送出到存储203。在分析阶段之后,在重做阶段期间,具有旧的和未经更新的数据的这些页的旧版本被读回易失性存储器201中。重做阶段从特定页的倒数第二个检查点开始对页重新应用这些改变。在重做阶段结束时,将会对那些页提交所有的改变,但是对于未被提交的事务的改变也会被应用于那些页。因此,需要撤消阶段,该阶段逆转对于未被提交的事务的改变,从而将系统崩溃之前所有活跃的页带回一致的状态。
对于崩溃时活跃(即未被提交)的事务,那些事务应当因为该崩溃而失败,以便于将系统带到事务上一致的状态。相应地,系统标识崩溃时活跃的事务(动作521)。参照图3,在以下提供的详细示例中,对活跃事务的标识可作为分析阶段311的一部分来进行。系统随后在所有页被恢复到易失性存储器(动作412)之后撤消每一个活跃事务的所有动作(动作522)。参照图3,在以下提供的详细示例中,对这类事务的撤消可作为撤消阶段313的一部分来执行。
图6例示出用于自动标识崩溃时曾在易失性存储器中的多个页并且自动标识在崩溃时活跃的事务的方法600。方法600表示图4和5的动作401(在标识出页在崩溃时处于易失性存储器中的情况下)以及图5的动作521(在标识出事务在崩溃时活跃的情况下)的一个示例。在以下提供的详细示例中,方法600可在分析阶段311期间被执行。
系统标识被转储清除到非易失性存储中的日志的最后一个日志序列号(动作601),并且随后从这一最后一个转储清除的日志序列号开始顺序地审阅日志的日志条目(动作602)。基于对日志条目的分析,系统标识崩溃时处于易失性存储器中的页(动作603),并且还标识在崩溃时活跃的事务(动作604)。
图7在日志时间线710的上下文中例示出三个阶段,包括分析阶段720、重做阶段730以及撤消阶段740。图7的分析阶段720、重做阶段730以及撤消阶段740分别是图3的分析阶段311、重做阶段312以及撤消阶段313的示例。
当计算系统正常操作时,计算系统维护重大事件的日志。例如,在图7中,计算系统记录了活跃事务的开始、检查点何时进行、一个页何时变脏(即被写入系统存储器211中而没有被写入存储203)等等,以及其他。当一个事件被写入到日志中时,该事件被分派某一类型的标识,其中事件的顺序可基于所分派的标识来推导。例如,标识可以是日志序列号,其中日志序列号对于记录的每一个事件递增。因此,日志中较晚的事件比日志中较早的事件具有更大的日志序列号。
在图7的示例实施例中,计算系统还将某些信息项写入到可在引导时期间访问的一部分存储中。例如,信息可被写入到计算系统的引导块中。该信息包括最后一个检查点的日志序列号,以及从系统存储器211转储清除到存储203中的最后一个页文件的全局唯一标识符。该页文件包括非易失性存储器202内包括的所有页。该全局唯一标识符在每一次页文件中的页在非易失性存储器202中被改变(例如,每当页文件被创建、删除、用新的版本格式化、或任何其它更改)时被改变。
在这一实施例中,分析阶段720具有多个功能,包括标识1)重做阶段730应当在日志中的什么点处开始、2)什么页需要被重做(即,被加载到易失性存储器201中)、3)崩溃时什么事务是活跃的、以及4)崩溃时什么事务被准备。
在分析阶段720中,日志被扫描以标识需要被加载到非易失性存储器中的页。为此,分析首先确定从哪里开始向前扫描日志。非易失性存储器202中的页文件的全局唯一标识符与转储清除到存储203中的最后一个页文件的全局唯一标识符作比较。如果不存在匹配,则日志从对存储203的倒数第二次快照开始扫描,这很像在转储ARIES恢复期间所执行的一样。
然而,如果存在匹配,这意味着非易失性存储器202内的页文件是有效的。相应地,对于非易失性存储器202的快照可被用于执行恢复。相应地,在对非易失性存储器202的倒数第二次扫描处开始向前扫描(以标识什么页要被加载到易失性存储器201中)。因此,在这一情况下,由于非易失性存储器202在正常前向处理期间被更频繁地执行,因此这意味着该日志可从晚得多的日志序列号开始扫描。由于对非易失性存储器202的更频繁的快照而导致较少的日志需要被扫描、以及要被恢复到易失性存储器201中的更多页可从较快存取的非易失性存储器中被抽取的事实意味着恢复要快得多。需要注意,尽管可使用来自非易失性存储器的快照,但是如果对于存储203的检查点发生在对于非易失性存储器202的任何检查点之后的话,使用对于存储203的检查点也是可能的(但是较少,因为非易失性存储器202的检查点相对频繁)。
作为分析阶段720的一部分,通常与分析阶段720相关联的处理也可被执行。例如,可标识活跃事务,标识重做阶段730的起始点,以及标识活跃的事务或标识崩溃时被准备的事务。
此时,在准备从紧接在这一检查点712之后的LSN开始向前扫描日志期间,系统中所有的事务被添加到活跃事务列表。另外,构造了脏页表,该表最初在扫描开始时是空的。脏页表的最终终点是脏页表包括最小日志序列号大于从引导块中读出的最后转储清除到日志的日志序列号(即minRecoveryLSN)的所有页。
脏页表还指示页的最近版本位于何处、其是否在非易失性存储器202上或者其是否在存储203上。
在重做阶段730中,在分析阶段720中被标识的所有被准备的事务首先被准备。随后,从脏页表中的最老脏页(在图7中被表示为元素714)开始的所有页从分析阶段720中标识的合适位置中被加载。这可根据ARIES恢复的正常重做阶段来执行,除了现在要被加载到易失性存储器中的每一个页的合适来源可能是存储203但更可能是非易失性存储器202。再次,由于从非易失性存储器202的随机存取加载快得多,因此这显著地加快了恢复。传统恢复主要涉及用于从磁盘介质检索各页的随机存取以及对于日志和日记文件的顺序扫描。相反,使用本文中描述的原理,由于大部分或所有的页的工作集可能在非易失性RAM中,因此在恢复期间对页的请求更可能是指向非易失性固态存储器的随机存取。这类固态存储器在处理随机存取页请求方面比磁盘存储好得多。因此,使用本文中描述的原理,重做阶段高效得多。
在重做阶段740中,日志710从日志的末尾(元素716)开始反向扫描,直到最老的活跃事务的开头(元素711)。对于作为活跃事务的一部分的任何所记录的动作,那些动作被撤消。
因此,描述了用于从计算系统崩溃中恢复的有效、高效、并且快速的机制。本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

Claims (10)

1.一种用于包括易失性存储器、非易失性存储、以及中间非易失性存储器的计算系统中的从所述计算系统的崩溃中恢复的方法,在所述崩溃中,所述易失性存储器的内容丢失,所述方法包括以下动作:
自动标识在所述崩溃时处于所述易失性存储器中的多个页的动作;
对于在所述崩溃时处于所述易失性存储器中的所述多个页中的每一个页,执行以下动作:
自动确定所述页的恢复版本的恢复来源的动作,其中所述恢复来源是所述非易失性存储或所述中间非易失性存储器;以及
将所述页从所述恢复来源加载到所述易失性存储器中的动作。
2.如权利要求1所述的方法,其特征在于,所述自动确定的动作使用对于所述中间非易失性存储器的一个或多个检查点来执行。
3.如权利要求2所述的方法,其特征在于,对于所述中间非易失性存储器的检查点比对所述非易失性存储的检查点更频繁。
4.如权利要求1所述的方法,其特征在于,所述自动确定的动作导致确定所述多个页中的大部分页具有对应于所述中间非易失性存储器的恢复来源。
5.根据权利要求1所述的方法,其特征在于,进一步包括:
自动构造映射的动作,所述映射为在所述中间非易失性存储器内具有恢复版本的每一个页标识每一个页的恢复版本在所述中间非易失性存储器内的位置。
6.如权利要求1所述的方法,其特征在于,所述中间非易失性存储器在随机存取操作方面比所述非易失性存储更有效率。
7.如权利要求1所述的方法,其特征在于,所述中间非易失性存储器具有不止一个存储器等级。
8.如权利要求1所述的方法,其特征在于,自动标识在崩溃时处于所述易失性存储器中的多个页的动作包括以下动作:
标识转储清除到所述非易失性存储中的日志的最后日志序列号的动作;
从转储清除到所述日志的所述最后日志序列号顺序地审阅所述日志的日志条目的动作,其中在崩溃时处于所述易失性存储器中的所述多个页是基于所述顺序审阅来标识的;以及
基于所述顺序审阅标识在崩溃时活跃的事务的动作。
9.一种包括在具有存储于其上的计算机可执行指令的一个或多个计算机可读存储介质的计算机程序产品,所述计算机可执行指令在计算系统重启之后由所述计算系统的一个或多个处理器执行时,使所述计算系统执行一种用于从崩溃中恢复的方法,所述方法包括:
标识要被恢复到所述计算系统的易失性存储器中以便从所述崩溃中恢复的多个页;
对于要被恢复到所述易失性存储器中的所述多个页中的每一个页,执行以下动作:
确定是从所述计算系统的非易失性存储还是中间非易失性存储器恢复所述页;以及
将所述页从经确定的所述非易失性存储或所述中间非易失性存储器加载到所述易失性存储器。
10.如权利要求9所述的计算机程序产品,其特征在于,所述中间非易失性存储器是存储类存储器,并且所述中间非易失性存储器是固态盘。
CN201480060820.8A 2013-10-31 2014-10-27 使用非易失性存储器的崩溃恢复 Active CN105706061B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/069,028 2013-10-31
US14/069,028 US9558080B2 (en) 2013-10-31 2013-10-31 Crash recovery using non-volatile memory
PCT/US2014/062313 WO2015065863A2 (en) 2013-10-31 2014-10-27 Crash recovery using non-volatile memory

Publications (2)

Publication Number Publication Date
CN105706061A true CN105706061A (zh) 2016-06-22
CN105706061B CN105706061B (zh) 2019-01-08

Family

ID=51871309

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480060820.8A Active CN105706061B (zh) 2013-10-31 2014-10-27 使用非易失性存储器的崩溃恢复

Country Status (5)

Country Link
US (2) US9558080B2 (zh)
EP (1) EP3063631B1 (zh)
CN (1) CN105706061B (zh)
BR (1) BR112016007142B1 (zh)
WO (1) WO2015065863A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111435305A (zh) * 2019-01-15 2020-07-21 爱思开海力士有限公司 存储装置、控制器及操作存储装置的方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101676932B1 (ko) * 2012-03-02 2016-11-16 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 멀티-레벨 셀을 사용하여 버전화되는 메모리들
US9558080B2 (en) * 2013-10-31 2017-01-31 Microsoft Technology Licensing, Llc Crash recovery using non-volatile memory
US10402259B2 (en) * 2015-05-29 2019-09-03 Nxp Usa, Inc. Systems and methods for resource leakage recovery in processor hardware engines
WO2016204529A1 (ko) * 2015-06-16 2016-12-22 한양대학교 산학협력단 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
US10296418B2 (en) * 2016-01-19 2019-05-21 Microsoft Technology Licensing, Llc Versioned records management using restart era
US9952931B2 (en) 2016-01-19 2018-04-24 Microsoft Technology Licensing, Llc Versioned records management using restart era
US9858151B1 (en) 2016-10-03 2018-01-02 International Business Machines Corporation Replaying processing of a restarted application
EP3364329B1 (en) * 2017-02-21 2023-07-26 Mastercard International Incorporated Security architecture for device applications
KR20180126921A (ko) * 2017-05-19 2018-11-28 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN108958959B (zh) * 2017-05-18 2022-04-12 北京京东尚科信息技术有限公司 检测hive数据表的方法和装置
KR102485812B1 (ko) * 2017-12-19 2023-01-09 에스케이하이닉스 주식회사 메모리 시스템과 메모리 시스템의 동작방법 및 메모리 시스템을 포함하는 데이터 처리 시스템
US10776208B2 (en) 2018-07-18 2020-09-15 EMC IP Holding Company LLC Distributed memory checkpointing using storage class memory systems
US11188516B2 (en) 2018-08-24 2021-11-30 Oracle International Corproation Providing consistent database recovery after database failure for distributed databases with non-durable storage leveraging background synchronization point
US11099948B2 (en) 2018-09-21 2021-08-24 Microsoft Technology Licensing, Llc Persistent storage segment caching for data recovery
US11334445B2 (en) * 2018-10-19 2022-05-17 Oracle International Corporation Using non-volatile memory to improve the availability of an in-memory database
US11681657B2 (en) * 2019-07-31 2023-06-20 EMC IP Holding Company, LLC System and method for parallel flushing with bucketized data

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5524205A (en) * 1990-06-29 1996-06-04 Oracle Corporation Methods and apparatus for optimizing undo log usage
US20050081091A1 (en) * 2003-09-29 2005-04-14 International Business Machines (Ibm) Corporation Method, system and article of manufacture for recovery from a failure in a cascading PPRC system
CN101903866A (zh) * 2007-11-21 2010-12-01 提琴存储器公司 非易失存储介质中的数据存储的方法和系统
US20130042156A1 (en) * 2011-08-12 2013-02-14 Oracle International Corporation Utilizing multiple storage devices to reduce write latency for database logging

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5369757A (en) 1991-06-18 1994-11-29 Digital Equipment Corporation Recovery logging in the presence of snapshot files by ordering of buffer pool flushing
US5918225A (en) * 1993-04-16 1999-06-29 Sybase, Inc. SQL-based database system with improved indexing methodology
US20060059209A1 (en) 2004-09-14 2006-03-16 Lashley Scott D Crash recovery by logging extra data
US7765361B2 (en) * 2006-11-21 2010-07-27 Microsoft Corporation Enforced transaction system recoverability on media without write-through
US8370562B2 (en) * 2007-02-25 2013-02-05 Sandisk Il Ltd. Interruptible cache flushing in flash memory systems
US7904427B2 (en) * 2008-01-11 2011-03-08 Microsoft Corporation Lazier timestamping in a transaction time database
US8639886B2 (en) * 2009-02-03 2014-01-28 International Business Machines Corporation Store-to-load forwarding mechanism for processor runahead mode operation
US8250111B2 (en) 2009-02-27 2012-08-21 International Business Machines Corporation Automatic detection and correction of hot pages in a database system
US8712984B2 (en) 2010-03-04 2014-04-29 Microsoft Corporation Buffer pool extension for database server
US10430298B2 (en) 2010-10-28 2019-10-01 Microsoft Technology Licensing, Llc Versatile in-memory database recovery using logical log records
US9361044B2 (en) * 2011-03-28 2016-06-07 Western Digital Technologies, Inc. Power-safe data management system
US9158700B2 (en) * 2012-01-20 2015-10-13 Seagate Technology Llc Storing cached data in over-provisioned memory in response to power loss
US8984247B1 (en) * 2012-05-10 2015-03-17 Western Digital Technologies, Inc. Storing and reconstructing mapping table data in a data storage system
US9442858B2 (en) * 2012-07-13 2016-09-13 Ianywhere Solutions, Inc. Solid state drives as a persistent cache for database systems
US9423978B2 (en) * 2013-05-08 2016-08-23 Nexgen Storage, Inc. Journal management
US9558080B2 (en) * 2013-10-31 2017-01-31 Microsoft Technology Licensing, Llc Crash recovery using non-volatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5524205A (en) * 1990-06-29 1996-06-04 Oracle Corporation Methods and apparatus for optimizing undo log usage
US20050081091A1 (en) * 2003-09-29 2005-04-14 International Business Machines (Ibm) Corporation Method, system and article of manufacture for recovery from a failure in a cascading PPRC system
CN101903866A (zh) * 2007-11-21 2010-12-01 提琴存储器公司 非易失存储介质中的数据存储的方法和系统
US20130042156A1 (en) * 2011-08-12 2013-02-14 Oracle International Corporation Utilizing multiple storage devices to reduce write latency for database logging

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111435305A (zh) * 2019-01-15 2020-07-21 爱思开海力士有限公司 存储装置、控制器及操作存储装置的方法
CN111435305B (zh) * 2019-01-15 2023-04-11 爱思开海力士有限公司 存储装置、控制器及操作存储装置的方法

Also Published As

Publication number Publication date
EP3063631A2 (en) 2016-09-07
WO2015065863A2 (en) 2015-05-07
BR112016007142A8 (pt) 2020-03-03
US10437662B2 (en) 2019-10-08
BR112016007142B1 (pt) 2022-01-25
US20150121126A1 (en) 2015-04-30
EP3063631B1 (en) 2017-08-09
US9558080B2 (en) 2017-01-31
WO2015065863A3 (en) 2015-07-09
CN105706061B (zh) 2019-01-08
BR112016007142A2 (pt) 2017-08-01
US20170132071A1 (en) 2017-05-11

Similar Documents

Publication Publication Date Title
CN105706061A (zh) 使用非易失性存储器的崩溃恢复
JP6556911B2 (ja) 注釈付きアトミック書き込み操作を行う方法および装置
US10101930B2 (en) System and method for supporting atomic writes in a flash translation layer
US9348760B2 (en) System and method for efficient flash translation layer
US11301379B2 (en) Access request processing method and apparatus, and computer device
US9501402B2 (en) Techniques to perform power fail-safe caching without atomic metadata
US10176190B2 (en) Data integrity and loss resistance in high performance and high capacity storage deduplication
CN111936977A (zh) 使用只追加存储设备的数据库管理系统及方法
WO2017190604A1 (zh) 数据库系统中事务恢复的方法与数据库管理系统
US20190188091A1 (en) Write-ahead style logging in a persistent memory device
CN111104058A (zh) 持久性存储器上的键-值存贮器
CN109800185B (zh) 一种数据存储系统中的数据缓存方法
CN104077380B (zh) 一种重复数据删除方法、装置及系统
CN101231604B (zh) 用于集群服务器数据的卷级恢复的设备、系统及方法
CN110196818B (zh) 缓存数据的方法、缓存设备和存储系统
CN1784676B (zh) 数据库数据恢复系统和方法
CN110515557B (zh) 一种集群管理方法、装置、设备及可读存储介质
US20150193463A1 (en) Systems and methods for durable database operations in a memory-mapped environment
CN103984642A (zh) 冗余辅助储存器缓存的重建
CN103198088A (zh) 基于阴影分页的日志段目录
US20220129420A1 (en) Method for facilitating recovery from crash of solid-state storage device, method of data synchronization, computer system, and solid-state storage device
WO2018076633A1 (zh) 一种远程数据复制方法、存储设备及存储系统
KR20200060220A (ko) 비휘발성 메모리 기반 파일 시스템 및 이를 이용한 데이터 갱신 방법
CN108431784B (zh) 访问请求处理方法、装置及计算机系统
CN108431780B (zh) 版本化记录管理计算系统、方法和计算机可读存储设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant