当前位置: 首页 > 专利查询>SAP股份公司专利>正文

数据库日志并行化制造技术

技术编号:8682783 阅读:170 留言:0更新日期:2013-05-09 02:44
运行数据存储应用中的多个事务,在运行过程中,将根据所述多个事务的日志条目(log?entry)存储在多个日志缓冲区中。所述日志条目被顺序写入当前日志缓冲区并且根据轮转分布将多个日志缓冲区写入多个日志分区。之后,响应于数据恢复事件,日志缓冲区中的日志条目的顺序列表被组合以生成日志,该日志可以被数据存储应用用于数据恢复。还描述了相关的装置、系统、技术和物件。

【技术实现步骤摘要】

这里描述的主题涉及用于生成能够实现简化的数据恢复的并行数据库日志的技术。
技术介绍
传统的数据库一般使用日志记录(logging)将对相应数据执行的操作以同步的方式存储到日志中,而同时将数据异步地写入相应的数据区中。在崩溃或其它数据恢复事件的情况下,数据区被恢复到可能较旧的状态。回放(replaying)日志会将数据库带到最终提交状态(last committed state)。因此,对于在线操作以及数据恢复来说,日志记录是数据库的重要的性能关键(performance-critical)的组件。
技术实现思路
在一个方面中,运行数据存储应用中的多个事务。根据多个事务的日志条目(logentry)被存储在多个日志缓冲区中。日志条目被顺序写入当前日志缓冲区并且根据轮转分布(round-robin distribution)将多个日志缓冲区写入多个日志分区(log partition)。之后,响应于数据恢复事件,日志缓冲区中的日志条目的顺序列表被组合以生成日志,该日志可以被数据存储应用用于数据恢复。本主题可以与各种数据存储应用(包括但不限于内存数据库(in-memorydatabase)) 一起操作。写入单个日志分区的至少两个日志缓冲区可以是非连续(non-consecutive)的(其是轮转分布方案的产物(artifact))。每个日志缓冲区可以包括1/0结束标记,其指示与该日志缓冲区相关联的输入/输出操作已经结束(即,该日志缓冲区已经被写入相应的日志分区,等等)。每个日志缓冲区也可以包括先前的1/0结束标记,其指示轮转分布中的紧前一个(immediatelypreceding)日志缓冲区已经被写入相应的日志分区。每个日志缓冲区可以具有关联的提交回调(commit callback)集合,使得在调用紧前一个日志缓冲区的提交回调的集合之后设置当前日志缓冲区中的先前1/0结束标记。可以在相应的1/0结束标记和先前的1/0结束标记都已经被设置时,将成功的提交调用告知每个日志缓冲区的提交回调集合。还描述了生产物品,其包括持久地存储在非暂时性计算机可读介质上的计算机可执行的指令,当计算机执行所述指令时,使得计算机执行这里的操作。类似地,也描述了计算机系统,其可以包括处理器和耦合到处理器的存储器。该存储器可以临时或持久地存储使得该处理器执行这里描述的操作中的一个或多个操作的一个或多个程序。此外,方法所规定的操作可以通过单个计算系统内的一个或多个数据处理器或分布在两个或多个计算系统中的一个或多个数据处理器来实现。这里描述的主题提供许多优点。例如,这里提供的日志分区被视为单个逻辑日志分区,从而充当线性日志(linear log),其与传统数据库相比允许简化的回放(即,可以使用不太复杂的回放算法,从而减少处理功耗以及回放时间,等等)。此外,本主题允许更高效的OLAP事务的恢复,OLAP事务一般包括仅使用单个日志分区的大负荷操作。更具体来说,本主题的优点在于:其确保跨日志分区的提交持久性(commit durability),进而确保提交回调的正确排序(与日志记录提交记录的排序相同)。这里描述的主题的ー个或多个变形的细节在附图和下面的描述中进行陈述。这里描述的主题的其它特征和优点将从该描述和附图中以及从权利要求中变得明显。附图说明图1是图示包括数据存储应用的系统的示图;图2是图示用于生成数据存储应用的数据恢复日志的技术的处理流程图;图3是图示图1的系统的细节的示图;以及图4是图示存储在多个日志分区中的日志缓冲区的示图。各个附图中的相同的參考符号指示相同的元素。具体实施例方式图1示出系统100的示例,在系统100中,计算系统102可以包括可以在ー个或多个网络上井置、链接的一个或多个可编程处理器,等等,计算系统102运行数据存储应用的一个或多个模块、软件组件等等。数据存储应用104可以包括数据库、企业资源程序、分布式存储系统(例如,加拿大NetApp of Sunnyvale公司的NetApp Filer)中的ー个或多个。所述ー个或多个模块、软件组件等等对于计算系统102的本地用户以及从ー个或多个客户端机器106通过网络连接110访问计算系统102的远程用户来说是可访问的。由ー个或多个第一模块产生的一个或多个用户界面屏幕可以通过本地显示器或通过与客户端机器106中的一个相关联的显示器显示给用户。数据存储应用104的数据单元可以暂时存储在持久层(persistence layer) 112 (例如,页缓冲器或其它类型的临时持久层),持久层112可以通过例如输入/输出组件116将数据以存储页的形式写入一个或多个存储器114中。一个或多个存储器114可以包括被配置为用于写入要长期存储的数据的ー个或多个物理存储介质或设备(例如,硬盘驱动器、持久快闪存储器、随机访问存储器、光介质、磁介质等等)。应当注意的是,存储器114和输入/输出组件116可以被包括在计算系统102中,尽管它们在图1中被示出为在计算系统102的外部。保留在长期存储器114中的数据可以按页来组织。每ー页被分配了规定量的存储空间。在一些实现方案中,分配给每ー页的存储空间的量可以是不变和固定的。然而,其中分配给每ー页的存储空间的量可以变化的其它实施方案也在本主题的范围内。图2是处理流程图200,在图220中,在210,在数据存储应用中运行多个事务。在220,与多个事务相对应的日志条目被存储在多个日志缓冲区中。毎次,正好只有ー个日志缓冲区是“当前缓冲器”,日志条目随着它们被事务生成而按顺序存储到该当前缓冲器中。当这个缓冲器变满时,下一个缓冲器被拾取作为当前缓冲器而原来的当前缓冲器被写入日志分区。要写入日志缓冲区的日志分区按照轮转方式从多个日志分区中选择。之后,响应于数据恢复事件,在230,可以通过适当地串接(concatenate)从多个日志分区读取的日志缓冲区中的数据,按照相应日志缓冲区中的第一条目的日志序号排序,来组合日志条目的顺序列表,以生成可以用于数据恢复的日志。该条目列表的排序与在日志写入期间这些条目被生成的顺序1:1地匹配。图3示出与当前主题的一个或多个特征一致的软件架构300。数据存储应用104可以以一个或多个硬件和软件来实现,并且可以包括数据库应用、网络附接的存储系统等等中的一个或多个。根据当前主题的至少一些实现方案,这样的数据存储应用104可以包括持久层112或者具有持久层112的界面,或者经由例如持久界面302的其它类型的日志缓冲区界面。持久层112中的页缓冲器304可以存储一个或多个逻辑页306,并且可选地可以包括隐式页(shadow page)、活动页(active page)等等。保留在持久层112中的逻辑页306可以经由输入/输出组件116被写入存储器(例如,长期存储器等等)114,输入/输出组件116可以是软件模块、以一个或多个软件和硬件实现的子系统、等等。存储器114可以包括一个或多个数据卷(volume) 310,其中所存储的页312被分配在物理存储块上。在一些实现方案中,数据存储应用104可以包括页管理器314和/或保存点管理器316,或者与页管理器314和/或保存点管理器316通信。页管理器314可以与持久层112中的页管理模本文档来自技高网...

