CN108369549B - 版本化记录管理计算系统、方法和计算机可读介质 - Google Patents
版本化记录管理计算系统、方法和计算机可读介质 Download PDFInfo
- Publication number
- CN108369549B CN108369549B CN201780004719.4A CN201780004719A CN108369549B CN 108369549 B CN108369549 B CN 108369549B CN 201780004719 A CN201780004719 A CN 201780004719A CN 108369549 B CN108369549 B CN 108369549B
- Authority
- CN
- China
- Prior art keywords
- computing system
- records
- record management
- management computing
- objects
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 27
- 230000002085 persistent effect Effects 0.000 claims abstract description 44
- 238000011084 recovery Methods 0.000 claims abstract description 43
- 230000001737 promoting effect Effects 0.000 claims description 4
- 238000004220 aggregation Methods 0.000 claims 3
- 230000002776 aggregation Effects 0.000 claims 3
- 238000001514 detection method Methods 0.000 claims 1
- 230000007246 mechanism Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
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 (20)
1.一种版本化记录管理计算系统,所述版本化记录管理计算系统具有当所述版本化记录管理计算系统从崩溃恢复时改变的重启时期,所述计算系统包括:
至少一个处理器;
持久性存储库,其包括均标记有重启时期的多个项目,其中在当前重启时期中被创建的任何项目被标记有所述当前重启时期,所述持久性存储库包括多版本化记录集合,所述多版本化记录集合包括共同对应于多个版本的多个记录,所述多个记录与重启时期相关联;以及
对象集合介质,其上具有对象集合,所述对象集合符合对象模型,以使得所述对象模型被用于对所述多个记录进行操作,所述对象集合介质可操作以使得所述对象集合是耐久性的;
所述版本记录管理计算系统被配置为对所述对象集合执行至少一些原子操作,以使得至少在即将发生崩溃的情况下,所述对象集合在一致状态下是耐久性的,并且可用于在所述版本化记录管理计算系统的后续恢复中与所述对象模型相一致地使用,所述版本化记录管理计算系统被配置为基于每个记录的版本来管理所述多个记录的可见性。
2.根据权利要求1所述的版本化记录管理计算系统,所述多个记录中的至少一些记录每个包括行。
3.根据权利要求1所述的版本化记录管理计算系统,所述多个记录中的至少一些记录每个包括列。
4.根据权利要求1所述的版本化记录管理计算系统,所述对象集合包括用于所述多个记录的至少一个索引。
5.根据权利要求1所述的版本化记录管理计算系统,所述对象集合包括与所述多个记录相关联的所有索引。
6.根据权利要求1所述的版本化记录管理计算系统,所述对象集合包括无锁数据结构。
7.根据权利要求1所述的版本化记录管理计算系统,所述多个记录中的记录的版本由开始时间戳和结束时间戳定义,其中如果特定时间在所述开始时间戳与所述结束时间戳之间,则所述记录的所述版本在所述特定时间是可见的。
8.根据权利要求1所述的版本化记录管理计算系统,所述对象集合介质可操作以使得所述对象集合是耐久性的,以使得每个对象在重启时处于已知位置。
9.根据权利要求1所述的版本化记录管理计算系统,所述存储库包括持久性主存储器。
10.根据权利要求9所述的版本化记录管理计算系统,所述对象集合介质也包括所述持久性主存储器。
11.根据权利要求1所述的版本化记录管理计算系统,所述对象集合介质包括耐久性存储库。
12.根据权利要求11所述的版本化记录管理计算系统,所述耐久性存储库包括持久性主存储器。
13.根据权利要求11所述的版本化记录管理计算系统,所述耐久性存储库包括易失性高速缓存,所述易失性高速缓存被配置为检测即将发生的崩溃,并且在检测到即将发生的崩溃时将所述易失性高速缓存的内容的至少一部分放置到耐久性存储器中。
14.根据权利要求13所述的版本化记录管理计算系统,所述耐久性存储器包括持久性主存储器。
15.根据权利要求14所述的版本化记录管理计算系统,所述易失性高速缓存的所述内容的所述部分包括所述易失性高速缓存的一部分。
16.根据权利要求1所述的版本化记录管理计算系统,进一步包括:
恢复组件,被配置为使用所述持久性存储库从崩溃恢复,以使得在所述崩溃之前在任何给定时间有效且可见的每个记录在所述崩溃之后在所述时间保持有效且可见,并且使得所述对象模型被用于对所述多个记录进行操作。
17.根据权利要求16所述的版本化记录管理计算系统,其中在所述对象模型被用于在恢复之后对所述多个记录进行操作之后,所述恢复组件与正常操作并行地将所述多个记录中的至少一些记录提升到所述当前重启时期。
18.一种用于操作版本化记录管理计算系统的方法,所述版本化记录管理计算系统具有当所述版本化记录管理计算系统从崩溃恢复时改变的重启时期,所述方法包括:
在持久性存储库中保存多版本化记录集合的动作,所述多版本化记录集合包括共同对应于多个版本的多个记录,所述多个记录与重启时期相关联;以及
在对象集合介质上保存对象集合的动作,所述对象集合符合对象模型,以使得所述对象模型被用于对所述多个记录进行操作,所述对象集合介质可操作以使得所述对象集合是耐久性的;以及
对所述对象集合执行至少一些原子操作的动作,以使得至少在即将发生崩溃的情况下,所述对象集合在一致状态下是耐久性的,并且可用于在所述版本化记录管理计算系统的后续恢复中与所述对象模型相一致地使用。
19.根据权利要求18所述的用于操作版本化记录管理计算系统的方法,所述方法进一步包括:
使用所述持久性存储库从崩溃恢复的动作,以使得在所述崩溃之前在任何给定时间有效且可见的每个记录在所述崩溃之后在所述时间保持有效且可见,并且使得所述对象模型被用于对所述多个记录进行操作;
在恢复之后使用所述对象模型对所述多个记录进行操作的动作,以促进正常操作;
在正常操作期间,评估所述多个记录中的至少一些记录中的每个记录的动作,并且作为结果,将已评估的记录中的至少一些记录的重启时期提升到当前重启时期的动作。
20.一种计算机可读介质,所述计算机可读介质上具有计算可执行指令,所述计算可执行指令被构造为使得,在由所述计算系统的一个或多个处理器执行时,将所述计算系统配置为实例化和/或操作用于在版本化记录管理计算系统中使用的记录管理组件,所述版本化记录管理计算系统包括:持久性存储库,其包括多版本化记录集合,所述多版本化记录集合包括共同对应于多个版本的多个记录,所述多个版本与重启时期相关联;以及对象集合介质,其上具有对象集合,所述对象集合符合对象模型,以使得所述对象模型被用于对所述多个记录进行操作,所述对象集合介质可操作以使得所述对象集合是耐久性的,所述记录管理组件被配置为执行以下:
对所述对象集合执行至少一些原子操作的动作,以使得至少在即将发生崩溃的情况下,所述对象集合在一致状态下是耐久性的,并且可用于在所述版本化记录管理计算系统的后续恢复中与所述对象模型相一致地使用;以及
基于每个记录的版本来管理所述多个记录的可见性的动作。
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 | 2016-01-19 | ||
US15/001,090 US10296418B2 (en) | 2016-01-19 | 2016-01-19 | Versioned records management using restart era |
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 CN108369549A (zh) | 2018-08-03 |
CN108369549B true 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) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102019215845B4 (de) * | 2019-10-15 | 2023-05-11 | Adidas Ag | Verfahren zur Herstellung von geschäumten Partikelteilen, insbesondere für die Herstellung von Schuhsohlen |
DE102019127680A1 (de) | 2019-10-15 | 2021-04-15 | Kurtz Gmbh | Werkzeug, Werkzeugsystem und Verfahren zum Herstellen von Partikelschaumstoffteilen |
CN112083914B (zh) * | 2020-08-31 | 2023-09-12 | 深圳航天科技创新研究院 | 实现对象模型嵌入式操作系统软总线的方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 | 甲骨文国际公司 | 云计算环境中的企业应用的基于模式的构造和扩展 |
CN104216725A (zh) * | 2013-06-04 | 2014-12-17 | Sap欧洲公司 | 用于软件解决方案托管的存储库层策略调整 |
CN104699712A (zh) * | 2013-12-09 | 2015-06-10 | 阿里巴巴集团控股有限公司 | 对数据库中的库存记录信息进行更新的方法及装置 |
CN104794015A (zh) * | 2015-04-16 | 2015-07-22 | 华中科技大学 | 一种实时流计算流速感知弹性执行容错系统 |
Family Cites Families (26)
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 |
US20060101091A1 (en) * | 2004-10-22 | 2006-05-11 | International Business Machines Corporation | Recovering references in an extended model |
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 |
US9417974B2 (en) | 2013-03-28 | 2016-08-16 | Microsoft Technology Licensing, Llc. | Transaction processing for database in persistent system |
US9411692B2 (en) * | 2013-04-26 | 2016-08-09 | Hewlett Packard Enterprise Development Lp | Applying write elision |
US9558080B2 (en) | 2013-10-31 | 2017-01-31 | Microsoft Technology Licensing, Llc | Crash recovery using non-volatile memory |
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 |
-
2016
- 2016-01-19 US US15/001,090 patent/US10296418B2/en active Active
-
2017
- 2017-01-14 CN CN201780004719.4A patent/CN108369549B/zh active Active
- 2017-01-14 EP EP17705502.7A patent/EP3405871B1/en active Active
- 2017-01-14 WO PCT/US2017/013580 patent/WO2017127312A1/en unknown
- 2017-01-14 CN CN202210198795.6A patent/CN114610537A/zh active Pending
-
2019
- 2019-04-18 US US16/388,009 patent/US10915403B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 | 西安理工大学 | 将面向物联网的单机版程序转换为网络版程序的方法 |
CN104216725A (zh) * | 2013-06-04 | 2014-12-17 | Sap欧洲公司 | 用于软件解决方案托管的存储库层策略调整 |
CN104699712A (zh) * | 2013-12-09 | 2015-06-10 | 阿里巴巴集团控股有限公司 | 对数据库中的库存记录信息进行更新的方法及装置 |
CN104794015A (zh) * | 2015-04-16 | 2015-07-22 | 华中科技大学 | 一种实时流计算流速感知弹性执行容错系统 |
Non-Patent Citations (1)
Title |
---|
自适应的分布式文件系统元数据管理模型;程付超等;《计算机工程与设计》;20140331;第35卷(第3期);第867-874段 * |
Also Published As
Publication number | Publication date |
---|---|
US20190243712A1 (en) | 2019-08-08 |
EP3405871A1 (en) | 2018-11-28 |
CN108369549A (zh) | 2018-08-03 |
EP3405871B1 (en) | 2019-10-30 |
US20170206138A1 (en) | 2017-07-20 |
WO2017127312A1 (en) | 2017-07-27 |
US10915403B2 (en) | 2021-02-09 |
US10296418B2 (en) | 2019-05-21 |
CN114610537A (zh) | 2022-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11921684B2 (en) | Systems and methods for database management using append-only storage devices | |
US9740582B2 (en) | System and method of failover recovery | |
CN111801661B (zh) | 多主机分布式数据管理系统中的事务操作 | |
US8250033B1 (en) | Replication of a data set using differential snapshots | |
US9438672B2 (en) | Method for client specific database change propagation | |
US10642530B2 (en) | Global occupancy aggregator for global garbage collection scheduling | |
US10761936B2 (en) | Versioned records management using restart era | |
US10915403B2 (en) | Versioned records management using restart era | |
CN111656325B (zh) | 在按时间排序的日志结构化键-值存储系统中从故障快速恢复 | |
US11093348B2 (en) | Method, device and computer program product for recovering metadata | |
Chang et al. | Eager synching: a selective logging strategy for fast fsync () on flash-based Android devices | |
WO2014061847A1 (ko) | 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치 및 그 방법 | |
US11099948B2 (en) | Persistent storage segment caching for data recovery | |
CN112740639B (zh) | 计算环境中的备份组合计算系统、方法和程序产品 | |
US20200097572A1 (en) | Adjusting growth of persistent log |
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 |