CN103092903A - 数据库日志并行化 - Google Patents

数据库日志并行化 Download PDF

Info

Publication number
CN103092903A
CN103092903A CN2012103565743A CN201210356574A CN103092903A CN 103092903 A CN103092903 A CN 103092903A CN 2012103565743 A CN2012103565743 A CN 2012103565743A CN 201210356574 A CN201210356574 A CN 201210356574A CN 103092903 A CN103092903 A CN 103092903A
Authority
CN
China
Prior art keywords
log buffer
buffer district
daily record
log
data
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
CN2012103565743A
Other languages
English (en)
Other versions
CN103092903B (zh
Inventor
I.施雷特
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.)
SAP SE
Original Assignee
SAP SE
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 SAP SE filed Critical SAP SE
Publication of CN103092903A publication Critical patent/CN103092903A/zh
Application granted granted Critical
Publication of CN103092903B publication Critical patent/CN103092903B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/2358Change logging, detection, and notification
    • 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/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

运行数据存储应用中的多个事务,在运行过程中,将根据所述多个事务的日志条目(log entry)存储在多个日志缓冲区中。所述日志条目被顺序写入当前日志缓冲区并且根据轮转分布将多个日志缓冲区写入多个日志分区。之后,响应于数据恢复事件,日志缓冲区中的日志条目的顺序列表被组合以生成日志,该日志可以被数据存储应用用于数据恢复。还描述了相关的装置、系统、技术和物件。

Description

