持久性主存储器中的日志的尾部制造技术

技术编号:18609879 阅读:31 留言:0更新日期:2018-08-04 22:54
一种系统使用持久性主存储器来保留等待记录在持久性存储装置的事件。每个事件都被写入持久性主存储器到以便在恢复的情况下可记录。比如,该事件可以与标识事件处于特定日志高速缓存结构中的其他状态、特定日志高速缓存结构内的事件的位置以及事件的次序一起写入日志高速缓存结构中。为了恢复,对持久性存储装置中的日志进行评估以标识所存储的日志的结尾。通过标识所存储的日志结尾之后、并且可以有效恢复的任何日志高速缓存结构,可以在持久性主存储器中标识日志的尾部。然后,日志高速缓存结构内容一次串行化一个日志高速缓存,最早的优先。

【技术实现步骤摘要】
【国外来华专利技术】持久性主存储器中的日志的尾部
技术介绍
出于多种多样的原因,计算系统经常保存某些事件的日志。这些日志可能有助于诊断出现的或存在的问题、从计算系统的故障中恢复、执行计算系统的增量备份、跟踪计算性能、评估安全性等等。一些日志被保存在磁盘上以便在系统故障时幸存。毕竟,一些日志的目的是在系统发生故障后(诸如当用于恢复或诊断故障原因时)使用。当日志被保存在磁盘上时,事件通常会首先写入易失性存储器中的易失性日志高速缓存(通常称为“LC”)。每个日志高速缓存的大小通常使得可以被串行化并且在单个I/O操作中被写入磁盘,从而保留磁盘的I/O通道的使用。使用这种日志缓存有助于减少对磁盘的I/O操作次数。一旦日志高速缓存被填满(或在一定时间过去之后),日志高速缓存的内容被串行化并且被写入到磁盘,并且另一空日志高速缓存可用于捕获(至少在易失性存储器中)其他事件。重复此过程,从而通过若干个日志高速缓存循环。一旦特定日志高速缓存的内容被确认为写入到磁盘上的日志,发起将事件写入该日志高速缓存中的一个或多个线程,然后这些线程被释放回到一个或多个事件提供者。当线程正在等待释放时,它们可能经常处于睡眠状态,以减少与线程相关联的开销。本文中所要求保护的主题不限于解决任何缺点的实施例或仅在诸如上文所描述的环境之类的环境中操作的实施例。相反,该
技术介绍
仅被提供以说明其中可以实施本文中所描述的一些实施例的一个示例性

