崩溃恢复的方法和系统技术方案

技术编号:11905986 阅读:112 留言:0更新日期:2015-08-19 19:09
在处理环境的持久存储器存储中的利用异步一致快照的崩溃恢复。处理环境包括用户程序和基础设施维持的数据结构。所述基础设施维持的数据结构包括对程序数据结构做出的更新的日志以及程序数据结构的状态的快照。系统和方法包括将在日志中的日志条目写到瞬时存储器。所述日志条目对应于在非易失性存储器(NVM)上操作的存储指令和存储器管理指令,以及由用户程序的程序指令执行的输入/输出(I/O)操作。日志条目中的每个表示在程序指令中的相应的操作的效果。所述系统和方法还包括基于更新的日志在一致程序点之后在NVM中创建快照。所述快照提供在崩溃之后的重新启动期间的回滚位置。

【技术实现步骤摘要】
【国外来华专利技术】【专利说明】
技术介绍
非易失性存储器(NVM)即使在电源断开之后也保留被存储的数据。最广泛使用的NVM的类型曾是闪存。然而,不得不在比通常的计算机可以自动寻址的块大的块中写闪存,并且闪存通常在恶化之前仅持续有限数量的写-擦除周期。较新类型的NVM提供较好的性能,同时维持闪存的非易失性方面。这些技术包括例如忆阻器(memristors)、相变存储器(PCM)以及自旋矩转移(spin-torque transfer) RAM (STT-RAM)0忆阻器器件基于阻变效应(resistance switching effect),并且在快速访问时间的情况下允许比硬盘驱动器大的数据密度。PCM器件基于电阻的改变处理读/写操作,提供高的存储密度。STT-RAM器件“翻转(flip)”在磁性随机访问存储器(RAM)中使用的有源元件,并且提供具有较好的可量测性的较低功率消耗。【附图说明】图1是可以被实施用于在持久存储器存储中的异步一致快照的示例系统的高级图示。图2图示了生成快照。图3图示了以最近的全局一致状态更新快照。图4图示了针对程序的用户区域的示例状态、日志条目、排队的操作以及快照。图5是图示了可以实施持久存储器存储中的异步一致快照的示例操作的流程图。【具体实施方式】诸如但不限于忆阻器、相变存储器(PCM)以及自旋矩转移RAM (STT-RAM)的新的非易失性存储器(NVM)技术提供重新定义由应用使用的数据持久性模型的机会。以字节粒度的存储器访问连同与动态随机访问存储器(DRAM)不分上下的等待时间通过中央处理单元(CPU)存储指令使能数据的细粒度和有效持久性。然而,计算环境中的故障的存在和高速缓存的组合在确保例如崩溃之后的恢复期间的持久数据是一致的中提出了挑战。本文使用术语“一致状态”来意味着符合所有程序不变量(invariant)。在没有强制执行程序不变量的机制的情况下,硬件或软件故障可以使持久数据损坏并且因此对应用不可用。如今默认用于很多系统的写回(write back)高速缓存通过延迟在持久存储器中的写的可见性使事情变得复杂。考虑例如指令序列,其中存储器的块(chunk)被分配,然后被初始化,并且然后使得全局可见的指针指向块。在存在高速缓存的情况下,全局可见的位置可以在初始化的值之前在持久存储器中出现。在该场景中,如果程序在初始值被写到持久存储器之前崩溃,则持久状态将以全局可见的存储器位置指向未被初始化的存储器而被留下,这导致不期望的操作条件。为了减少或者完全地防止这样的不一致,编程者可以采用充当在两个数据存储之间的屏障的指令的组合。该屏障将因此被称为“可见性屏障”。例如,存储器栅栏(memoryfence)和高速缓存行冲刷(cache line flush)的组合可以被用在持久存储器的两个存储之间,以确保第一存储在第二存储变得可见之前在NVM上可见。给定虚拟地址,高速缓存行清除命令将相应的高速缓存行冲刷到存储器并且使所述高速缓存行无效。但是这些低级别的构造使编程冗长并且易出错。针对多线程程序的关键区段和原子区段(atomic sect1n),编程者也可以使用事务性一致性语义。“关键区段”是其中共享的数据被锁保护的代码段。“原子区段”是必须出现来以不可分和隔离的方式执行的代码段。在串行和分布式的程序中,提供针对代码的区段的故障原子性(failure-atomicity)(以及因此的一致性)的构造可以被提供。尝试提供针对这些代码构造的适当保证的框架可以使用取消日志记入并且利用如上所述的类似的屏障。如果程序崩溃,可以通过在恢复期间“重放”取消日志来重新建立应用的状态。然而,所述过程必须确定在相应的存储可见之前取消日志条目在NVM上可见,例如通过将在取消日志中的条目和原始存储之间的可见性屏障添加到NVM。在创建在取消日志中的给定条目时,使用可见性屏障的附加实例,以确保所述条目的不同部分相互一致。执行可见性屏障可以是在计算上代价高昂的(例如,占数百个CPU周期或更长以执行)。本文描述的系统和方法使用基础设施维持的数据结构(S卩,在瞬时存储器和NVM中创建/维持的数据结构)减少捕获一致状态的开销,并且包括日志和快照。在瞬时存储器(例如DRAM)中而不是在NVM自身中创建所述日志。另外,在NVM中维持所述一致快照。因此,日志条目的可见性的正确排序的问题不再出现,因为日志条目不再处于NVM中。因此,可以从由用户线程执行的代码移除可见性屏障。从用户线程(即,关键处理路径)移除可见性屏障通过允许用户线程以底层程序的完全执行速度或者接近底层程序的完全执行速度操作来改善无故障操作的性能。本文描述的系统和方法可以被有效地实施在利用NVM技术(例如忆阻器、PCM和STT-RAM)的机器上的处理环境中,以及可以被有效地实施在利用块设备的机器上的处理环境中,所述块设备诸如硬盘和固态驱动器(SSD)。在继续之前,应注意,如在本文中使用的那样,术语“包括”和“包含”意味着但不限于:“包括”或“包含”以及“至少包括”或“至少包含”。术语“基于”意味着“基于”以及“至少部分地基于”。图1是可以被实施用于在持久存储器存储中的异步一致快照的示例系统100的高级框图。在图1中,在框101中的持久数据实体Ru和在框140中的R 3由方角矩形图示,而在框130中的瞬时数据实体L和在框150中的Q由圆角矩形图示。由椭圆形图示执行实体,并且由在实体之间的实线图示在执行实体和数据实体之间的交互。箭头指示数据流的方向。出于说明的目的,除其他操作之外,用户线程110可以写到用户区域Ru,并且帮助者线程120可以从瞬时存储器130读日志L。系统100可以被实施在各种计算设备中的任何计算设备的处理环境中,所述各种计算设备诸如但不限于:独立台式/膝上型/上网本(netbook)计算机、工作站、服务器计算机、刀片服务器(blade server)、移动设备以及器具(例如,专用于提供服务的设备),仅举几个示例。计算设备(未示出)可以包括存储器、记忆装置以及至少足以执行本文描述的程序代码的一定程度的数据处理能力。系统100可以被实施在抽象(abstract1n)的区域中以向应用呈现持久存储器。相应地,所述抽象的区域在本文中被称为持久用户区域(或者被简单称为“用户区域”)。在图1中的框101中示出了示例用户区域Ru,因为所述用户区域Ru可以被实施为在程序执行期间被所述程序使用的、在NVM中的数据结构。在不失一般性的情况下,并且出于简单的目的,在图1中示出仅一个用户区域Ru,但是可以实施多于一个用户区域。所述用户区域Ru可通过被映射到在NVM中的物理页的虚拟地址的范围寻址。用于创建和访问用户区域Ru的应用编程接口(API)不是本公开的焦点,并且因此不详细描述所述API。然而,简要地,如果编程者想要在程序中创建用户区域Ru,则用户区域Ru被创建(例如,通过调用CreateReg1n)并且从用户区域Ru中分配持久数据结构(例如,通过调用nvm_alloc)。所述nvm_alloc具有相应的nvm_free,并且所述用户区域Ru具有持久根(例如,在固定的偏置处的相同的持久区域之内),用于访问其中的数据结构的目的。应注意,在持久区域之内的数据不是串行化的,并且因此可以本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/CN104854566.html" title="崩溃恢复的方法和系统原文来自X技术">崩溃恢复的方法和系统</a>

【技术保护点】
一种用于利用在处理环境的持久存储器存储中的异步一致快照的崩溃恢复的方法,所述处理环境包括用户程序以及基础设施维持的数据结构,其中所述基础设施维持的数据结构包括对程序数据结构做出的更新的日志以及所述程序数据结构的状态的快照,所述方法包括:将在更新的日志中的日志条目写到瞬时存储器,其中所述日志条目对应于在非易失性存储器(NVM)上操作的存储指令和存储器管理指令,以及由用户程序的程序指令执行的输入/输出(I/O)操作,其中日志条目中的每个表示在程序指令中的相应操作的效果;以及在一致程序点之后基于更新的日志在NVM中创建快照,其中所述快照提供在崩溃之后的重启期间的回滚位置。

【技术特征摘要】
【国外来华专利技术】

【专利技术属性】
技术研发人员:D查克拉巴蒂
申请(专利权)人:惠普发展公司有限责任合伙企业
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1