数据库日志并行化
技术领域
这里描述的主题涉及用于生成能够实现简化的数据恢复的并行数据库日志的技术。
背景技术
传统的数据库一般使用日志记录(logging)将对相应数据执行的操作以同步的方式存储到日志中,而同时将数据异步地写入相应的数据区中。在崩溃或其它数据恢复事件的情况下,数据区被恢复到可能较旧的状态。回放(replaying)日志会将数据库带到最终提交状态(last committed state)。因此,对于在线操作以及数据恢复来说,日志记录是数据库的重要的性能关键(performance-critical)的组件。
发明内容
在一个方面中,运行数据存储应用中的多个事务。根据多个事务的日志条目(log entry)被存储在多个日志缓冲区中。日志条目被顺序写入当前日志缓冲区并且根据轮转分布(round-robin distribution)将多个日志缓冲区写入多个日志分区(log partition)。之后,响应于数据恢复事件,日志缓冲区中的日志条目的顺序列表被组合以生成日志,该日志可以被数据存储应用用于数据恢复。
本主题可以与各种数据存储应用(包括但不限于内存数据库(in-memorydatabase))一起操作。写入单个日志分区的至少两个日志缓冲区可以是非连续(non-consecutive)的(其是轮转分布方案的产物(artifact))。
每个日志缓冲区可以包括I/O结束标记,其指示与该日志缓冲区相关联的输入/输出操作已经结束(即,该日志缓冲区已经被写入相应的日志分区,等等)。每个日志缓冲区也可以包括先前的I/O结束标记,其指示轮转分布中的紧前一个(immediately preceding)日志缓冲区已经被写入相应的日志分区。
每个日志缓冲区可以具有关联的提交回调(commit callback)集合,使得在调用紧前一个日志缓冲区的提交回调的集合之后设置当前日志缓冲区中的先前I/O结束标记。
可以在相应的I/O结束标记和先前的I/O结束标记都已经被设置时,将成功的提交调用告知每个日志缓冲区的提交回调集合。
还描述了生产物品,其包括持久地存储在非暂时性计算机可读介质上的计算机可执行的指令,当计算机执行所述指令时,使得计算机执行这里的操作。类似地,也描述了计算机系统,其可以包括处理器和耦合到处理器的存储器。该存储器可以临时或持久地存储使得该处理器执行这里描述的操作中的一个或多个操作的一个或多个程序。此外,方法所规定的操作可以通过单个计算系统内的一个或多个数据处理器或分布在两个或多个计算系统中的一个或多个数据处理器来实现。
这里描述的主题提供许多优点。例如,这里提供的日志分区被视为单个逻辑日志分区,从而充当线性日志(linear log),其与传统数据库相比允许简化的回放(即,可以使用不太复杂的回放算法,从而减少处理功耗以及回放时间,等等)。此外,本主题允许更高效的OLAP事务的恢复,OLAP事务一般包括仅使用单个日志分区的大负荷操作。更具体来说,本主题的优点在于:其确保跨日志分区的提交持久性(commit durability),进而确保提交回调的正确排序(与日志记录提交记录的排序相同)。
这里描述的主题的一个或多个变形的细节在附图和下面的描述中进行陈述。这里描述的主题的其它特征和优点将从该描述和附图中以及从权利要求中变得明显。
附图说明
图1是图示包括数据存储应用的系统的示图;
图2是图示用于生成数据存储应用的数据恢复日志的技术的处理流程图;
图3是图示图1的系统的细节的示图;以及
图4是图示存储在多个日志分区中的日志缓冲区的示图。
各个附图中的相同的参考符号指示相同的元素。
具体实施方式
图1示出系统100的示例,在系统100中,计算系统102可以包括可以在一个或多个网络上并置、链接的一个或多个可编程处理器,等等,计算系统102运行数据存储应用的一个或多个模块、软件组件等等。数据存储应用104可以包括数据库、企业资源程序、分布式存储系统(例如,加拿大NetAppof Sunnyvale公司的NetApp Filer)中的一个或多个。
所述一个或多个模块、软件组件等等对于计算系统102的本地用户以及从一个或多个客户端机器106通过网络连接110访问计算系统102的远程用户来说是可访问的。由一个或多个第一模块产生的一个或多个用户界面屏幕可以通过本地显示器或通过与客户端机器106中的一个相关联的显示器显示给用户。数据存储应用104的数据单元可以暂时存储在持久层(persistencelayer)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中的页管理模块320通信,页管理模块320可以包括空闲块(free block)管理器322,其监视页状况信息324,例如存储器114内的物理页和持久层112中(并且可选地在页缓冲器304中)的逻辑页的状况。保存点管理器316可以与持久层204处的保存点协调器326通信以操控保存点,所述保存点被用于创建数据库的一致的持久状态(consistent persistent state),供在可能的崩溃之后重新启动。
在数据存储应用104的一些实施方案中,持久层112的页管理模块可以实现隐式分页(shadow paging)。页管理模块320中的空闲块管理器322可以维护物理页的状况。页缓冲器304可以包括按照这里所讨论的方式操作的固定页状况缓冲区。转换器组件340可以是页管理模块320的部分或者与页管理模块320通信,并且可以负责写入到存储器114中的逻辑页和物理页之间的映射。转换器340可以在一个转换器表格342中维护逻辑页到相应的物理页的当前映射。转换器340可以在一个或多个转换器表格342中维护逻辑页306到相应的物理页的当前映射。当从存储器114读取逻辑页306时,可以使用转换器340从所述一个或多个转换器表格342中查找将要加载的存储页。当在保存点之后第一次向存储器114写入逻辑页时,向该逻辑页分配新的空闲物理页。空闲块管理器322将该新的物理页标记为“已使用”并且该新的映射被存储在所述一个或多个转换器表格342中。
持久层112可以确保在数据存储应用104中做出的变化是持久的并且确保数据存储应用104可以在重启之后被恢复到最新提交的状态(most recentcommitted state)。向存储器114写数据不需要与写事务(writing transaction)的结束同步。这样,当写事务结束时,未提交的变化能够被写入盘中,而已提交的变化可能尚未被写入盘中。在系统崩溃之后,可以回滚未结束的事务所做出的变化。在这个过程中已经提交的事务所产生的变化不会丢失。日志记录器(logger)组件344也可以被包括以将对数据存储应用的数据做出的变化存储在线性日志中。日志记录器组件344可以在恢复期间用于回放从上一个保存点以来的操作,以确保对数据应用所有操作并且确保在恢复过程的结尾回滚仍然打开(still-open)的事务之前提交具有已记录的“提交”记录的事务(transaction with a logged“commit”record)。
对于一些数据存储应用,向盘写数据不一定与写事务的结束同步。可能发生这样的情形,即,当写事务结束时,未提交的变化被写入盘中,而同时已提交的变化尚未写入盘中。在系统崩溃之后,未结束的事务所做出的变化必须被回滚,并且已提交的事务所做出的变化一定不能丢失。
为了确保已提交的变化不丢失,每当做出变化时,日志记录器组件344都会写入重做(redo)日志信息。该信息可以最迟在事务结束时被写入盘中。日志条目可以持久存留在单独的日志卷中,而正常数据被写入数据卷中。利用重做日志,即使相应的数据页没有被写入盘中,也可以恢复已提交的变化。对于撤销(undo)未提交的变化,持久层112可以使用(一个或多个日志中的)撤销日志条目和隐式分页的组合。
持久界面302可以操控存储库(store)(例如,内存存储库(in-memory store)等)的读请求和写请求。持久界面302也可以提供用于写数据的具有日志记录的写方法和不具有日志记录的写方法。如果使用经日志记录的写操作,那么持久界面302调用日志记录器344。此外,日志记录器344提供用于允许存储库(例如,内存存储库等)直接将日志条目添加到日志队列中的界面。日志记录器界面还提供用于请求将内存日志队列中的日志条目清理到盘中的方法。
日志条目包含日志序列号、日志条目的类型和事务的标识符。取决于操作类型,日志记录器344登记附加信息。例如,对于类型为“更新”的条目,这应当是受影响的记录的标识和被修改的数据的后像(after image)。
当数据应用104被重启时,需要处理日志条目。为了加速这个过程,并不总是从开始处理重做日志。而是,如上所述,周期性地执行保存点,保存点将从上一个保存点起做出的所有变化都写入盘(例如,内存,等等)中。当启动系统时,只有在上一个保存点之后创建的日志需要被处理。在下一个备份操作之后,该保存点位置之前的旧日志条目可以被移除。
当日志记录器344被调用以写日志条目时,其并不立即向盘写入。而是,其可以将日志条目放入内存的日志队列中。日志队列中的条目可以最迟在相应的事务结束(被提交或终止)时被写入盘中。为了保证提交的变化不丢失,在相应的日志条目被清理到盘中之前,提交操作不能成功结束。将日志队列条目写入盘中也可以被其它事件触发,所述其它事件,例如,当日志队列页变满或当保存点被执行时。
利用当前主题,日志记录器344可以将数据库日志(或者这里简单地称为“日志”)以自然次序(例如,顺序次序,等等)依次写入日志缓冲区中。如果使用若干物理硬盘/存储设备来存储日志数据,则可以定义若干日志分区。之后,日志记录器344(如上所述,用于生成和组织日志数据)可以对向所有可用日志分区写入日志缓冲区进行负载均衡。在一些情况中,负载均衡是根据轮转分布(round-robin distribution)方案的,其中各种写操作以顺序和连续的方式被导向日志分区。利用这种布置,被写入多分区日志的特定分区的单个日志段的日志缓冲区是不连续的。然而,在恢复期间可以将所有分区的日志段中的日志缓冲区重新排序为正确次序。
参考图4的示图400,为了确保持久性,跨日志分区410i...n的内存中的跨分区的日志缓冲区420i...n可以在I/O次序上被改变,并且每个日志缓冲区420i...n可以与(i)I/O结束标记430i...n、(ii)先前的I/O结束标记440i...n、以及(iii)提交回调的集合相关联。I/O结束标记可以在日志缓冲区被安全地写入日志分区时被更新(在图4的示例中,日志分区410i的标记430i)。在这个事件处,确定是否已经设置了先前的I/O标记440i(如果已经设置了,则意味着轮转分布方案中的所有先前的I/O日志缓冲区都已经被写入)。在所有先前的I/O都已结束的情况中,将成功的提交调用告知提交回调,并且先前的I/O结束标记440i可以被设置为下一个后续的日志缓冲区420ii。在下一个日志缓冲区420ii已经被写入(即,I/O结束标记440ii被设置)的情况中,调用该下一个日志缓冲区420ii的提交回调,并且先前的I/O结束标记440i可以被设置为下一个后续的日志缓冲区(即,“下下个日志缓冲区”)(未示出)。这个过程一直持续到尚未被写入其相应的日志分区的日志缓冲区(例如,当前使用的日志缓冲区或仍然处于I/O状态的日志缓冲区等等)被定位为止。
在恢复期间,恢复分派器(dispatcher)450处理从各个日志分区440i...n发送给它的日志缓冲区420i...n并且将它们重新排序成正确次序。这个重新排序恢复日志条目的原始次序,就好像日志条目在在线操作中被写入一样。这个布置消除了对可能的引起数据冲突(解决数据冲突可能需要复杂的算法)的重新排序的日志条目的特殊同步和/或操控的需要。
这里描述的主题的方面可以根据期望的配置以系统、装置、方法和/或物品来实现。具体来说,这里描述的主题的各种实现方案可以以数字电路、集成电路、专门设计的专用集成电路(ASIC)、计算机硬件、固件、软件和/或它们的组合来实现。这些各种实现方案可以包括在一个或多个计算机程序中的实现,所述计算机程序在包括至少一个专用或通用的可编程处理器的可编程系统上可运行和/或可解释,所述至少一个可编程处理器被耦合以便从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,或者向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。
这些计算机程序也可以被称为程序、软件、软件应用、应用、组件或代码,这些计算机程序包括可编程处理器的机器指令并且可以以高级过程编程语言和/或面向对象的编程语言、和/或汇编/机器语言来实现。如这里所使用的,术语“机器可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备,比如,磁盘、光盘、存储器和可编程逻辑器件(PLD),“机器可读介质”包括接收机器指令作为机器可读信号的机器可读介质。“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。机器可读介质可以非暂时性地,例如像非暂时性固态存储器或磁硬驱或任何等效的存储介质那样,存储这些机器指令。可替换地或者附加地,机器可读介质可以以暂时的方式,例如像与一个或多个物理处理器内核相关联的处理器高速缓冲器或其它随机访问存储器那样,存储这些机器指令。
这里描述的主题可以在包括后端组件或包括中间件组件或包括前端组件的计算系统中实现,或者在这样的后端、中间件、前端组件的任意组合中实现,后端组件例如数据服务器,中间件组件例如一个或多个应用服务器,前端组件例如具有图形用户界面或Web浏览器的一个或多个客户端计算机,用户可以通过图形用户界面或Web浏览器与这里描述的主题的实现方案进行交互。客户端和服务器通常但不排他地相互远离,并且一般通过通信网络来交互,尽管系统的组件可以通过任何形式或介质的数字数据通信相互连接。通信网络的示例包括但不限于局域网(LAN)和广域网(WAN)和因特网。客户端和服务器的关系依靠在各自的计算机上运行的并且相互具有客户端-服务器关系的计算机程序而产生。
在前面的描述中阐述的实施方案并不代表与这里描述的主题一致的所有实施方案。相反,它们仅仅是与所描述的主题有关的方面一致的一些示例。虽然在这里详细描述了几个变形,但是其它修改或添加是可能的。具体来说,除了这里阐述的那些特征和/或变形之外,还可以提供进一步的特征和/或变形。例如,上述的实施方案可以针对所公开的特征的组合和子组合和/或进一步属于这里公开的那些特征的一个或多个特征的组合和子组合。此外,附图中绘制和/或这里描述的逻辑流程不一定需要所示出的特定次序或者顺序次序来取得期望的结果。所附权利要求的范围可以包括其它实施方案或实施例。

