CN108369549A - 使用重启时期的版本化记录管理 - Google Patents

使用重启时期的版本化记录管理 Download PDF

Info

Publication number
CN108369549A
CN108369549A CN201780004719.4A CN201780004719A CN108369549A CN 108369549 A CN108369549 A CN 108369549A CN 201780004719 A CN201780004719 A CN 201780004719A CN 108369549 A CN108369549 A CN 108369549A
Authority
CN
China
Prior art keywords
record
object set
computing system
period
versioned
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
CN201780004719.4A
Other languages
English (en)
Other versions
CN108369549B (zh
Inventor
P-A·拉森
R·P·菲茨杰拉德
C·迪亚克纽
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
Priority to CN202210198795.6A priority Critical patent/CN114610537A/zh
Publication of CN108369549A publication Critical patent/CN108369549A/zh
Application granted granted Critical
Publication of CN108369549B publication Critical patent/CN108369549B/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/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/1417Boot up procedures
    • 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/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity

Abstract

一种版本化记录管理计算系统,其使用重启时期以便促进快速恢复。持久性存储库包括多版本化记录集合。记录还与重启时期相关联,重启时期对应于在重启之后的计算系统的操作的时期。在恢复时,当前重启时期改变。对象集合介质具有符合对象模型的对象集合,以使得对象模型被用于对记录进行操作。对象集合介质可操作以使得对象集合是耐久性的,以便在系统的重启时幸存,由此允许加速恢复。

Description

使用重启时期的版本化记录管理
背景技术
计算机和网络已经迎来了所谓的“信息时代”。在某种类型的数据存储库中留存信息的能力是这个时代的关键使能者。即使数据存储库失去电力,数据被留存而使得下次电力复原时,数据原样地保持被保存。这是重要的,因为向电力存储库提供电力的系统不能被预期为无限期地操作。例如,膝上型机上的盘存储装置被提供以留存数据,因为膝上型机用户可以被预期为(并且有时的确应当)将他们的膝上型机切断电力。基于盘的存储装置(最初是旋转盘,但是后来是固态盘)已经广泛使用了一段时间。从基于盘的存储装置的读取和向其的写入通常经由规范的盘输入/输出(I/O)命令而被完成。
计算系统还包括系统存储器,其通过存储器总线耦合到计算系统的(多个)处理器。处理器通过存储器总线从系统存储器内的存储器位置读取数据(并且向其写入数据)。处理器还提供正在通过存储器总线被写入或读取的位置的地址。处理器通常可以包括一个或多个高速缓存,用于对高速缓存中可用的数据的更快读取和写入。
传统地,这样的系统存储器一直是易失性存储器,其中当电力不再被供应时数据丢失。然而,最近,持久性主存储器已经被开发,其是一种持久形式的系统存储器。当电力丢失时,系统存储器内的信息保持完好。然而,因为高速缓存保持为易失性,所以高速缓存内的信息经常丢失。
在计算系统的不受控电力切断之后,计算系统经历被称为“恢复”的过程。恢复机制可能花费一些时间。一些恢复机制被优化以尝试缩短在不受控电力切断之后开始正常操作的第一项任务的时间。其他恢复机制被优化以缩短在不受控电力切断之后达到最佳性能的时间。
本文要求保护的主题不限于解决任何缺点或者仅在诸如上文描述的环境中操作的实施例。相反地,此背景仅被提供以说明本文描述的一些实施例可以被实践在其中的一个示例性技术领域。
发明内容
本文描述的至少一些实施例涉及一种使用重启时期以便促进快速恢复的版本化记录管理计算系统。每当版本化记录管理计算系统在崩溃之后恢复时,重启时期被更改。该系统具有包括多个项目的持久性存储库,每个项目被标记有重启时期。持久性存储库还包括当前重启时期的标识。
持久性存储库包括多版本化记录集合,其包括集合性的各种版本的记录。记录还与重启时期相关联。在当前重启时期中被创建的任何记录被标记有当前重启时期。另一方面,在先前重启时期中被创建的记录的重启时期在重启时刻不即时改变。因此,存在自动就位的机制来区分将被评估用于垃圾收集的那些先前已有的记录与如下的那些项目,这些项目在当前时期中是可见的并且因此受制于对当前重启时期中被标记的项目起作用的正常垃圾收集。
该系统还包括对象集合介质,其上具有对象集合,对象集合符合对象模型以使得对象模型被用于对记录进行操作。对象集合介质可操作以使得对象集合是耐久性的以便在系统的重启时幸存。在正常操作期间,系统对对象集合执行至少一些原子操作。因此,在即将发生崩溃的情况下,对象集合是耐久性的并且处于一致状态,并且因此可用于在版本化记录管理计算系统的后续恢复中与对象模型相一致地使用。此外,记录的可见性不被具有先前重启时期的记录所影响。因此,整个记录集合和用于对其进行操作的对象集合几乎是立即可用的。因此,系统的正常操作可以更快地被恢复。同时,与正常操作并行地可以完成:标记特定项目以将项目提升到当前重启时期,并且此后,扫除未被提升到当前重启时期的未标记的项目。
本概述被提供来以简化形式介绍下面在“详细描述”中进一步描述的概念的选择。本概述不意图为确定所要求保护的主题的关键特征或基本特征,也不意图为用作确定所要求保护的主题的范围的辅助。
附图说明
为了描述可以获得本发明的上文记载的和其他的优点和特征的方式,上文简要描述的本发明的更特定的描述将通过参考其具体实施例而被提供,这些具体实施例在附图中被图示。要理解这些附图仅描绘了本发明的典型实施例,并且因此不被认为是对其范围的限制,本发明将通过使用附图以附加的特异性和细节被描述和解释,在附图中:
图1图示了本文描述的原理在其中可以被采用的示例计算系统;
图2图示了根据本文描述的原理的版本化记录管理计算系统,其包括持久性存储库,持久性存储库包括记录集合和对象集合,并且其还包括在正常操作中或在恢复中对其进行操作的组件;
图3图示了易失性高速缓存,其包括高速缓存一致性域和对象集合的至少一部分;
图4示意性地图示了一种数据结构,其具有表示恢复之间的时间段的相关联的重启时期;
图5图示了一种方法的流程图,该方法用于操作版本化记录管理计算系统,以使得在恢复期间对象模型可以快速地用来与对象集合对接;
图6图示了一种方法的流程图,该方法用于根据本文描述的原理将多个记录中的至少一些记录提升到当前重启时期;以及
图7图示了一种方法的流程图,该方法用于评估特定记录以确定该记录是否应当被标记。
具体实施方式
本文描述的至少一些实施例涉及一种版本化记录管理计算系统,其使用重启时期(era)以便促进快速恢复。每当版本化记录管理计算系统在崩溃之后恢复时,重启时期被更改。该系统具有持久性存储库,持久性存储库包括每个被标记有重启时期的多个项目。持久性存储库还包括当前重启时期的标识。
持久性存储库包括多版本化记录集合,其包括集合性的各种版本的记录。记录还与重启时期相关联。在当前重启时期中被创建的任何记录被标记有当前重启时期。另一方面,在先前重启时期中被创建的记录的重启时期在重启时刻不即时改变。因此,存在自动就位的机制来区分将被评估用于垃圾收集的那些先前已有的记录与如下的那些项目,这些项目在当前时期中是可见的并且因此受制于对当前重启时期中被标记的项目起作用的垃圾收集的正常垃圾收集。
该系统还包括对象集合介质,其上具有符合对象模型的对象集合,从而对象模型被用于对记录进行操作。对象集合介质可操作为使得对象集合是耐久性的,以便在系统的重启时幸存。在正常操作期间,系统对对象集合执行至少一些原子操作。因此,在即将发生崩溃的情况下,对象集合是耐久性的且处于一致状态,并且因此可用于在版本化记录管理计算系统的后续恢复中与对象模型相一致地使用。此外,记录的可见性不被具有先前重启时期的记录所影响。因此,整个记录集合和用于对其进行操作的对象集合几乎是立即可用的。因此,系统的正常运行将更快地被恢复。同时,与正常操作并行地可以完成:标记特定项目以将项目提升到当前重启时期,并且此后,扫除未被提升到当前重启时期的未标记的项目。
将关于图1来描述计算系统的一些介绍性讨论。然后,将关于图2至图6来描述版本化记录管理计算系统的操作。
计算系统现在越来越多地采取各种各样的形式。计算系统可以例如是手持设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统、数据中心、或甚至是常规地尚未被认为是计算系统的设备,诸如可穿戴设备(例如,眼镜)。在本描述和权利要求书中,术语“计算系统”被宽泛地定义为包括如下的任何设备或系统(或它们的组合),其包括至少一个物理且有形的处理器、以及能够在其上具有可以由处理器执行的计算机可执行指令的物理且有形的存储器。存储器可以采取任何形式并且可以取决于计算系统的性质和形式。计算系统可以分布在网络环境中并且可以包括多个组成计算系统。
如图1中图示的,在它的最基本配置中,计算系统100通常包括至少一个硬件处理单元102和存储器104。存储器104可以是物理系统存储器,其可以是易失性的、非易失性的、或两者的某种组合。术语“存储器”在本文中也可以用于指代非易失性大容量存储装置,诸如物理存储介质。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。
计算系统100其上还具有经常被称为“可执行组件”的多个结构。例如,计算系统100的存储器104被图示为包括可执行组件106。术语“可执行组件”是用于结构的名称,其由计算领域的普通技术人员充分地理解为可以是软件、硬件、或它们的组合的结构。例如,当被实施在软件中时,本领域的普通技术人员将理解,可执行组件的结构可以包括软件对象、例程、方法等,其可以在计算系统上执行,无论这样的可执行组件是否存在于计算系统的堆中,或者无论可执行组件是否存在于计算机可读存储介质上。
在这样的情况下,本领域的普通技术人员将认识到,可执行组件的结构存在于计算机可读介质上,从而当由计算系统的一个或多个处理器(例如,由处理器线程)解译时,计算系统被使得执行功能。这样的结构可以是通过处理器直接计算机可读的(如果可执行组件是二进制的,则就是这种情况)。替换地,该结构可以被构造为可解译和/或编译(无论是在单个阶段中还是在多个阶段中),以便生成由处理器直接可解译的这样的二进制。当使用术语“可执行组件”时,对可执行组件的示例结构的这样的理解完全在计算领域的普通技术人员的理解之内。
术语“可执行组件”也被本领域的普通技术人员充分地理解为包括专门或近似专门地被实施在硬件中的结构,诸如在现场可编程门阵列(FPGA)、专用集成电路(ASIC)、或任何其他专用电路内。因此,术语“可执行组件”是用于由计算领域的普通技术人员充分理解的结构的术语,无论被实施在软件、硬件、还是组合中。在本描述中,也可以使用术语“组件”、“服务”、“引擎”、“模块”、“虚拟机”等。如在本描述中以及在这种情况下所使用的,这些术语(不管是否利用修饰从句表达)也意图为与术语“可执行组件”同义,并且因此也具有由计算领域的普通技术人员充分理解的结构。
在随后的描述中,参考由一个或多个计算系统执行的动作来描述实施例。如果这样的动作被实施在软件中,则(执行动作的相关联的计算系统的)一个或多个处理器响应于已经执行构成可执行组件的计算机可执行指令而指导计算系统的操作。例如,这样的计算机可执行指令可以具体化在形成计算机程序产品的一个或多个计算机可读介质上。这样的操作的示例牵涉到数据的操纵。
计算机可执行指令(和所操纵的数据)可以存储在计算系统100的存储器104中。计算系统100还可以包含通信信道108,其允许计算系统100通过例如网络110与其他计算系统进行通信。
尽管不是所有计算系统都需要用户接口,但是在一些实施例中,计算系统100包括用户接口112用于在与用户对接时使用。用户接口112可以包括输出机构112A以及输入机构112B。本文描述的原理不限于精确的输出机构112A或输入机构112B,因为这将取决于设备的性质。然而,输出机构112A可以包括例如扬声器、显示器、触觉输出、全息图等。输入机构112B的示例可以包括例如麦克风、触摸屏、全息图、相机、键盘、其他指针输入的鼠标、任何类型的传感器等。
本文描述的实施例可以包括或利用专用或通用计算系统,其包括计算机硬件,诸如,例如一个或多个处理器和系统存储器,如下面更详细讨论的。本文描述的实施例还包括物理和其他计算机可读介质,用于携带或存储计算机可执行指令和/或数据结构。这样的计算机可读介质可以是可以由通用或专用计算系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行指令的计算机可读介质是传输介质。因此,通过示例而非限制的方式,本发明的实施例可以包括至少两个截然不同种类的计算机可读介质:存储介质和传输介质。
计算机可读存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储装置、磁盘存储装置或其他磁存储设备、或者如下的任何其他物理且有形的存储介质,其可以用于以计算机可执行指令或数据结构的形式存储期望的程序代码部件,并且其可以由通用或专用计算系统访问。
“网络”被定义为一个或多个数据链路,其允许计算系统和/或模块和/或其他电子设备之间的电子数据的传输。当信息通过网络或另一通信连接(硬连线、无线、或者硬连线或无线的组合)被传送或提供给计算系统时,计算系统将连接恰当地视为传输介质。传输介质可以包括如下的网络和/或数据链路,其可以用于以计算机可执行指令或数据结构的形式携带期望的程序代码部件,并且其可以由通用或专用计算系统访问。上述的组合也应当被包括在计算机可读介质的范围内。
进一步地,在到达各种计算系统组件时,以计算机可执行指令或数据结构为形式的程序代码部件可以从传输介质自动地被传送到存储介质(或反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以被缓冲在网络接口模块(例如,“NIC”)内的RAM中,并且然后最终被传送到计算系统RAM和/或计算系统处的较不易失性的存储介质。因此,应当理解,存储介质可以被包括在也(甚至主要)利用传输介质的计算系统组件中。
计算机可执行指令包括例如指令和数据,其当在处理器处执行时使得通用计算系统、专用计算系统、或专用处理设备执行某个功能或功能组。替换地或另外地,计算机可执行指令可以将计算系统配置为执行某个功能或功能组。计算机可执行指令可以是例如二进制文件或者甚至是在处理器直接执行之前经历某种转换(诸如编译)的指令,诸如中间格式指令,诸如汇编语言,或甚至源代码。
虽然已经以特定于结构特征和/或方法动作的语言描述了主题,但是将理解,所附权利要求中限定的主题不一定限于所描述的特征或上面描述的动作。相反地,所描述的特征和动作被公开作为实施权利要求的示例形式。
本领域的技术人员将明白,本发明可以被实践在具有许多类型的计算系统配置的网络计算环境中,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器或可编程的消费者电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机、数据中心、可穿戴设备(诸如眼镜)等。本发明也可以被实践在分布式系统环境中,其中通过网络被链接(通过硬连线数据链路、无线数据链路、或者通过硬连线和无线数据链路的组合)的本地和远程计算系统两者都执行任务。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备两者中。
本领域的技术人员还将明白,本发明可以被实践在云计算环境中。云计算环境可以是分布式的,但这不被要求。当被分布时,云计算环境可以国际性地被分布在组织内,和/或具有跨多个组织而被拥有的组件。在本描述和随后的权利要求中,“云计算”被定义为一种模型,其用于允许对可配置计算资源(例如,网络、服务器、存储装置、应用和服务)的共享池的按需网络访问。“云计算”的定义不限于在恰当地被部署时可以从这样的模型获得的其他许多优点中的任何优点。
图2图示了根据本文描述的原理的版本化记录管理计算系统200。版本化记录管理计算系统200例如可以如上文针对图1的计算系统100所描述的那样被构造。通常,当计算系统被切断电力时,操作系统经历例行的关闭过程,从而下一次计算系统重启时,计算系统处于干净且确定性状态,从而正常操作可以从该确定性状态有效率地继续。
然而,有时计算系统简单地崩溃,在该情况下,由于某种原因或其他原因,计算系统在被切断电力之前不能经历例行的关闭过程。例如,计算系统可能意外地失去电力。替换地,应用或操作系统可能简单地冻结,以便防止路由关闭过程的运行,由此迫使用户强制切断电力。在这样的崩溃的情况下,在重启时,计算系统将经历恢复过程以挽救可挽救的数据,同时保持计算系统的一致状态。经常地,恢复操作可能花费显著的时间,特别是在牵涉到大量数据时,诸如在数据库中。
例如,可以使用日志以便将记录恢复回到特定状态。为了这样做,首先获得记录的最后快照。然后,被称为“走过该日志”的过程发生,其中在快照之后针对记录发生的所记录的事件被执行,以便使记录更为当前。在事务系统中,尚未作为事务的一部分而被提交的动作中的一些动作可能需要被撤销。在这被完成之后,在崩溃之前有效的所有记录现在再次是有效的。然而,用来针对记录进行操作的支持结构和组件中的许多可能仍然需要被复原以便继续进行正常操作。经常是这些支持结构和组件的复原可能花费显著的恢复时间并且经常是大部分的恢复时间。
计算系统200被图示为具有如下的状态,该状态在恢复达到持久性存储库再次为操作的点时存在于计算系统200上。尽管不能经历正常关机例程,但是计算系统200仍然具有对象集合212,其包括经由对象模型222用来对记录集合211的记录进行操作的所有对象。对象集合212的对象包括允许对记录集合212的正常操作的那些支持结构和组件。因此,正常处理可以使用对象集合212和对象模型222立即开始。这显著加速了正常处理的发起。
此外,持久性存储库210可以是持久性主存储器。因此,在正常操作开始之后需要很少的(如果有的话)斜升(ramp up)时间,以便将记录以及支持结构和组件带到主存储器中。正常操作因此可以快速开始,并且当它开始时,正常操作是有效率的。
多版本化记录集合211包括多个记录。例如,记录集合211被示出为包括五个记录211A、211B、211C、211D和211E(每个被表示为小矩形),但是省略号211F象征性地表示记录集合211可以包括任何数目的记录。记录可以包括任何数据段。在一个实施例中,记录每个都是行。记录集合中可以存在任何数目的记录,甚至可能有数十亿或更多。无论如何,记录集合包括多个版本的数据。事实上,记录的多个版本可以同时存在。例如,记录211C可以表示新版本的记录211A(如由箭头A象征)。记录211D可以表示新版本的记录211B(如由箭头B象征)。记录211D现在可能只具有一个版本。因此,当本文使用术语“记录”涉及记录集合的内容时,这些记录可以更恰当地被认为是记录版本。例如,记录版本211A和211C可以共同地被认为是记录。记录版本211B和211D可以类似地共同被认为是记录。
可见性管理器221与记录集合211调解(intercede)。可见性管理器221可以访问记录集合211的记录中的任何记录。然而,可见性管理器221还可以提供特定于给定时间的对记录的观点—也就是说,哪些记录对于给定时间是有效的。例如,对于特定时间,可能记录中的仅两个记录(例如,记录211A和211B)通过可见性管理器221是实际可见的,因为在该特定时间,那些是有效地表示数据片段(例如,行)在该给定时间的状态的版本。例如,记录可以具有相关联的开始时间戳和结束时间戳,它们定义从使用记录的应用和组件(图2的组件250)的视角来看记录被认为存在的时间范围。因此,给定特定时间,可见性管理器221可以确定哪些记录在该特定时间将是可见的。
对象集合212包括多个对象,每个对象符合对象模型222。仅作为示例,对象集合212被图示为包括四个对象212A到212D,但是省略号212E表示符合对象模型222的对象的数目和类型上的灵活性。组件250使用对象模型222以便与对象集合212的对象对接(如由箭头231表示)。对象集合212中的对象通过与记录集合211的记录对接(如由箭头232表示)来进行响应。这样的对象的示例是将记录集合211的记录(例如,行)映射到记录组(例如,表)的索引。
更一般地说,对象模型222可以由应用、组件、操作系统等使用,以便对记录集合211的记录执行操作。通过从最后的检查点走过日志,常规的恢复确保了在崩溃之前在任何给定时间有效且可见的所有记录在崩溃之后在该时间保持有效且可见。然而,与现有的恢复技术不同,在恢复时,对象集合212已经是有效的,因为对象模型222可以立即被用来对记录集合211的任何有效记录执行操作。对象集合212不需要被重建以与对象模型222一起可操作。它已经处于这样的状态。
为了允许这成为对象集合212在恢复开始时的状态,对象集合212可以在所有正常操作时间在持久性主存储器中。使用对象执行的所有操作都是在对象存在于持久性主存储器中时使用它们而被执行的。在另一实施例中,对象集合212在正常操作期间被允许在易失性高速缓存中。然而,如果计算系统200检测到即将发生的崩溃,则该易失性高速缓存的至少一部分(例如,高速缓存一致性域)被快速保存到持久性主存储器中。
在任何情况下,最终结果是相同的—对象集合212在恢复期间在持久性存储库210中并且经由对象模型222是立即可使用的,并且从而对象在重启时在已知位置。此外,在一些实施例中,对对象它们自身的操作是原子的且无锁的,因此提供对象集合212中的对象中的每个对象将是一致的,并且不处于中间操作状态。
例如,图3图示了易失性高速缓存300,其包括部分301,部分301包括对象集合212的至少一部分。在该状态下,对象模型222可以用来控制对象集合。易失性高速缓存进一步具有崩溃准备结构310,其检测即将来临的崩溃条件,并且将部分301的内容以如下的方式放入持久性存储库210中:对象模型222仍然可以针对持久性存储库210中的对象集合212被使用。然而,存在其他方式确保对象集合212在下一次重启期间在持久性存储库210内。例如,在持久性主存储器内或者在日志内,可以存在被高速缓存的对象集合的阴影副本。替换地,高速缓存它本身可以跨重启是耐久性的。
持久性存储库210还已经将它与重启时期230相关联。重启时期是一种标识符,其在每次系统200从崩溃恢复时被改变。因此,重启时期230唯一地标识由恢复在每侧界定的时间时期。在任何给定时间,重启时期230是当前重启时期。
持久性存储库210中的项目中的每个项目具有与之相关联的重启时期标识符,其不一定与当前重启时期230的重启时期相同。例如,图4示意性地图示了具有相关联的重启时期401的数据结构400。数据结构400可以表示记录集合211的记录中的任何记录和对象集合212中的对象中的任何对象。在当前重启时期中创建的任何新记录使得它的重启时期被标记为当前重启时期。另一方面,可见性管理器221不使用记录的重启时期401来确定记录当前是否可见。因此,整个记录集合211几乎立即可用于正常操作。此外,由于对象集合212被存储在持久性存储器中,所以对象集合212在重启时可用于使用对象模型222的正常操作。因此,正常操作可以几乎立即以最低限度的工作继续进行。例如,可能存在一些工作来将表和索引连接到它们的存储器分配器。
如先前提及的,与现有的恢复技术不同,在恢复时,对象集合212已经是有效的,因为对象模型222可以立即被用来对记录集合211的任何有效记录执行操作。这允许快速恢复。然而,为了在恢复期间确保对象集合的这种状态,可以在正常操作期间作出一些规定。图5图示了方法的流程图,该方法用于操作版本化记录管理计算系统,以使得在恢复期间对象模型222可以快速地用来与对象集合对接。
根据方法500,多版本化记录集合在持久性存储库中(动作501)。例如,在图2中,记录211A到211F(或记录版本211A到211F)被保持在持久性存储库210内。如先前提及的,这些记录具有各种版本,并且与重启时期相关联。
此外,根据方法500,对象集合被保持在对象集合介质上(动作502)。例如,在图2中,在正常操作期间,对象集合212可以被保持在持久性存储库210中和/或在易失性高速缓存300中。无论哪种方式,对象集合212可以被看作是耐久性的,因为在崩溃时,对象集合212将最终在持久性存储库220内是持久性的。
此外,在正常操作期间,对对象集合执行至少一些原子操作(动作503),以使得在即将发生崩溃的情况下,对象集合在一致状态下是耐久性的,并且可用于在版本化记录管理计算系统的后续恢复中与对象模型相一致地使用。
此外,在正常操作期间,记录的可见性基于每个记录的版本而被管理(动作504)。另外,新记录的创建被完成以便将记录与当前时期相关联(动作505)。
返回到恢复,当持久性存储库的重启时期230在恢复操作开始时被改变时,用于记录中的每个记录的适当重启时期401的确定可以与正常操作并行地被确定。图6图示了方法600的流程图,方法600用于根据本文描述的原理将多个项目(例如,记录或对象)中的至少一些项目提升到当前重启时期。回想到,这可以作为后台过程与正常操作并行地被执行。在正常操作期间,如果记录被创建,则该记录被自动给予等于当前重启时期230的重启时期401。
方法600的第一部分是标记评估610并且由虚线框610内的集合性动作来表示。标记评估610针对不具有当前重启时期230的重启时期401的每个项目(例如,记录或对象)而被执行。恢复组件(例如,图2的恢复组件240)评估记录(动作611)以确定项目是否应当被标记(判定框612)。如果记录应当被标记(判定框612中的“是”),则通过将该项目提升到当前重启时期,记录被标记(动作613)。例如,通过将项目的重启时期401改变为当前重启时期230,标记可以发生。如果项目没有被标记(判定框612中的“否”),则记录不被标记(动作614)。例如,避免标记项目(动作614)可以简单地牵涉到不改变项目的重启时期401。
在标记评估(动作610)对不具有当前重启时期的所有项目被执行之后,未标记的项目然后从持久性存储器被扫除(动作620)。换言之,持久性存储库针对项目而被扫描,并且对于不具有当前重启时期的每个项目,该项目被删除。
图7图示了用于评估特定项目以确定记录是否应当被标记的方法700的流程图。方法700表示判定框612如何可以被完成的判定的示例。
首先,恢复组件确定特定项目是否经由对象集合是可达的(判定框701)。例如,该可达性分析可以通过以下而针对所有项目被执行:通过扫描对象集合(例如,在数据库的情况下是索引)以确定是否存在任何方式到达特定项目。如果特定项目经由对对象集合的扫描而被到达(判定框701中的“是”),则这可能是确定项目应当被标记(动作711)的分析结论。然而,在一个实施例中,在项目是记录的情况下(判定框602中的“是”),该分析进一步评估记录对任何活动过程(例如,任何活动事务)是否可见。也就是说,确定记录是否仍然存活(判定框703)。如果记录被活动过程参考(判定框703中的“是”),则记录将被标记有当前重启时期(动作711)。因此,如果项目不是可达的(判定框701中的“否”),或者为非存活的记录(判定框702中的“是”,并且判定框703中的“否”),则记录将不被标记(动作712)。另一方面,如果项目是可达的(判定框701中的“是”)并且不是记录(判定框702中的“否”),则项目被标记(动作711)。如果项目是可达且存活的记录(在所有判定框701至703中为“是”),则记录将被标记(动作711)。
在事务系统中,为了确定记录是否存活,可能有必要确定创建或删除记录的事务是否已经提交。例如,如果记录由事务创建,则记录是否有效取决于事务是否提交。如果事务提交,在仍然存在可能引用所创建的记录的活动事务的情况下,所创建的记录可能有效(存活)。如果事务没有提交,则记录无效(非存活)。如果记录被事务删除,则记录是否有效再次取决于事务是否提交。如果事务提交,则删除的记录无效(非存活)。如果事务没有提交,则删除的记录未真正删除并且记录仍然有效(存活)。
事务是否已经提交的确定可以按任何数目的方式来实施。例如,事务的提交状态可以耐久性地被存储在持久性存储器中,并且被保持直到不再需要该信息。此外,该信息可以在日志中或者可能在耐久性高速缓存中找到。提交状态因此可以在这些耐久性区域中被查找。在上文描述的实施例中,通过索引可达的全部或大多数记录版本使得它们的重启时期字段被更新为当前重启时期。
存在替换实施例,其不要求对所有可达记录版本的重启时期字段的更新。避免这样的更新是有益的,因为写入记录版本可能消耗计算资源,并且可能存在来自先前重启时期的许多记录版本经由索引是可达的。在替换实施例中,非记录对象(诸如对象集合212内的对象)如所描述的被标记。然而,针对记录集合211内的记录版本,标记不在如上文描述的标记阶段中被执行。替代地,在扫除阶段期间,记录版本被评估,并且重启时期在相对较少的记录中被更新。该替换实施例使用如下的事实:在确定记录的可见性时,记录版本的重启时期在很大程度上被忽略。
在该替换实施例中,在扫除阶段期间,恢复模块读取每个记录版本。如果记录版本的重启时期是当前重启时期,则记录版本被扫除阶段忽略。然而,如果记录具有先前重启时期,则扫除机制区分可能仍然可见的记录版本和不可见(并且因此是垃圾并且应当被扫除)的记录版本。它考虑记录的开始时间戳和结束时间戳来这样做。开始时间戳表示创建记录的事务的提交时间。结束时间戳表示删除记录的事务的提交时间,或者如果记录尚未被删除,则为无限大。如果给定时间落在开始时间戳与结束时间戳中表达的时间之间,则记录在给定时间是可见的。如果创建记录的事务仍在进行中,则开始时间戳被填充有该事务的事务标识符。如果删除记录的事务仍在进行中,则结束时间戳被填充有该事务的事务标识符。这些事务标识符与记录版本的重启时期相关。
对于先前重启时期的那些记录版本,如果存在有效开始时间戳(时间),并且存在无限大结束时间戳,则该记录版本可以是可见的,并且它可以可选地不理会而不更新它的重启时期。对于先前重启时期的那些记录版本,如果在开始时间戳中存在事务标识符,并且如果来自先前重启时期的事务已经提交,但是它的提交后处理从未完成,则记录版本的开始时间戳被更新为事务的开始时间戳,否则行版本被递交用于删除。对于先前重启时期的那些记录版本,如果在结束时间戳中存在事务标识符,并且如果来自先前重启时期的事务已经提交,但是它的提交后处理从未完成,则记录版本被递交用于删除,否则记录版本的结束时间戳被设置回到无限大。
在来自先前重启时期的记录版本可以被删除之前,它被使得不可达。如果它没有被标记为空闲,则它的结束时间戳是无限大标记的时间戳。在这种情况下,记录版本可以经由一定数目的索引而可达,并且每个索引被询问记录是否通过它可达,并且如果记录版本是可达的,则要移除它。一旦所有索引已经确认记录版本不是可达的,则记录版本根本不是可达的,并且记录版本可以被回收。在回收之前,记录版本首先被提升到当前重启时期,然后被标记为空闲,并且先前保存记录版本的存储单元然后被放置在适当的空闲列表上。
因此,本文描述的原理提供了一种机制,其用于以一定方式执行正常操作以使用持久性存储库支持从崩溃快速恢复。在恢复记录的有效表示时,用于对记录进行操作的支持结构和组件是立即可用的。此外,如果持久性存储库是主存储器本身,则在正常操作中存在很少的(如果有的话)斜升时间。相应地,正常操作的更有效率的发起被实现。
本发明可以按其他具体形式被具体化,而不偏离它的精神或基本特性。所描述的实施例在所有方面仅被认为是说明性的而非限制性的。本发明的范围因此由所附权利要求而不是由前述描述来指示。在权利要求的等价物的含义和范围内的所有变化都将被涵盖在它们的范围内。

Claims (10)

1.一种版本化记录管理计算系统,包括:
持久性存储库,其包括多版本化记录集合,所述多版本化记录集合包括共同对应于多个版本的多个记录,所述多个记录与重启时期相关联;以及
对象集合介质,其上具有对象集合,所述对象集合符合对象模型,以使得所述对象模型被用于对所述多个记录进行操作,所述对象集合介质可操作以使得所述对象集合是耐久性的;
所述版本记录管理计算系统被配置为对所述对象集合执行至少一些原子操作,以使得至少在即将发生崩溃的情况下,所述对象集合在一致状态下是耐久性的,并且可用于在所述版本化记录管理计算系统的后续恢复中与所述对象模型相一致地使用,所述版本化记录管理计算系统被配置为基于每个记录的版本来管理所述多个记录的可见性,并且使得与先前重启时期相关联的记录不可见,除非被提升到当前重启时期。
2.根据权利要求1所述的版本化记录管理计算系统,所述多个记录中的至少一些记录每个包括行。
3.根据权利要求1所述的版本化记录管理计算系统,所述对象集合包括用于所述多个记录的至少一个索引。
4.根据权利要求1所述的版本化记录管理计算系统,所述对象集合包括与所述多个记录相关联的所有索引。
5.根据权利要求1所述的版本化记录管理计算系统,所述对象集合包括无锁数据结构。
6.根据权利要求1所述的版本化记录管理计算系统,所述多个记录中的记录的版本由开始时间戳和结束时间戳定义,其中如果特定时间在所述开始时间戳与所述结束时间戳之间,则所述记录的所述版本在所述特定时间是可见的。
7.根据权利要求1所述的版本化记录管理计算系统,所述对象集合介质可操作以使得所述对象集合是耐久性的,以使得每个对象在重启时处于已知位置。
8.根据权利要求1所述的版本化记录管理计算系统,进一步包括:
恢复组件,被配置为使用所述持久性存储库从崩溃恢复,以使得在所述崩溃之前在任何给定时间有效且可见的每个记录在所述崩溃之后在所述时间保持有效且可见,并且使得所述对象模型被用于对所述多个记录进行操作,其中在所述对象模型被用于在恢复之后对所述多个记录进行操作之后,所述恢复组件与正常操作并行地将所述多个记录中的至少一些记录提升到所述当前重启时期。
9.一种用于操作版本化记录管理计算系统的方法,所述方法包括:
在持久性存储库中保存多版本化记录集合的动作,所述多版本化记录集合包括共同对应于多个版本的多个记录,所述多个记录与重启时期相关联;以及
在对象集合介质上保存对象集合的动作,所述对象集合符合对象模型,以使得所述对象模型被用于对所述多个记录进行操作,所述对象集合介质可操作以使得所述对象集合是耐久性的;
对所述对象集合执行至少一些原子操作的动作,以使得至少在即将发生崩溃的情况下,所述对象集合在一致状态下是耐久性的,并且可用于在所述版本化记录管理计算系统的后续恢复中与所述对象模型相一致地使用;以及
基于每个记录的版本来管理所述多个记录的可见性的动作,并且使得与先前重启时期相关联的记录不可见,除非被提升到当前重启时期。
10.一种包括一个或多个计算机可读存储介质的计算机程序产品,所述计算机可读存储介质上具有计算可执行指令,所述计算可执行指令被构造为使得,在由所述计算系统的一个或多个处理器执行时,将所述计算系统配置为实例化和/或操作用于在版本化记录管理计算系统中使用的记录管理组件,所述版本化记录管理计算系统包括:持久性存储库,其包括多版本化记录集合,所述多版本化记录集合包括共同对应于多个版本的多个记录,所述多个版本与重启时期相关联;以及对象集合介质,其上具有对象集合,所述对象集合符合对象模型,以使得所述对象模型被用于对所述多个记录进行操作,所述对象集合介质可操作以使得所述对象集合是耐久性的,所述记录管理组件被配置为执行以下:
对所述对象集合执行至少一些原子操作的动作,以使得至少在即将发生崩溃的情况下,所述对象集合在一致状态下是耐久性的,并且可用于在所述版本化记录管理计算系统的后续恢复中与所述对象模型相一致地使用;以及
基于每个记录的版本来管理所述多个记录的可见性的动作,并且使得与先前重启时期相关联的记录不可见,除非被提升到当前重启时期。
CN201780004719.4A 2016-01-19 2017-01-14 版本化记录管理计算系统、方法和计算机可读介质 Active CN108369549B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210198795.6A CN114610537A (zh) 2016-01-19 2017-01-14 版本化记录管理计算系统、方法和计算机可读介质

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/001,090 US10296418B2 (en) 2016-01-19 2016-01-19 Versioned records management using restart era
US15/001,090 2016-01-19
PCT/US2017/013580 WO2017127312A1 (en) 2016-01-19 2017-01-14 Versioned records management using restart era

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210198795.6A Division CN114610537A (zh) 2016-01-19 2017-01-14 版本化记录管理计算系统、方法和计算机可读介质

Publications (2)

Publication Number Publication Date
CN108369549A true CN108369549A (zh) 2018-08-03
CN108369549B CN108369549B (zh) 2022-03-22

Family

ID=58046743

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201780004719.4A Active CN108369549B (zh) 2016-01-19 2017-01-14 版本化记录管理计算系统、方法和计算机可读介质
CN202210198795.6A Pending CN114610537A (zh) 2016-01-19 2017-01-14 版本化记录管理计算系统、方法和计算机可读介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202210198795.6A Pending CN114610537A (zh) 2016-01-19 2017-01-14 版本化记录管理计算系统、方法和计算机可读介质

Country Status (4)

Country Link
US (2) US10296418B2 (zh)
EP (1) EP3405871B1 (zh)
CN (2) CN108369549B (zh)
WO (1) WO2017127312A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112083914A (zh) * 2020-08-31 2020-12-15 深圳航天科技创新研究院 实现对象模型嵌入式操作系统软总线的方法及系统

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019127680A1 (de) 2019-10-15 2021-04-15 Kurtz Gmbh Werkzeug, Werkzeugsystem und Verfahren zum Herstellen von Partikelschaumstoffteilen
DE102019215845B4 (de) 2019-10-15 2023-05-11 Adidas Ag Verfahren zur Herstellung von geschäumten Partikelteilen, insbesondere für die Herstellung von Schuhsohlen

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060101091A1 (en) * 2004-10-22 2006-05-11 International Business Machines Corporation Recovering references in an extended model
CN1783004A (zh) * 2004-12-03 2006-06-07 惠普开发有限公司 使用可扩展固件接口的持久性存储器操作
CN102576354A (zh) * 2009-07-31 2012-07-11 电子湾有限公司 支持不同部署架构的可扩展框架
CN103092619A (zh) * 2013-01-16 2013-05-08 西安理工大学 将面向物联网的单机版程序转换为网络版程序的方法
CN103119557A (zh) * 2010-09-17 2013-05-22 甲骨文国际公司 云计算环境中的企业应用的基于模式的构造和扩展
US20140324782A1 (en) * 2013-04-26 2014-10-30 Hewlett-Packard Development Company, L.P. Applying write elision
CN104216725A (zh) * 2013-06-04 2014-12-17 Sap欧洲公司 用于软件解决方案托管的存储库层策略调整
US20150121126A1 (en) * 2013-10-31 2015-04-30 One Microsoft Way Crash recovery using non-volatile memory
CN104699712A (zh) * 2013-12-09 2015-06-10 阿里巴巴集团控股有限公司 对数据库中的库存记录信息进行更新的方法及装置
CN104794015A (zh) * 2015-04-16 2015-07-22 华中科技大学 一种实时流计算流速感知弹性执行容错系统

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6016553A (en) * 1997-09-05 2000-01-18 Wild File, Inc. Method, software and apparatus for saving, using and recovering data
US20020049883A1 (en) * 1999-11-29 2002-04-25 Eric Schneider System and method for restoring a computer system after a failure
US20020103814A1 (en) 2000-12-12 2002-08-01 Edouard Duvillier High speed, non-log based database recovery technique
US20040010502A1 (en) 2002-07-12 2004-01-15 Bomfim Joanes Depaula In-memory database for high performance, parallel transaction processing
US7478096B2 (en) * 2003-02-26 2009-01-13 Burnside Acquisition, Llc History preservation in a computer storage system
KR100515890B1 (ko) 2005-03-07 2005-09-20 주식회사 퓨전소프트 효율적인 데이터베이스 복구방법
US20060253498A1 (en) 2005-05-05 2006-11-09 International Business Machines Corporation Method and apparatus for reclaiming memory from a heap
US7613743B1 (en) 2005-06-10 2009-11-03 Apple Inc. Methods and apparatuses for data protection
US20070033356A1 (en) 2005-08-03 2007-02-08 Boris Erlikhman System for Enabling Secure and Automatic Data Backup and Instant Recovery
US20070288247A1 (en) * 2006-06-11 2007-12-13 Michael Mackay Digital life server
US7840612B2 (en) 2006-10-23 2010-11-23 Research In Motion Limited Methods and apparatus for concurrently executing a garbage collection process during execution of a primary application program
US20080162589A1 (en) * 2006-12-29 2008-07-03 Microsoft Corporation Weakly-consistent distributed collection compromised replica recovery
US8655939B2 (en) * 2007-01-05 2014-02-18 Digital Doors, Inc. Electromagnetic pulse (EMP) hardened information infrastructure with extractor, cloud dispersal, secure storage, content analysis and classification and method therefor
US7818610B2 (en) 2007-09-27 2010-10-19 Microsoft Corporation Rapid crash recovery for flash storage
US9183560B2 (en) * 2010-05-28 2015-11-10 Daniel H. Abelow Reality alternate
US10430298B2 (en) 2010-10-28 2019-10-01 Microsoft Technology Licensing, Llc Versatile in-memory database recovery using logical log records
US8423589B2 (en) 2011-03-14 2013-04-16 International Business Machines Corporation Copy collector with efficient abort-on-copy transition to mark collector
WO2012129191A2 (en) * 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9678863B2 (en) * 2012-06-12 2017-06-13 Sandisk Technologies, Llc Hybrid checkpointed memory
US11030055B2 (en) 2013-03-15 2021-06-08 Amazon Technologies, Inc. Fast crash recovery for distributed database systems
US9477557B2 (en) 2013-03-28 2016-10-25 Microsoft Technology Licensing, Llc Transaction processing using torn write detection
US10162716B2 (en) 2014-06-09 2018-12-25 Sap Se Hybrid SCM-DRAM transactional storage engine for fast data recovery
US10108623B2 (en) * 2014-12-12 2018-10-23 International Business Machines Corporation Merging database operations for serializable transaction execution

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060101091A1 (en) * 2004-10-22 2006-05-11 International Business Machines Corporation Recovering references in an extended model
CN1783004A (zh) * 2004-12-03 2006-06-07 惠普开发有限公司 使用可扩展固件接口的持久性存储器操作
CN102576354A (zh) * 2009-07-31 2012-07-11 电子湾有限公司 支持不同部署架构的可扩展框架
CN103119557A (zh) * 2010-09-17 2013-05-22 甲骨文国际公司 云计算环境中的企业应用的基于模式的构造和扩展
CN103092619A (zh) * 2013-01-16 2013-05-08 西安理工大学 将面向物联网的单机版程序转换为网络版程序的方法
US20140324782A1 (en) * 2013-04-26 2014-10-30 Hewlett-Packard Development Company, L.P. Applying write elision
CN104216725A (zh) * 2013-06-04 2014-12-17 Sap欧洲公司 用于软件解决方案托管的存储库层策略调整
US20150121126A1 (en) * 2013-10-31 2015-04-30 One Microsoft Way Crash recovery using non-volatile memory
CN104699712A (zh) * 2013-12-09 2015-06-10 阿里巴巴集团控股有限公司 对数据库中的库存记录信息进行更新的方法及装置
CN104794015A (zh) * 2015-04-16 2015-07-22 华中科技大学 一种实时流计算流速感知弹性执行容错系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
程付超等: "自适应的分布式文件系统元数据管理模型", 《计算机工程与设计》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112083914A (zh) * 2020-08-31 2020-12-15 深圳航天科技创新研究院 实现对象模型嵌入式操作系统软总线的方法及系统
CN112083914B (zh) * 2020-08-31 2023-09-12 深圳航天科技创新研究院 实现对象模型嵌入式操作系统软总线的方法及系统

Also Published As

Publication number Publication date
CN114610537A (zh) 2022-06-10
US10915403B2 (en) 2021-02-09
WO2017127312A1 (en) 2017-07-27
EP3405871B1 (en) 2019-10-30
US10296418B2 (en) 2019-05-21
EP3405871A1 (en) 2018-11-28
CN108369549B (zh) 2022-03-22
US20190243712A1 (en) 2019-08-08
US20170206138A1 (en) 2017-07-20

Similar Documents

Publication Publication Date Title
CN103765393B (zh) 存储系统
JP4704893B2 (ja) 計算機システム及び管理計算機とストレージシステム並びにバックアップ管理方法
US9519591B2 (en) Latch-free, log-structured storage for multiple access methods
CN103092905B (zh) 使用虚拟文件数据对象的列式数据库
US8392386B2 (en) Tracking file contents
US10572508B2 (en) Consistent query execution in hybrid DBMS
CN107077495A (zh) 数据库管理系统中的高性能事务
CN107835983A (zh) 使用一致的数据库快照在分布式数据库中进行备份和还原
CN109923523A (zh) 关联工作集和线程
CN106021017A (zh) 用于备份和恢复克隆文件的方法和系统
JP2004062869A (ja) コンピュータ・システムでのトランザクションの選択的キャッシングの方法および装置
EP2562657B1 (en) Management of update transactions and crash recovery for columnar database
JP6387399B2 (ja) データ操作のための、メモリ及びストレージ空間の管理
CN108369549A (zh) 使用重启时期的版本化记录管理
US9940066B2 (en) Snapshot management in hierarchical storage infrastructure
Herodotou AutoCache: Employing machine learning to automate caching in distributed file systems
AU2005310983B2 (en) Cache for an enterprise software system
US20180232281A1 (en) Versioned records management using restart era
CN108733584A (zh) 用于优化数据缓存的方法和设备
Chang et al. Eager synching: a selective logging strategy for fast fsync () on flash-based Android devices
WO2014061847A1 (ko) 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치 및 그 방법
EP3989074B1 (en) Method for optimizing execution of high-performance computing workflows
JP5401127B2 (ja) ファイルの世代管理システムおよび世代管理方法、ならびにそのためのプログラム
Rodrigues Cyclic distributed garbage collection
JP3520524B2 (ja) データ管理方法

Legal Events

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