使用拆毁写检测的事务处理制造技术

技术编号:12514010 阅读:50 留言:0更新日期:2015-12-16 11:50
在具有经由总线耦合至一个或多个处理器的一个或多个持久系统的计算系统的上下文中执行事务。作为示例,持久系统可充当计算系统的主存储器的至少一部分。事务可以实现多版本化,其中记录没有被就地更新。相反,每一记录被表示为一个或多个记录版本的序列,每一版本具有在期间该记录版本被认为正确地表示该记录的有效间隔。事务处理使用拆毁写入检测,使得恢复过程可以使用这样的防护来验证不存在拆毁写入。例如,拆毁写入防护可被用来验证记录版本的完整性以及引用记录版本的日志缓冲区的完整性。

【技术实现步骤摘要】
【国外来华专利技术】使用拆毁写检测的事务处理背景现代计算系统包括通过存储器总线耦合到系统存储器的一个或多个处理器。系统存储器包括可由处理器通过存储器总线来寻址的存储器位置。处理器经由存储器总线从系统存储器读取数据并向其写入数据。处理器通常可包括一个或多个高速缓存,用于更快地读取和写入高速缓存中可用的数据。因为系统存储器可能不足够大而不能包含需要的所有数据和指令,分页算法已被开发以将数据和指令在外部非易失性存储(如硬盘驱动器或固态盘)与系统存储器之间分页。数据库系统通常管理相当大的数据库表,并且因而通常,这些表的结构被持久存储在外部非易失性存储上,同时当前正操作的数据被分页到系统存储器中。然而,更新近的数据库系统将数据库表存储在易失性系统存储器中。这样的存储器内表的持久性通过将对外部存储(如磁硬盘驱动器或固态驱动器)的所有变更记入日志来确保。另外,这样的数据库系统还可将数据库状态的检查点维护在这样的外部存储上。在崩溃后,根据最新检查点和日志,最新数据库状态被重建在系统存储器中。
技术实现思路
本文所述的至少一些实施例涉及在具有通过总线耦合至一个或多个处理器的一个或多个持久系统的计算系统的上下文中执行事务。作为示例,持久系统可充当计算系统的主存储器的至少一部分。事务可以实现多版本化,其中记录没有被就地更新。相反,每一记录被表示为一个或多个记录版本的序列,每一版本具有在期间该记录版本被认为正确地表示该记录的有效间隔。事务处理使用拆毁写入检测,使得恢复过程可以使用这样的防护来验证不存在拆毁写入。例如,拆毁写入可被用来验证记录版本的完整性以及引用记录版本的日志缓冲区的完整性。本
技术实现思路
不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的作用域。附图简述为了描述能够获得上述和其它优点和特征的方式,各实施例的更具体的描述将通过参考各附图来呈现。可以理解,这些附图只描绘了示例实施例,并且因此不被认为是对其作用域的限制,将通过使用附图并利用附加特征和细节来描述和解释各实施例,在附图中:图1抽象地示出了可以在其中使用此处所描述的一些实施例的计算系统;图2示出包括经由通信总线耦合的一个或多个处理器和一个或多个持久系统的计算环境;图3示出用于多版本化系统中的示例记录版本格式,其中各记录没有被就地更新,而是通过添加新记录版本来被修改;图4A示出事务处理的第一阶段,其中开始事务事件触发正常处理;图4B示出事务处理的第二阶段,其中提交前事件触发提交前处理阶段包括确认过程和记入日志过程;图4C示出事务处理的第三阶段,其中提交/放弃事件触发后处理阶段并且由终止事件来结束;图5示出用于在持久系统中的数据库上执行事务的提交前处理的方法的流程图;图6示出用于对事务进行后提交处理的方法的流程图;图7示出用于恢复具有持久系统的计算系统的第一部分的方法的流程图;以及图8示出用于在具有持久系统的计算系统中进行恢复的第二部分的方法的流程图。详细描述本文所述的至少一些实施例涉及在具有通过总线耦合至一个或多个处理器的一个或多个持久系统的计算系统的上下文中执行事务。作为示例,持久系统可充当计算系统的主存储器的至少一部分。事务可以实现多版本化,其中记录没有被就地更新。相反,每一记录被表示为一个或多个记录版本的序列,每一版本具有在期间该记录版本被认为正确地表示该记录的有效间隔。事务处理使用拆毁写入检测,使得恢复过程可以使用这样的防护来验证不存在拆毁写入。例如,拆毁写入防护可被用来验证记录版本的完整性以及引用记录版本的日志缓冲区的完整性。首先,将参考图1来描述对计算系统的一些介绍性讨论。随后,将参考后续附图描述在具有充当主存储器的至少一部分的持久系统的计算系统中的事务的示例执行以及从故障恢复。首先,将参考图1来描述对计算系统的一些介绍性讨论。随后,将参考后续附图描述在具有充当主存储器的至少一部分的持久系统的计算系统中的事务的示例执行以及从故障恢复。计算系统现在越来越多地采取多种多样的形式。计算系统可以例如是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统,或者甚至通常不被视为计算系统的设备。在该说明书以及在权利要求书中,术语“计算系统”被宽泛地定义为包括任何设备或系统(或其组合),所述设备或系统包括至少一个物理且有形的处理器、以及能在其上具有可由处理器执行的计算机可执行指令的物理且有形的存储器。存储器可以采取任何形式,并可以取决于计算系统的特性和形式。计算系统可以分布在网络环境中,并可包括多个组分计算系统。如图1所示,在其最基本的配置中,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,该物理系统存储器可以是易失性、非易失性、或两者的某种组合。术语“存储器”也可在此用来指示诸如物理存储介质这样的非易失性大容量存储器。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如此处使用的,术语“可执行模块”或“可执行组件”可以指可以在计算系统上执行的软件对象、例程或方法。此处所描述的不同组件、模块、引擎,以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或多个计算机可读介质上实现。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可以存储在计算系统100的存储器104中。计算系统100还可包含允许计算系统100例如通过网络110与其他消息处理器通信的通信信道108。此处所描述的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。此处所描述的各实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理介质和其他计算机可读介质。这些计算机可读介质可以是通用或专用计算机系统能够访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行指令的计算机可读介质是传输介质。因此,通过示例但非限制,本专利技术的实施例可以包括至少两种完全不同种类的计算机可读介质:计算机存储介质和传输介质。计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他有形介质。“网络”被定义为允许计算机系统和/或模块和/或其他电子设备间的电子数据传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可以包括可用于携带期望程序代码装置的网络和/或数据链路,所述期望程序代码装置的形式为可由通用或专用计算机访问的计算机可执行指令或数据结构。上述的组合应当也被包括在计算机可读介质的范围内。此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码资料可从传输本文档来自技高网...