技术实现思路
本文中所描述的至少一些实施例涉及一种使用持久性主存储器以便保存尚未被写入持久性存储装置的日志的事件的系统。当事件要被写入持久性存储装置的日志中时,事件被写入持久性主存储器中以便在恢复的情况下可解释。比如,事件可以与标识事件处于特定日志高速缓存结构中的其他状态、特定日志高速缓存结构内事件的位置、以及除了被写入特定日志高速缓存结构的事件之外的事件的次序一起被写入持久性主存储器中的日志高速缓存结构中。一旦事件和对应状态被写入持久性主存储器,发起写入的线程就可以立即返回。这是因为即使事件在持久性存储装置中的日志中未被冲刷(例如,与日志高速缓存结构的其他内容一起),也可以基于持久性主存储器的内容来对该事件执行恢复。这将线程发起写入的时间和释放线程用于其他工作的时间之间的时延极大地减少了多个数量级。通常,发起将事件写入日志高速缓存的任何线程都必须等待日志高速缓存的内容已经被写入持久性存储装置的确认。这不仅导致从I/O操作到持久性存储装置本身的时延,而且还导致从等待日志高速缓存被充分填充到起初发起该I/O操作的时延。尽管不是必需的,但是在一些实施例中,对应的日志高速缓存也可以存在于易失性存储器中,该日志高速缓存镜像持久性主存储器中的日志高速缓存结构。这允许日志高速缓存的内容被预串行化和串行化,正如通常从易失性日志高速缓存中那样(不考虑用于预串行化和串行化的确切机构),仍允许持久性主存储器的内容在导致易失性存储器内容丢失的故障的情况下使用。因此,这些实施例使对使用易失性存储器日志高速缓存的现有事件记录基础结构的影响最小化。更进一步地,由于持久性主存储器不需要追踪每个可能的预串行化状态,因此这些实施例减少了持久性主存储器所需的改变次数。为了恢复,对持久性存储装置中的日志进行评估以标识所存储的日志的结尾。然后,通过标识一个或多个日志高速缓存结构来在持久性主存储器中标识日志的尾部,该一个或多个日志高速缓存结构在所存储的日志的结尾之后具有事件并且可以有效地用于恢复(例如,其具有原子事件写入操作之间的状态)。然后,这些已标识的日志高速缓存结构中的每个日志高速缓存结构的内容会一次采用一个日志高速缓存结构进行串行化,最早的优先。比如,如果还使用易失性日志高速缓存,则可以将内容复制到易失性日志高速缓存中,之后,易失性日志高速缓存按照正常情况进行预先串行化和串行化。这缓解了持久性主存储器自身必须在预先串行化期间跟踪日志高速缓存状态的需要。提供本概述是为了以简化形式介绍将在以下具体实施方式中进一步描述的概念选择。本
技术实现思路
并非旨在确定所要求保护的主题的关键特征或基本特征,也不旨在用作确定所要求保护的主题的范围的辅助手段。附图说明为了描述可以获得本专利技术的上述和其他优点和特征的方式,上文所简要描述的本专利技术的更具体描述将通过参考在附图中被图示的其具体实施例再现。应当理解,这些附图仅描绘了本专利技术的典型实施例,并且因此不被认为是对其范围的限制,本专利技术将通过使用附图以附加的特征和细节而被描述和解释,其中图1图示了其中可以采用本文中所描述的原理的示例计算系统;图2图示了根据本文中所描述的原理的系统,其中日志管理组件可以以如果发生故障则恢复组件可以成功恢复的方式记录具有低时延的事件;图3图示了用于记录计算系统的事件以便使得计算系统能够从可能的故障中恢复的方法的流程图;图4图示了用于将日志高速缓存串行化到持久性存储装置的日志中的方法的流程图;图5图示了用于将事件成功写入持久性存储器的方法的流程图;图6A至图6C图示了持久性主存储器的各部分的连续状态,这些部分包括日志高速缓存数据结构、日志高速缓存描述符和一个或多个槽结构,它们以描述日志高速缓存结构的状态并且保留事件写入的次序的方式相互关联;以及图7图示了用于使用在持久性存储器以及持久性主存储器中持久化的日志来恢复计算系统的方法的流程图。具体实施方式本文中所描述的至少一些实施例涉及一种使用持久性主存储器以便保存尚未被写入持久性存储装置的日志的事件的系统。当事件要被写入持久性存储装置的日志中时,事件被写入持久性主存储器中以便在恢复的情况下可解释。比如,事件可以与标识事件处于特定日志高速缓存结构中的其他状态、特定日志高速缓存结构内事件的位置、以及除了被写入特定日志高速缓存结构中的其他事件之外的事件的次序一起被写入持久性主存储器中的日志高速缓存结构中。一旦事件和对应状态被写入持久性主存储器,发起写入的线程就可以立即返回。这是因为即使事件在持久性存储装置中的日志中未被冲刷(例如,与日志高速缓存结构的其他内容一起),也可以基于持久性主存储器的内容来针对该事件执行恢复。这将线程发起写入的时间和释放线程用于其他工作的时间之间的时延极大地减少了多个数量级。通常,发起将事件写入日志高速缓存的任何线程都必须等待日志高速缓存的内容已经被写入持久性存储装置的确认。这不仅导致从I/O操作到持久性存储装置本身的时延,而且还导致从等待日志高速缓存被充分填充到起初发起该I/O操作的时延。尽管不是必需的,但是在一些实施例中,对应的日志高速缓存也可以存在于易失性存储器中,该日志高速缓存镜像持久性主存储器中的日志高速缓存结构。这允许日志高速缓存的内容被预串行化和串行化,正如通常从易失性日志高速缓存中那样(不考虑用于预串行化和串行化的确切机构),仍允许持久性主存储器的内容在导致易失性存储器内容丢失的故障的情况下使用。因此,这些实施例使对使用易失性存储器日志高速缓存的现有事件记录基础结构的影响最小化。更进一步地,由于持久性主存储器不需要追踪每个可能的预串行化状态,因此这些实施例减少了持久性主存储器所需的改变次数。为了恢复,对持久性存储装置中的日志进行评估以标识所存储的日志的结尾。然后,通过标识一个或多个日志高速缓存结构来在持久性主存储器中标识日志的尾部本文档来自技高网
...