Claims (20)

1.一种计算机程序产品,包括非暂时性机器可读介质,该机器可读介质存储指令,当该指令被至少一个可编程处理器运行时,使得该至少一个可编程处理器执行下列操作:
运行数据存储应用中的多个事务;
将根据所述多个事务的日志条目存储到多个日志缓冲区中,所述日志条目被顺序写入当前日志缓冲区,所述多个日志缓冲区根据轮转分布被写入多个日志分区;以及
响应于数据恢复事件,组合日志缓冲区中的日志条目的顺序列表以产生日志,该日志被该数据存储应用用于数据恢复。
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所述的方法,其中被写入单个日志分区的至少两个日志缓冲区是不连续的。
11.如权利要求10所述的方法,其中每个日志缓冲区包含I/O结束标记,其指示向相应日志分区写入日志缓冲区的输入/输出操作已经结束。
12.如权利要求11所述的方法,其中每个日志缓冲区包含先前的I/O结束标记,其指示轮转分布中的紧前一个日志缓冲区已经被写入相应的日志分区。
13.如权利要求12所述的方法,其中每个日志缓冲区具有关联的提交回调集合,并且其中在调用紧前一个日志缓冲区的提交回调集合之后设置当前日志缓冲区的先前I/O标记。
14.如权利要求13所述的方法,其中当相应的I/O结束标记和先前的I/O结束标记都已经被设置时,将成功的提交调用告知每个日志缓冲区的提交回调集合。
15.一种系统,包括:
至少一个可编程处理器;以及
非暂时性机器可读介质,其存储指令,当所述指令被所述至少一个可编程处理器运行时,使得所述至少一个可编程处理器执行以下操作:
运行数据存储应用中的多个事务;
将根据所述多个事务的日志条目存储到多个日志缓冲区中,所述日志条目被顺序写入当前日志缓冲区,所述多个日志缓冲区根据轮转分布被写入多个日志分区;以及
组合日志缓冲区中的日志条目的顺序列表以产生日志,该日志被该数据存储应用用于数据恢复。
16.如权利要求15所述的系统,其中该数据存储应用包含内存数据库。
17.如权利要求16所述的系统,其中被写入单个日志分区的至少两个日志缓冲区是不连续的。
18.如权利要求17所述的系统,其中每个日志缓冲区包含I/O结束标记,其指示向相应日志分区写入日志缓冲区的输入/输出操作已经结束。
19.如权利要求18所述的系统,其中每个日志缓冲区包含先前的I/O结束标记,其指示轮转分布中的紧前一个日志缓冲区已经被写入相应的日志分区。
20.如权利要求19所述的系统,其中:
每个日志缓冲区具有关联的提交回调集合,
在调用紧前一个日志缓冲区的提交回调集合之后设置当前日志缓冲区的先前I/O标记,以及
当相应的先前的I/O结束标记已经被设置时,将成功的提交调用告知每个日志缓冲区的提交回调集合。
CN201210356574.3A 2011-11-07 2012-09-21 数据库日志并行化 Active CN103092903B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/290,286 2011-11-07
US13/290,286 US9092475B2 (en) 2011-11-07 2011-11-07 Database log parallelization