【技术保护点】
一种用于对经由总线耦合至一个或多个处理器的持久系统中的记录集合执行事务的方法,所述方法包括:将后提交处理信息记入日志的动作,所述后提交处理信息至少包括当前事务的提交标记、由所述当前事务创建的每一记录版本的指针以及由所述当前事务更新的每一记录版本的指针;对于由所述当前事务创建的每一记录版本,执行以下动作:在对应的记录版本的至少一部分上创建拆毁写入防护的动作;以及以与对应的记录版本的指针相关联的方式将所述记录版本的拆毁写入防护添加到所述后提交处理信息的动作;在所述后提交处理信息的至少一部分上创建拆毁写入防护的动作;以及将所述后提交处理信息的拆毁写入防护与所述后提交处理信息进行关联的动作。

【技术特征摘要】
【国外来华专利技术】2013.03.28 US 61/806,337;2013.05.10 US 13/892,1731.一种用于对经由总线耦合至一个或多个处理器的持久系统中的记录集合执行事务的方法,所述方法能用于促进检测与所述事务相关联的记录版本级和事务级拆毁写入,所述方法包括:将后提交处理信息记入日志缓冲区的动作,所述后提交处理信息至少包括当前事务的提交标记并且包括由所述当前事务创建的每一新记录版本的指针以及由所述当前事务更新的每一记录版本的至少一部分的指针;对于由所述当前事务创建的每一新记录版本,执行以下动作:创建包括以下中的至少一者的记录版本级拆毁写入防护的动作:在对应的记录版本的至少一部分上计算的校验和或者与先前应用到对应的记录版本的预定模式相对应的位图;以及将所述记录版本级拆毁写入防护添加到所述日志缓冲区的动作,使得所述日志缓冲区包括每一新记录的提交标记、指针和拆毁写入防护;在将每一新记录版本的记录版本级拆毁写入防护添加到所述日志缓冲区之后,基于所述日志缓冲区创建事务级拆毁写入防护的动作,所述事务级拆毁写入防护包括以下中的至少一者:在所述日志缓冲区的至少一部分上计算的校验和或者与先前应用到所述日志缓冲区的预定模式相对应的位图;以及将所创建的事务级拆毁写入防护添加到所述日志缓冲区的动作,使得所述日志缓冲区包括每一记录的提交标记、每一记录的指针、以及每一新记录的拆毁写入防护、以及所述事务级拆毁写入防护。2.如权利要求1所述的方法,其特征在于,进一步包括:将所述后提交处理信息和相关联的事务级拆毁写入防护提供给所述持久系统的动作。3.如权利要求2所述的方法,其特征在于,进一步包括:对于由所述当前事务创建的每一记录版本,将所述记录版本提供给所述持久系统的动作;以及对于由所述当前事务更新的每一记录版本,将所述记录版本的至少一部分提供给所述持久系统的动作。4.如权利要求2所述的方法,其特征在于,进一步包括:确认由所述当前事务创建的记录版本、由所述当前事务更新的所述记录版本的至少所述部分、以及所述后提交处理信息和相关联的事务级拆毁写入防护已被持久存储在所述持久系统...

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

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

1