CN104537037A - 一种处理数据库日志的方法及装置 - Google Patents

一种处理数据库日志的方法及装置 Download PDF

Info

Publication number
CN104537037A
CN104537037A CN201410811130.3A CN201410811130A CN104537037A CN 104537037 A CN104537037 A CN 104537037A CN 201410811130 A CN201410811130 A CN 201410811130A CN 104537037 A CN104537037 A CN 104537037A
Authority
CN
China
Prior art keywords
journal file
data
daily record
redaction
version
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
CN201410811130.3A
Other languages
English (en)
Other versions
CN104537037B (zh
Inventor
聂愿愿
李海丰
徐文韬
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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Hangzhou Huawei Digital Technologies Co Ltd
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 Hangzhou Huawei Digital Technologies Co Ltd filed Critical Hangzhou Huawei Digital Technologies Co Ltd
Priority to CN201410811130.3A priority Critical patent/CN104537037B/zh
Publication of CN104537037A publication Critical patent/CN104537037A/zh
Application granted granted Critical
Publication of CN104537037B publication Critical patent/CN104537037B/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/1479Generic software techniques for error detection or fault masking
    • G06F11/1492Generic software techniques for error detection or fault masking by run-time replication performed by the application software
    • G06F11/1494N-modular type
    • 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/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems

Landscapes

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

Abstract

本发明实施例公开了一种处理数据库日志的方法,包括:将按照数据版本变更先后顺序生成的日志保存在非易失存储器中,其中,所述日志包括事务状态表、元数据文件及日志文件,所述事务状态表用于记录各个事务的状态,所述元数据文件用于记录事务对应的日志的位置以及下一个日志记录的位置,所述日志文件用于记录数据的变更版本;当恢复内存中的数据时,根据所述日志中事务状态表的事务提交顺序,使用事务提交后的日志文件版本对内存中的数据进行恢复。本发明实施例还公开了一种处理数据库日志的装置,采用本发明,可解决数据库日志操作的热点争用和磁盘争用的问题,提升了系统的性能。

Description

一种处理数据库日志的方法及装置
技术领域
本发明涉及数据库技术领域,尤其涉及一种处理数据库日志的方法及装置。
背景技术
当前数据库技术中,重做(redo)日志提供了一个对未写入数据库磁盘的数据的进行重做的基础。当数据库更新提交的时候,数据并不会即时写入到磁盘的数据文件中,而是保存在内存当中,这就需要通过redo日志来对该次数据库更新提供一种持久化的支持,避免在故障的情况下,由于内存数据的丢失而导致数据丢失。
现有技术中,通常通过将数据库更新的动作记录在redo日志中来避免要求每次的数据库更新写入数据文件,从而提高数据库更新的性能;传统的数据库大多采用循环的重做日志缓冲区(redo buffer)的形式来顺序存储redo日志,之后在合适的时刻把buffer中的数据追加到磁盘上的redo文件中进行持久化存储,日志刷出后buffer可以重用,这样在redo日志的写入上通过设置redo日志的缓冲,可减少redo日志写入磁盘的频率;而撤消日志(undo log)记录了数据库变更前的状态,能够把所有没有提交(commit)的事务回滚到事务开始前的状态。同时,系统崩溃时,可能有些事务还没有commit,在系统恢复时,这些没有commit的事务就需要借助undo log来进行回滚。传统的数据库大多采用与数据页一样的存储方式来存储undo日志。但是这样所有的redo都统一存储在redo buffer中,在大并发下redo buffer成为了冲突热点,制约了数据库的可扩展性;且redo需要持久化存储在磁盘上,在事务提交时需要将日志刷新到磁盘,此时会影响事务提交性能,尤其当redo日志和数据存储在同一块磁盘上,对磁盘的争抢更为激烈,这对数据库性能有巨大影响;而undo日志与数据存储处理一致,同样造成了一定程度的存储空间浪费和磁盘竞争。
发明内容
本发明实施例所要解决的技术问题在于,提供一种处理数据库日志的方法及装置。以解决数据库日志操作的热点争用和磁盘争用的问题。
为了解决上述技术问题,本发明实施例第一方面提供了一种处理数据库日志的方法,包括:
将按照数据版本变更先后顺序生成的日志保存在非易失存储器中,其中,所述日志包括事务状态表、元数据文件及日志文件,所述事务状态表用于记录各个事务的状态,所述元数据文件用于记录事务对应的日志的位置以及下一个日志记录的位置,所述日志文件用于记录数据的变更版本;
当恢复内存中的数据时,根据所述日志中事务状态表的事务提交顺序,使用事务提交后的日志文件版本对内存中的数据进行恢复。
在第一方面的第一种可能的实现方式中,在所述恢复内存中的数据之前,还包括:
标记事务的操作类型,所述操作类型包括回滚和提交。
结合第一方面或结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述将按照数据版本变更先后顺序生成的日志保存在非易失存储器中,包括:
当数据更新时,生成新版本的日志文件;
判断新版本的日志文件对应的历史版本日志文件是否可见;
若所述新版本的日志文件对应的历史版本日志文件不可见,则保存所述新版本的日志文件;
若所述新版本的日志文件对应的历史版本日志文件可见,则进一步判断所述新版本的日志文件是否为最后一条日志文件;
若所述新版本的日志文件是最后一条日志文件,则保存所述新版本的日志文件;
若所述新版本的日志文件不是最后一条日志文件,则清理所述新版本的日志文件。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,在将按照数据版本变更先后顺序生成的日志保存在非易失存储器中之后,还包括:
根据预设周期定期清理所述日志文件中的至少一个历史变更版本或者清理除最后一条日志文件之外的其他日志文件。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述当恢复内存中的数据时,根据所述日志中事务状态表的事务提交顺序,使用事务提交后的日志文件版本对内存中的数据进行恢复,包括:
读取所述非易失存储器中的日志;
读取所述日志中的事务状态表;
根据所述日志中事务状态表的事务提交顺序,使用事务提交后的日志文件版本对内存中的数据进行恢复。
本发明实施例第二方面提供了一种处理处理数据库日志的装置,包括:
保存单元,用于将按照数据版本变更先后顺序生成的日志保存在非易失存储器中,其中,所述日志包括事务状态表、元数据文件及日志文件,所述事务状态表用于记录各个事务的状态,所述元数据文件用于记录事务对应的日志的位置以及下一个日志记录的位置,所述日志文件用于记录数据的变更版本;
恢复单元,用于当恢复内存中的数据时,根据所述日志中事务状态表的事务提交顺序,使用事务提交后的日志文件版本对内存中的数据进行恢复。
在第二方面的第一种可能的实现方式中,所述装置还包括:
标记单元,用于标记事务的操作类型,所述操作类型包括回滚和提交。
结合第二方面或结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述保存单元具体用于:
当数据更新时,生成新版本的日志文件;
判断新版本的日志文件对应的历史版本日志文件是否可见;
若所述新版本的日志文件对应的历史版本日志文件不可见,则保存所述新版本的日志文件;
若所述新版本的日志文件对应的历史版本日志文件可见,则进一步判断所述新版本的日志文件是否为最后一条日志文件;
若所述新版本的日志文件是最后一条日志文件,则保存所述新版本的日志文件;
若所述新版本的日志文件不是最后一条日志文件,则清理所述新版本的日志文件。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述装置还包括:
清理单元,用于根据预设周期定期清理所述日志文件中的至少一个历史变更版本或者清理除最后一条日志文件之外的其他日志文件。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述恢复单元具体用于:
读取所述非易失存储器中的日志;
读取所述日志中的事务状态表;
根据所述日志中事务状态表的事务提交顺序,使用事务提交后的日志文件版本对内存中的数据进行恢复。
实施本发明实施例,具有如下有益效果:
通过利用NVM的特性,按照数据版本变更先后顺序存储对应的日志,使得该日志可同时用来支持undo和redo日志的功能;且通过将日志以历史版本的形式组织起来,这种分布式的组织形式,可消除了并发冲突热点,提高了系统的性能,同时也解决了常规日志操作热点争用的问题,提升了数据操作的并发性;而在日志操作的磁盘争用问题上,也提升了数据操作的性能和并发性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一种处理数据库日志的方法的流程示意图;
图2是本发明实施例一种处理数据库日志的方法中更新日志的流程示意图;
图3是本发明实施例一种处理数据库日志的方法中恢复数据的流程示意图;
图4是本发明实施例一种处理数据库日志的装置的组成示意图;
图5是本发明实施例另一种处理数据库日志的装置的组成示意图;
图6是本发明实施例另一种处理数据库日志的装置的组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,为本发明实施例一种处理数据库日志的方法的流程示意图;在本实施例中,所述方法包括以下步骤:
S101,将按照数据版本变更先后顺序生成的日志保存在非易失存储器中。
其中,所述日志包括事务状态表、元数据文件及日志文件,所述事务状态表用于记录各个事务的状态,所述元数据文件用于记录事务对应的日志的位置以及下一个日志记录的位置,所述日志文件用于记录数据的变更版本;
具体地,在整个系统架构中可包括动态随机存取存储器(Dynamic RandomAccess Memory,简称DRAM)和快速非易失存储(Fast NVM)。其中DRAM即最为常见的系统内存。DRAM只能将数据保持很短的时间。而NVM作为一种新型存储介质,即使断电其保存的数据也不会丢失。且其随机写与顺序写性能差别微小。在NVM中存储了事务状态表(Transaction table),其中每个元组代表了一个事务,它由三种状态:FREE、PENDING和COMMITTED,FREE表示该事务元组可以被回收重用,PENDING表示事务的状态未定,未收到终止(abort)或提交(commit)。COMMITTED则表示事务已提交。同时在事务状态表中海存储了该事务变更的第一条日志文件的位置。元数据文件(Metadata file)存储了表示事务日志的元数据元组,每个元组由固定元素组成,包含其对应日志的位置以及该事务下一个日志记录的位置。日志文件(Log file)则记录了数据的变更版本,其组织形式为元组的变更顺序,每个元组有个指针存储了基于该版本的新版本。
而数据(Data):则存储在内存和磁盘中,其存储了数据的一个已提交的原始版本,同时每个元组有个指针存储了该版本在log file中新发生变更元组的指针。
S102,当恢复内存中的数据时,根据所述日志中事务状态表的事务提交顺序,使用事务提交后的日志文件版本对内存中的数据进行恢复。
在内存中存储数据的最新版本,在Fast NVM中则存储了数据自原始版本以来按照变更先后顺序的版本,这里称为日志。这里的日志与传统的日志不同在于:其具有redo和undo两个功能。其中redo是按照事务的发生顺序从头到尾重做,而undo则是根据元组的变更顺序从新到旧来恢复。
内存中的数据的原始版本会逐步被已提交的较新的版本所替代,较旧的NVM中的版本空间则可被收回重用。旧版本的替代回收时机包括后台线程定义清理、选择(select)查询元组获得合适版本记录操作、对元组变更添加新版本到NVM链中。
这种日志结构不同于传统的仅依靠(Append-Only)类型的redo日志与undo日志的组织方式,而是将日志以历史版本的形式组织起来,该日志可同时用来支持undo和redo日志功能;日志采用分布式的方式来组织,从而消除了一个并发冲突热点,提高了性能。
在恢复数据时,只需要将根据指针寻找最新的事务提交后的日志文件进行恢复,从而确保数据库中数据的最新版本。
通过利用NVM的特性,按照数据版本变更先后顺序存储对应的日志,使得该日志可同时用来支持undo和redo日志的功能;且通过将日志以历史版本的形式组织起来,这种分布式的组织形式,可消除了并发冲突热点,提高了系统的性能,同时也解决了常规日志操作热点争用的问题,提升了数据操作的并发性;而在日志操作的磁盘争用问题上,也提升了数据操作的性能和并发性。
请参照图2,为本发明实施例一种处理数据库日志的方法中更新日志的流程示意图;在本实施例中,所述方法包括以下步骤:
S201,当数据更新时,生成新版本的日志文件。
S202,判断新版本的日志文件对应的历史版本日志文件是否可见。若是,则执行步骤S203,若否,则执行步骤S205。
S203,判断所述新版本的日志文件是否为最后一条日志文件。若是,则执行步骤S205,若否,则执行步骤S204。
S204,清理所述新版本的日志文件。
S205,保存所述新版本的日志文件。
由于内存中存储的数据是旧版本数据,为了减少NVM中版本的数量来释放空间和加快操作速度。本实施例会及时的使用新版本来替代旧版本,清理策略可包括但不限于:根据预设周期定期清理所述日志文件中的至少一个历史变更版本或者清理除最后一条日志文件之外的其他日志文件;具体地,后台存在线程对NVM中的记录进行处理,其会定期的把rollback的记录内存和不会再被查询用到的历史版本清理掉。当清理过程掉历史版本,则需用当前记录的最新历史版本替换到内存中。当清理的版本是最后一个版本时,则只有当把该数据存入磁盘上时才可被清理。
针对不同的线程,例如选择(Select)时由于绝大时刻需要访问较新的版本,这个过程中会从内存的历史版本进行查询沿着记录链一直找到合适版本为止,这个过程中也会进行过期历史版本的清理工作。
升级(Update)/删除(delete)操作会找到最新的版本进行操作,这个过程也会对历史版本进行清理。
请参照图3,为本发明实施例一种处理数据库日志的方法中恢复数据的流程示意图;在本实施例中,所述方法包括以下步骤:
S301,读取所述非易失存储器中的日志。
S302,读取所述日志中的事务状态表。
S303,根据所述日志中事务状态表的事务提交顺序,使用事务提交后的日志文件版本对内存中的数据进行恢复。
由于恢复时NVM的内容会持久化存储,只需按照事务表的提交顺序来使得提交版本来替换存储的历史版本即可。对于未提交的版本由于没有进行任何持久化,无需处理。当恢复完成后,对于最新版本应该存在两份,即在memory和NVM中各一份,NVM中的空间需等数据持久化后才能释放。
请参照图4,为本发明实施例一种处理数据库日志的装置的组成示意图,在本实施例中,所述装置包括:
保存单元100,用于将按照数据版本变更先后顺序生成的日志保存在非易失存储器中,其中,所述日志包括事务状态表、元数据文件及日志文件,所述事务状态表用于记录各个事务的状态,所述元数据文件用于记录事务对应的日志的位置以及下一个日志记录的位置,所述日志文件用于记录数据的变更版本;
恢复单元200,用于当恢复内存中的数据时,根据所述日志中事务状态表的事务提交顺序,使用事务提交后的日志文件版本对内存中的数据进行恢复。
所述保存单元100具体用于:
当数据更新时,生成新版本的日志文件;
判断新版本的日志文件对应的历史版本日志文件是否可见;
若所述新版本的日志文件对应的历史版本日志文件不可见,则保存所述新版本的日志文件;
若所述新版本的日志文件对应的历史版本日志文件可见,则进一步判断所述新版本的日志文件是否为最后一条日志文件;
若所述新版本的日志文件是最后一条日志文件,则保存所述新版本的日志文件;
若所述新版本的日志文件不是最后一条日志文件,则清理所述新版本的日志文件。
所述恢复单元200具体用于:
读取所述非易失存储器中的日志;
读取所述日志中的事务状态表;
根据所述日志中事务状态表的事务提交顺序,使用事务提交后的日志文件版本对内存中的数据进行恢复。
请参照图5,为本发明实施例另一种处理数据库日志的装置的组成示意图,在本实施例中,所述装置包括:
保存单元100,用于将按照数据版本变更先后顺序生成的日志保存在非易失存储器中,其中,所述日志包括事务状态表、元数据文件及日志文件,所述事务状态表用于记录各个事务的状态,所述元数据文件用于记录事务对应的日志的位置以及下一个日志记录的位置,所述日志文件用于记录数据的变更版本;
恢复单元200,用于当恢复内存中的数据时,根据所述日志中事务状态表的事务提交顺序,使用事务提交后的日志文件版本对内存中的数据进行恢复。
标记单元300,用于标记事务的操作类型,所述操作类型包括回滚和提交.
清理单元400,用于根据预设周期定期清理所述日志文件中的至少一个历史变更版本或者清理除最后一条日志文件之外的其他日志文件。
请参照图5,为本发明实施例另一种处理数据库日志的装置的组成示意图,在本实施例中,所述装置包括:
输入装置500、输出装置600、存储器700、处理器800以及总线,所述输入装置500、输出装置600、存储器700以及处理器800与所述总线连接,其中:
所述存储器700用于存储程序,所述处理器800用于调用所述程序进行以下步骤:
将按照数据版本变更先后顺序生成的日志保存在非易失存储器中,其中,所述日志包括事务状态表、元数据文件及日志文件,所述事务状态表用于记录各个事务的状态,所述元数据文件用于记录事务对应的日志的位置以及下一个日志记录的位置,所述日志文件用于记录数据的变更版本;
当恢复内存中的数据时,根据所述日志中事务状态表的事务提交顺序,使用事务提交后的日志文件版本对内存中的数据进行恢复。
可选地,所述处理器800还用于标记事务的操作类型,所述操作类型包括回滚和提交。
可选地,所述处理器800具体用于:
当数据更新时,生成新版本的日志文件;
判断新版本的日志文件对应的历史版本日志文件是否可见;
若所述新版本的日志文件对应的历史版本日志文件不可见,则保存所述新版本的日志文件;
若所述新版本的日志文件对应的历史版本日志文件可见,则进一步判断所述新版本的日志文件是否为最后一条日志文件;
若所述新版本的日志文件是最后一条日志文件,则保存所述新版本的日志文件;
若所述新版本的日志文件不是最后一条日志文件,则清理所述新版本的日志文件。
可选地,所述处理器800还用于根据预设周期定期清理所述日志文件中的至少一个历史变更版本或者清理除最后一条日志文件之外的其他日志文件。
可选地,所述处理器800具体用于:
读取所述非易失存储器中的日志;
读取所述日志中的事务状态表;
根据所述日志中事务状态表的事务提交顺序,使用事务提交后的日志文件版本对内存中的数据进行恢复。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
通过上述实施例的描述,本发明具有以下优点:
通过利用NVM的特性,按照数据版本变更先后顺序存储对应的日志,使得该日志可同时用来支持undo和redo日志的功能;且通过将日志以历史版本的形式组织起来,这种分布式的组织形式,可消除了并发冲突热点,提高了系统的性能,同时也解决了常规日志操作热点争用的问题,提升了数据操作的并发性;而在日志操作的磁盘争用问题上,也提升了数据操作的性能和并发性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,简称ROM)或随机存储记忆体(Random Access Memory,简称RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (10)

1.一种处理数据库日志的方法,其特征在于,包括:
将按照数据版本变更先后顺序生成的日志保存在非易失存储器中,其中,所述日志包括事务状态表、元数据文件及日志文件,所述事务状态表用于记录各个事务的状态,所述元数据文件用于记录事务对应的日志的位置以及下一个日志记录的位置,所述日志文件用于记录数据的变更版本;
当恢复内存中的数据时,根据所述日志中事务状态表的事务提交顺序,使用事务提交后的日志文件版本对内存中的数据进行恢复。
2.如权利要求所述的1所述的方法,其特征在于,在所述恢复内存中的数据之前,还包括:
标记事务的操作类型,所述操作类型包括回滚和提交。
3.如权利要求1或2所述的方法,其特征在于,所述将按照数据版本变更先后顺序生成的日志保存在非易失存储器中,包括:
当数据更新时,生成新版本的日志文件;
判断新版本的日志文件对应的历史版本日志文件是否可见;
若所述新版本的日志文件对应的历史版本日志文件不可见,则保存所述新版本的日志文件;
若所述新版本的日志文件对应的历史版本日志文件可见,则进一步判断所述新版本的日志文件是否为最后一条日志文件;
若所述新版本的日志文件是最后一条日志文件,则保存所述新版本的日志文件;
若所述新版本的日志文件不是最后一条日志文件,则清理所述新版本的日志文件。
4.如权利要求3所述的方法,其特征在于,在将按照数据版本变更先后顺序生成的日志保存在非易失存储器中之后,还包括:
根据预设周期定期清理所述日志文件中的至少一个历史变更版本或者清理除最后一条日志文件之外的其他日志文件。
5.如权利要求4所述的方法,其特征在于,所述当恢复内存中的数据时,根据所述日志中事务状态表的事务提交顺序,使用事务提交后的日志文件版本对内存中的数据进行恢复,包括:
读取所述非易失存储器中的日志;
读取所述日志中的事务状态表;
根据所述日志中事务状态表的事务提交顺序,使用事务提交后的日志文件版本对内存中的数据进行恢复。
6.一种处理数据库日志的装置,其特征在于,包括:
保存单元,用于将按照数据版本变更先后顺序生成的日志保存在非易失存储器中,其中,所述日志包括事务状态表、元数据文件及日志文件,所述事务状态表用于记录各个事务的状态,所述元数据文件用于记录事务对应的日志的位置以及下一个日志记录的位置,所述日志文件用于记录数据的变更版本;
恢复单元,用于当恢复内存中的数据时,根据所述日志中事务状态表的事务提交顺序,使用事务提交后的日志文件版本对内存中的数据进行恢复。
7.如权利要求7所述的装置,其特征在于,所述装置还包括:
标记单元,用于标记事务的操作类型,所述操作类型包括回滚和提交。
8.如权利要求6或7所述的装置,其特征在于,所述保存单元具体用于:
当数据更新时,生成新版本的日志文件;
判断新版本的日志文件对应的历史版本日志文件是否可见;
若所述新版本的日志文件对应的历史版本日志文件不可见,则保存所述新版本的日志文件;
若所述新版本的日志文件对应的历史版本日志文件可见,则进一步判断所述新版本的日志文件是否为最后一条日志文件;
若所述新版本的日志文件是最后一条日志文件,则保存所述新版本的日志文件;
若所述新版本的日志文件不是最后一条日志文件,则清理所述新版本的日志文件。
9.如权利要求8所述的装置,其特征在于,所述装置还包括:
清理单元,用于根据预设周期定期清理所述日志文件中的至少一个历史变更版本或者清理除最后一条日志文件之外的其他日志文件。
10.如权利要求9所述的装置,其特征在于,所述恢复单元具体用于:
读取所述非易失存储器中的日志;
读取所述日志中的事务状态表;
根据所述日志中事务状态表的事务提交顺序,使用事务提交后的日志文件版本对内存中的数据进行恢复。
CN201410811130.3A 2014-12-23 2014-12-23 一种处理数据库日志的方法及装置 Active CN104537037B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410811130.3A CN104537037B (zh) 2014-12-23 2014-12-23 一种处理数据库日志的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410811130.3A CN104537037B (zh) 2014-12-23 2014-12-23 一种处理数据库日志的方法及装置

Publications (2)

Publication Number Publication Date
CN104537037A true CN104537037A (zh) 2015-04-22
CN104537037B CN104537037B (zh) 2018-01-23

Family

ID=52852565

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410811130.3A Active CN104537037B (zh) 2014-12-23 2014-12-23 一种处理数据库日志的方法及装置

Country Status (1)

Country Link
CN (1) CN104537037B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106557383A (zh) * 2015-09-24 2017-04-05 北京国双科技有限公司 一种数据恢复的方法及装置
WO2018006723A1 (zh) * 2016-07-04 2018-01-11 阿里巴巴集团控股有限公司 一种针对数据库的数据修改请求处理方法及装置
CN107577678A (zh) * 2016-06-30 2018-01-12 华为技术有限公司 处理数据库事务的方法、客户端和服务器
CN107590286A (zh) * 2017-10-10 2018-01-16 郑州云海信息技术有限公司 在集群文件系统中事务信息的管理方法和装置
CN107818812A (zh) * 2016-09-13 2018-03-20 爱思开海力士有限公司 存储器系统及其操作方法
CN109271277A (zh) * 2017-07-17 2019-01-25 阿里巴巴集团控股有限公司 数据库宕机后的访问方法、装置和系统
WO2019141186A1 (zh) * 2018-01-16 2019-07-25 华为技术有限公司 数据处理方法和装置
CN110515705A (zh) * 2019-08-07 2019-11-29 上海交通大学 可扩展的持久性事务内存及其工作方法
CN112286894A (zh) * 2020-10-29 2021-01-29 云账户技术(天津)有限公司 日志生成方法、装置以及可读存储介质
CN112783927A (zh) * 2021-01-27 2021-05-11 浪潮云信息技术股份公司 一种数据库查询方法及系统
CN113821382A (zh) * 2021-11-24 2021-12-21 西安热工研究院有限公司 一种实时数据库数据处理方法、系统和设备
CN115629910A (zh) * 2022-10-19 2023-01-20 星环信息科技(上海)股份有限公司 一种事务恢复方法、装置、数据库节点及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101794247A (zh) * 2010-03-26 2010-08-04 天津理工大学 嵌套事务模型下实时数据库故障恢复方法
CN102012849A (zh) * 2010-11-19 2011-04-13 中国人民大学 一种基于闪存的数据库恢复方法
KR20120003567A (ko) * 2010-07-05 2012-01-11 최진환 로그 관리 시스템과 이의 로그 처리방법 및 이의 로그 처리방법을 저장하는 기록매체
CN103197988A (zh) * 2012-01-05 2013-07-10 中国移动通信集团湖南有限公司 一种数据备份、恢复的方法、设备和数据库系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101794247A (zh) * 2010-03-26 2010-08-04 天津理工大学 嵌套事务模型下实时数据库故障恢复方法
KR20120003567A (ko) * 2010-07-05 2012-01-11 최진환 로그 관리 시스템과 이의 로그 처리방법 및 이의 로그 처리방법을 저장하는 기록매체
CN102012849A (zh) * 2010-11-19 2011-04-13 中国人民大学 一种基于闪存的数据库恢复方法
CN103197988A (zh) * 2012-01-05 2013-07-10 中国移动通信集团湖南有限公司 一种数据备份、恢复的方法、设备和数据库系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
范玉雷等: "基于相变存储器和闪存的数据库事务恢复模型", 《计算机学报》 *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106557383A (zh) * 2015-09-24 2017-04-05 北京国双科技有限公司 一种数据恢复的方法及装置
CN106557383B (zh) * 2015-09-24 2021-08-10 北京国双科技有限公司 一种数据恢复的方法及装置
CN107577678A (zh) * 2016-06-30 2018-01-12 华为技术有限公司 处理数据库事务的方法、客户端和服务器
WO2018006723A1 (zh) * 2016-07-04 2018-01-11 阿里巴巴集团控股有限公司 一种针对数据库的数据修改请求处理方法及装置
US11132379B2 (en) 2016-07-04 2021-09-28 Ant Financial (Hang Zhou) Network Technology Co., Ltd. Database data modification request processing
US11106695B2 (en) 2016-07-04 2021-08-31 Ant Financial (Hang Zhou) Network Technology Co., Ltd. Database data modification request processing
TWI701567B (zh) * 2016-07-04 2020-08-11 香港商阿里巴巴集團服務有限公司 針對資料庫的資料修改請求處理方法和裝置
CN107818812A (zh) * 2016-09-13 2018-03-20 爱思开海力士有限公司 存储器系统及其操作方法
CN109271277B (zh) * 2017-07-17 2022-03-08 阿里巴巴集团控股有限公司 数据库宕机后的访问方法、装置和系统
CN109271277A (zh) * 2017-07-17 2019-01-25 阿里巴巴集团控股有限公司 数据库宕机后的访问方法、装置和系统
CN107590286B (zh) * 2017-10-10 2021-03-09 苏州浪潮智能科技有限公司 在集群文件系统中事务信息的管理方法和装置
CN107590286A (zh) * 2017-10-10 2018-01-16 郑州云海信息技术有限公司 在集群文件系统中事务信息的管理方法和装置
WO2019141186A1 (zh) * 2018-01-16 2019-07-25 华为技术有限公司 数据处理方法和装置
US11604597B2 (en) 2018-01-16 2023-03-14 Huawei Technologies Co., Ltd. Data processing method and apparatus
CN110515705A (zh) * 2019-08-07 2019-11-29 上海交通大学 可扩展的持久性事务内存及其工作方法
CN110515705B (zh) * 2019-08-07 2022-03-11 上海交通大学 可扩展的持久性事务内存及其工作方法
CN112286894A (zh) * 2020-10-29 2021-01-29 云账户技术(天津)有限公司 日志生成方法、装置以及可读存储介质
CN112783927A (zh) * 2021-01-27 2021-05-11 浪潮云信息技术股份公司 一种数据库查询方法及系统
CN112783927B (zh) * 2021-01-27 2023-03-17 浪潮云信息技术股份公司 一种数据库查询方法及系统
CN113821382A (zh) * 2021-11-24 2021-12-21 西安热工研究院有限公司 一种实时数据库数据处理方法、系统和设备
CN113821382B (zh) * 2021-11-24 2022-03-01 西安热工研究院有限公司 一种实时数据库数据处理方法、系统和设备
CN115629910A (zh) * 2022-10-19 2023-01-20 星环信息科技(上海)股份有限公司 一种事务恢复方法、装置、数据库节点及介质
CN115629910B (zh) * 2022-10-19 2023-08-15 星环信息科技(上海)股份有限公司 一种事务恢复方法、装置、数据库节点及介质

Also Published As

Publication number Publication date
CN104537037B (zh) 2018-01-23

Similar Documents

Publication Publication Date Title
CN104537037A (zh) 一种处理数据库日志的方法及装置
US9223805B2 (en) Durability implementation plan in an in-memory database system
US8799232B2 (en) Method for generating copy of database
WO2017190604A1 (zh) 数据库系统中事务恢复的方法与数据库管理系统
US11416350B2 (en) Recovery of in-memory databases from log records
US7406489B2 (en) Apparatus, system and method for persistently storing data in a data synchronization process
CN104881371A (zh) 持久性内存事务处理缓存管理方法与装置
US8667033B1 (en) Persistent file system objects for management of databases
US20140310245A1 (en) Partition level backup and restore of a massively parallel processing database
US9558077B1 (en) Relational database recovery
CN103164490B (zh) 一种不固定长度数据的高效存储实现方法和装置
CN108763508B (zh) 数据页访问方法、存储引擎以及计算机可读存储介质
EP1806668B1 (en) System and method for managing log information for transaction
US9798761B2 (en) Apparatus and method for fsync system call processing using ordered mode journaling with file unit
US20170212902A1 (en) Partially sorted log archive
CN105027067A (zh) 用于存储系统中的基于对象的事务的方法和系统
US9411692B2 (en) Applying write elision
US9898468B2 (en) Single pass file system repair with copy on write
US20160314151A1 (en) Deleted database record reuse
CN105094711B (zh) 一种实现写时复制文件系统的方法及装置
US10482013B2 (en) Eliding memory page writes upon eviction after page modification
CN103207916A (zh) 元数据处理的方法和装置
CN102609335A (zh) 一种实现写时复制保护元数据的装置及方法
CN104731716A (zh) 一种数据存储方法
CN106557383B (zh) 一种数据恢复的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200417

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd.

Address before: 301, A building, room 3, building 301, foreshore Road, No. 310053, Binjiang District, Zhejiang, Hangzhou

Patentee before: Huawei Technologies Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220209

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.