Publications (2)

Publication Number Publication Date
CN103092903A true CN103092903A (zh) 2013-05-08
CN103092903B CN103092903B (zh) 2019-04-23

Family

ID=47008216

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210356574.3A Active CN103092903B (zh) 2011-11-07 2012-09-21 数据库日志并行化

Country Status (3)

Country Link
US (1) US9092475B2 (zh)
EP (1) EP2590087B1 (zh)
CN (1) CN103092903B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104486448A (zh) * 2014-12-29 2015-04-01 成都致云科技有限公司 一种数据处理方法及装置
WO2015100985A1 (zh) * 2013-12-30 2015-07-09 华为技术有限公司 记录事务日志的方法和数据库引擎
CN104809178A (zh) * 2015-04-15 2015-07-29 北京科电高技术公司 一种键值数据库内存日志的写入方法
CN104899117A (zh) * 2015-06-17 2015-09-09 江苏师范大学 面向非易失性内存的内存数据库并行日志方法
CN106503020A (zh) * 2015-09-08 2017-03-15 阿里巴巴集团控股有限公司 日志数据处理方法及装置
CN107180051A (zh) * 2016-03-11 2017-09-19 华为技术有限公司 一种日志管理方法、服务器
CN107480009A (zh) * 2017-08-18 2017-12-15 北京中电普华信息技术有限公司 一种事务恢复方法及装置
CN107665219A (zh) * 2016-07-28 2018-02-06 华为技术有限公司 一种日志管理方法及装置
WO2019109256A1 (zh) * 2017-12-05 2019-06-13 华为技术有限公司 一种日志管理方法、服务器和数据库系统
CN111198752A (zh) * 2019-12-26 2020-05-26 天津中科曙光存储科技有限公司 一种日志系统提高事务处理能力的方法和装置
CN111290881A (zh) * 2020-01-21 2020-06-16 上海达梦数据库有限公司 一种数据恢复方法、装置、设备及存储介质
CN113190168A (zh) * 2020-01-29 2021-07-30 三星电子株式会社 完成对象输入输出的方法和系统
CN113297150A (zh) * 2021-06-22 2021-08-24 中国农业银行股份有限公司 数据库日志处理方法、装置、设备及存储介质
CN113987078A (zh) * 2021-12-24 2022-01-28 中兴通讯股份有限公司 数据同步方法、设备及计算机可读存储介质
WO2022151593A1 (zh) * 2021-01-13 2022-07-21 华为云计算技术有限公司 一种数据恢复方法、装置、设备、介质及程序产品

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566326B2 (en) 2004-11-05 2013-10-22 Oracle International Corporation High-performance log-based processing
US10706009B2 (en) * 2013-03-14 2020-07-07 Oracle International Corporation Techniques to parallelize CPU and IO work of log writes
US9558229B2 (en) * 2013-11-26 2017-01-31 Sap Se Transaction private log buffering for high performance of transaction processing
US9558216B2 (en) 2014-11-21 2017-01-31 Sap Se Moving tables across nodes in an in-memory database instance
US10592494B2 (en) 2015-04-14 2020-03-17 Microsoft Technology Licensing, Llc Collection record for overlapping data stream collections
US9959137B2 (en) 2015-04-14 2018-05-01 Microsoft Technology Licensing, Llc Transaction redo using skip element for object
US10031814B2 (en) 2015-04-14 2018-07-24 Microsoft Technology Licensing, Llc Collection record location as log tail beginning
US10133768B2 (en) 2015-04-14 2018-11-20 Microsoft Technology Licensing, Llc Latest external dependee entity in transaction record
US9766929B2 (en) 2015-04-14 2017-09-19 Microsoft Technology Licensing, Llc Processing of data stream collection record sequence
US10102251B2 (en) 2015-04-14 2018-10-16 Microsoft Technology Licensing, Llc Lockless open collection data structure
US9858310B2 (en) * 2015-09-14 2018-01-02 Sap Se Maintaining in-memory database consistency by parallelizing persistent data and log entries
US10452491B2 (en) * 2016-04-14 2019-10-22 Sap Se Scalable log partitioning system
US10970175B2 (en) 2016-06-15 2021-04-06 Sap Se Flexible per-request data durability in databases and other data stores
US10178186B2 (en) 2016-06-16 2019-01-08 Sap Se Connection reestablishment protocol for peer communication in distributed systems
US10180812B2 (en) * 2016-06-16 2019-01-15 Sap Se Consensus protocol enhancements for supporting flexible durability options
US10216588B2 (en) 2016-11-22 2019-02-26 Sap Se Database system recovery using preliminary and final slave node replay positions
US10713247B2 (en) * 2017-03-31 2020-07-14 Amazon Technologies, Inc. Executing queries for structured data and not-structured data
CN109739738A (zh) * 2018-12-26 2019-05-10 深圳市网心科技有限公司 基于html5的事件日志管理方法、系统及相关装置
US11580110B2 (en) 2019-12-31 2023-02-14 Huawei Cloud Computing Technologies Co., Ltd. Methods and apparatuses for generating redo records for cloud-based database
US11775399B1 (en) 2022-03-28 2023-10-03 International Business Machines Corporation Efficient recovery in continuous data protection environments

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530850A (en) * 1993-10-25 1996-06-25 International Business Machines Corporation Data storage library array with log-structured file system which allows simultaneous write and garbage collection
US20060224634A1 (en) * 2005-03-31 2006-10-05 Uwe Hahn Multiple log queues in a database management system
US20080133615A1 (en) * 2006-12-04 2008-06-05 Microsoft Corporation Multi-level read caching for multiplexed transactional logging
US20110004586A1 (en) * 2009-07-15 2011-01-06 Lon Jones Cherryholmes System, method, and computer program product for creating a virtual database

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6222449B1 (en) * 1997-07-21 2001-04-24 Ronald F. Twining Remote fish logging unit
US6411994B2 (en) * 1997-10-07 2002-06-25 Interval Research Corporation Interface system for providing content using context hotspots
US6950848B1 (en) * 2000-05-05 2005-09-27 Yousefi Zadeh Homayoun Database load balancing for multi-tier computer systems
US7305421B2 (en) 2001-07-16 2007-12-04 Sap Ag Parallelized redo-only logging and recovery for highly available main memory database systems
US6947956B2 (en) 2002-06-06 2005-09-20 International Business Machines Corporation Method and apparatus for selective caching of transactions in a computer system
US20070067366A1 (en) * 2003-10-08 2007-03-22 Landis John A Scalable partition memory mapping system
JP4940730B2 (ja) * 2006-03-31 2012-05-30 富士通株式会社 データベースシステム運用方法,データベースシステム,データベース装置及びバックアッププログラム
CA2652111C (en) * 2006-05-12 2018-09-11 Goldengate Software, Inc. Apparatus and method for forming a homogenous transaction data store from heterogeneous sources
JP5049618B2 (ja) * 2007-03-15 2012-10-17 株式会社日立製作所 ディザスタリカバリシステムおよび方法
US20090019094A1 (en) * 2007-07-13 2009-01-15 Scott David Lashley Redirected updates on a backup server
US8392380B2 (en) * 2009-07-30 2013-03-05 Microsoft Corporation Load-balancing and scaling for analytics data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530850A (en) * 1993-10-25 1996-06-25 International Business Machines Corporation Data storage library array with log-structured file system which allows simultaneous write and garbage collection
US20060224634A1 (en) * 2005-03-31 2006-10-05 Uwe Hahn Multiple log queues in a database management system
US20080133615A1 (en) * 2006-12-04 2008-06-05 Microsoft Corporation Multi-level read caching for multiplexed transactional logging
US20110004586A1 (en) * 2009-07-15 2011-01-06 Lon Jones Cherryholmes System, method, and computer program product for creating a virtual database

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015100985A1 (zh) * 2013-12-30 2015-07-09 华为技术有限公司 记录事务日志的方法和数据库引擎
US9189487B2 (en) 2013-12-30 2015-11-17 Huawei Technologies Co., Ltd. Method for recording transaction log, and database engine
CN104486448A (zh) * 2014-12-29 2015-04-01 成都致云科技有限公司 一种数据处理方法及装置
CN104486448B (zh) * 2014-12-29 2018-09-11 成都极驰科技有限公司 一种数据处理方法及装置
CN104809178A (zh) * 2015-04-15 2015-07-29 北京科电高技术公司 一种键值数据库内存日志的写入方法
CN104899117A (zh) * 2015-06-17 2015-09-09 江苏师范大学 面向非易失性内存的内存数据库并行日志方法
CN104899117B (zh) * 2015-06-17 2019-04-16 江苏师范大学 面向非易失性内存的内存数据库并行日志方法
CN106503020A (zh) * 2015-09-08 2017-03-15 阿里巴巴集团控股有限公司 日志数据处理方法及装置
WO2017041638A1 (zh) * 2015-09-08 2017-03-16 阿里巴巴集团控股有限公司 日志数据处理方法及装置
CN107180051A (zh) * 2016-03-11 2017-09-19 华为技术有限公司 一种日志管理方法、服务器
CN107665219A (zh) * 2016-07-28 2018-02-06 华为技术有限公司 一种日志管理方法及装置
CN107480009A (zh) * 2017-08-18 2017-12-15 北京中电普华信息技术有限公司 一种事务恢复方法及装置
WO2019109256A1 (zh) * 2017-12-05 2019-06-13 华为技术有限公司 一种日志管理方法、服务器和数据库系统
US11748215B2 (en) 2017-12-05 2023-09-05 Huawei Technologies Co., Ltd. Log management method, server, and database system
CN111198752A (zh) * 2019-12-26 2020-05-26 天津中科曙光存储科技有限公司 一种日志系统提高事务处理能力的方法和装置
CN111198752B (zh) * 2019-12-26 2023-10-13 天津中科曙光存储科技有限公司 一种日志系统提高事务处理能力的方法和装置
CN111290881A (zh) * 2020-01-21 2020-06-16 上海达梦数据库有限公司 一种数据恢复方法、装置、设备及存储介质
CN111290881B (zh) * 2020-01-21 2023-09-19 上海达梦数据库有限公司 一种数据恢复方法、装置、设备及存储介质
CN113190168A (zh) * 2020-01-29 2021-07-30 三星电子株式会社 完成对象输入输出的方法和系统
CN113190168B (zh) * 2020-01-29 2023-05-02 三星电子株式会社 完成对象输入输出的方法和系统
WO2022151593A1 (zh) * 2021-01-13 2022-07-21 华为云计算技术有限公司 一种数据恢复方法、装置、设备、介质及程序产品
CN113297150A (zh) * 2021-06-22 2021-08-24 中国农业银行股份有限公司 数据库日志处理方法、装置、设备及存储介质
CN113987078A (zh) * 2021-12-24 2022-01-28 中兴通讯股份有限公司 数据同步方法、设备及计算机可读存储介质
CN113987078B (zh) * 2021-12-24 2022-04-19 中兴通讯股份有限公司 数据同步方法、设备及计算机可读存储介质