【技术保护点】
1.一种系统,包括:持久性主存储器;一个或多个事件写入组件,所述一个或多个事件写入组件请求记录事件;持久性存储装置,所述持久性存储装置中具有事件日志;恢复组件,所述恢复组件在恢复期间被触发以使用持久性存储装置中的所述日志以及被写入所述持久性主存储器的事件,以便执行恢复;以及日志管理组件,所述日志管理组件使一个或多个所述写入组件请求记录的事件以如下方式被写入所述持久性主存储器:所述恢复组件将在恢复的情况下记录所述事件,在所述事件与其他累积的事件一起被写入所述持久性存储装置中的所述日志之前,所述事件被写入所述持久性存储装置中,所述日志管理组件使所述事件写入中的至少一些事件写入中的每一个的线程在所述事件被写入所述持久性主存储器之后、但在所述事件被写入所述持久性存储装置中的所述日志之前被返回。

【技术特征摘要】
【国外来华专利技术】2015.12.11 US 14/966,7241.一种系统,包括:持久性主存储器;一个或多个事件写入组件,所述一个或多个事件写入组件请求记录事件;持久性存储装置,所述持久性存储装置中具有事件日志;恢复组件,所述恢复组件在恢复期间被触发以使用持久性存储装置中的所述日志以及被写入所述持久性主存储器的事件,以便执行恢复;以及日志管理组件,所述日志管理组件使一个或多个所述写入组件请求记录的事件以如下方式被写入所述持久性主存储器:所述恢复组件将在恢复的情况下记录所述事件,在所述事件与其他累积的事件一起被写入所述持久性存储装置中的所述日志之前,所述事件被写入所述持久性存储装置中,所述日志管理组件使所述事件写入中的至少一些事件写入中的每一个的线程在所述事件被写入所述持久性主存储器之后、但在所述事件被写入所述持久性存储装置中的所述日志之前被返回。2.根据权利要求1所述的系统,还包括:易失性存储器,所述易失性存储器具有日志高速缓存,所述日志管理组件还使一个或多个所述写入组件请求记录的所述事件被写入所述易失性存储器中的所述日志高速缓存。3.根据权利要求2所述的系统,所述日志管理组件经由串行化器周期性地将所述日志高速缓存的内容写入所述持久性存储装置中的所述日志。4.根据权利要求2所述的系统,所述持久性主存储器具有日志高速缓存,所述日志高速缓存镜像所述易失性存储器的所述日志高速缓存,被写入的所述事件和所述其他累积的事件被包括在所述易失性存储器的所述日志高速缓存以及所述持久性主存储器的所述日志高速缓存中。5.根据权利要求2所述的系统,所述日志管理组件还被配置为:当所述事件和所述累积的事件全部被写入所述持久性存储装置的所述日志中时,使所述持久性主存储器中的被写入的所述事件和所述累积的事件无效。6.根据权利要求1所述的系统,所述持久性主存储器包括多个日志高速缓存结构,所述多个日志高速缓存结构可用于依次以事件进行填充。7.根据权利要求6所述的系统,所述持久性主存储器还包括多个槽结构,所述多个槽结构中的至少一些槽结构中的每一个可用于与对应的日志高速缓存结构相关联,以描述事件被写入所述对应的日志高速缓存结构中的位置,并且保留被写入所述对应的日志高速缓存结构中的事件的次序信息。8.根据权利要求7所述的系统,所述多个槽结构中的至少一些槽结构中的每一个按照该槽结构在具有日志高速缓存描述符数据的槽结构的链接列表内的顺序来保留次序信息,所述日志高速缓存描述符数据结构标识所述日志高速缓存结构并且指示所述日志高速缓存结构的状态。9.一种用于记录计算系统的事件以使所述计算系统能够恢复可能的故障的方法,所述方法包括:检测线程为了记录目的而请求写入事件的动作;响应于所述检测的动作,在将所述事件与其他累积的事件一起写入持久性存储装置中的日志之前,将所述事...

【专利技术属性】
技术研发人员:R·P·菲茨杰拉尔德PA·拉森M·J·兹威灵C·迪亚克纽
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

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

1