【技术保护点】
一种计算机程序产品,包括非暂时性机器可读介质,该机器可读介质存储指令,当该指令被至少一个可编程处理器运行时,使得该至少一个可编程处理器执行下列操作:运行数据存储应用中的多个事务;将根据所述多个事务的日志条目存储到多个日志缓冲区中,所述日志条目被顺序写入当前日志缓冲区,所述多个日志缓冲区根据轮转分布被写入多个日志分区;以及响应于数据恢复事件,组合日志缓冲区中的日志条目的顺序列表以产生日志,该日志被该数据存储应用用于数据恢复。

【技术特征摘要】
2011.11.07 US 13/290,2861.一种计算机程序产品,包括非暂时性机器可读介质,该机器可读介质存储指令,当该指令被至少ー个可编程处理器运行吋,使得该至少一个可编程处理器执行下列操作: 运行数据存储应用中的多个事务; 将根据所述多个事务的日志条目存储到多个日志缓冲区中,所述日志条目被顺序写入当前日志缓冲区,所述多个日志缓冲区根据轮转分布被写入多个日志分区;以及 响应于数据恢复事件,组合日志缓冲区中的日志条目的顺序列表以产生日志,该日志被该数据存储应用用于数据恢复。2.按权利要求1所述的计算机程序产品,其中该数据存储应用包含内存数据库。3.按权利要求1所述的计算机程序产品,其中被写入单个日志分区的至少两个日志缓冲区是不连续的。4.按权利要求1所述的计算机程序产品,其中每个日志缓冲区包含I/O结束标记,其指示向相应日志分区写入日志缓冲区的输入/输出操作已经结束。5.按权利要求4所述的计算机程序产品,其中每个日志缓冲区包含先前的I/O结束标记,其指示轮转分布中的紧前ー个日志缓冲区已经被写入相应的日志分区。6.按权利要求5所述的计算机程序产品,其中每个日志缓冲区具有关联的提交回调集合,并且其中在调用紧前ー个日志缓冲区的提交回调集合之后设置当前日志缓冲区的先前I/O标记。7.按权利要求6所述的计算机程序产品,其中当相应的I/O结束标记和先前的I/O结束标记都已经被设置时,将成功的提交调用告知每个日志缓冲区的提交回调集合。8.一种用于由一个或多个可编程处理器来实现的方法,包括: 由至少ー个数据处理器运行数据存储应用中的多个事务; 将根据所述多个事务的日志条目存储到多个日志缓冲区中,所述日志条目被顺序写入当前日志缓冲区,所述多个日志缓冲区根据轮转分布被写入多个日志分区;以及 响应于数据恢复事件,由至少ー个数据处理器组合日志缓冲区中的日志条目的顺序列表以产生日志,该日志被该数据存储应用用于数据恢复。9.按权利要求8所述的方法,其中该数据存储应用包含内存数据库。10.按权利要求9...

【专利技术属性】
技术研发人员:I施雷特
申请(专利权)人:SAP股份公司
类型:发明
国别省市:

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

1