Also Published As

Publication number Publication date
US9092475B2 (en) 2015-07-28
CN103092903B (zh) 2019-04-23
EP2590087B1 (en) 2017-06-28
US20130117234A1 (en) 2013-05-09
EP2590087A1 (en) 2013-05-08

Similar Documents

Publication Publication Date Title
CN103092903A (zh) 数据库日志并行化
US9779128B2 (en) System and method for massively parallel processing database
US9069704B2 (en) Database log replay parallelization
CN108804112A (zh) 一种区块链落账处理方法及系统
US9542279B2 (en) Shadow paging based log segment directory
US20190108166A1 (en) Replicable differential store data structure
US9183245B2 (en) Implicit group commit when writing database log entries
CN104937556A (zh) 恢复数据库的页面
CN103092905A (zh) 使用虚拟文件数据对象的列式数据库
US5862318A (en) System for generating a gapless series of identity values
CN106991606B (zh) 交易数据处理方法及装置
CN107967279A (zh) 分布式数据库的数据更新方法及装置
EP3467670A1 (en) Light weight redundancy tool for performing transactions
US8156084B2 (en) Transfer of data from positional data sources to partitioned databases in restartable environments
US11099960B2 (en) Dynamically adjusting statistics collection time in a database management system
CN115617571A (zh) 一种数据备份方法、装置、系统、设备及存储介质
US8521682B2 (en) Transfer of data from transactional data sources to partitioned databases in restartable environments
EP3377970B1 (en) Multi-version removal manager
US20140149697A1 (en) Memory Pre-Allocation For Cleanup and Rollback Operations
CN109376141A (zh) 一种数据迁移方法和装置
CN104317820A (zh) 报表的统计方法和装置
CN109522098A (zh) 分布式数据库中的事务处理方法、装置、系统和储存介质
CN116775228A (zh) 数据处理方法及装置、电子设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: German Waldo

Applicant after: SAP AG

Address before: German Waldo

Applicant before: SAP AG

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: SAP AG TO: SAP EUROPE AG

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant