CN101710332A - 一种事务日志通知内存数据库内容变化的方法及系统 - Google Patents

一种事务日志通知内存数据库内容变化的方法及系统 Download PDF

Info

Publication number
CN101710332A
CN101710332A CN200910206480A CN200910206480A CN101710332A CN 101710332 A CN101710332 A CN 101710332A CN 200910206480 A CN200910206480 A CN 200910206480A CN 200910206480 A CN200910206480 A CN 200910206480A CN 101710332 A CN101710332 A CN 101710332A
Authority
CN
China
Prior art keywords
transaction journal
real
interface
data base
internal storage
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.)
Pending
Application number
CN200910206480A
Other languages
English (en)
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.)
SNRISE Corp
Original Assignee
SNRISE Corp
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 SNRISE Corp filed Critical SNRISE Corp
Priority to CN200910206480A priority Critical patent/CN101710332A/zh
Publication of CN101710332A publication Critical patent/CN101710332A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种事务日志通知内存数据库内容变化的方法,包括:预先创建事务日志实时监控接口;客户程序调用所述事务日志实时监控接口,并阻塞在等待操作上;当内存数据库存在事务提交成功时,所述事务日志实时监控接口通知所述等待操作返回所述客户程序。本发明提供一种事务日志通知内存数据库内容变化的方法及系统,在不影响内存数据库的性能的前提下,实现及时通知内存数据库内容变化。

Description

一种事务日志通知内存数据库内容变化的方法及系统
技术领域
本发明涉及数据库领域,特别是涉及一种事务日志通知内存数据库内容变化的方法及系统。
背景技术
现有的内存数据库内容变化通知方式往往采用了全量数据加上增量数据的方式,一般包括以下步骤:
步骤1、将内存数据库中的需要实时检测的表做一个增量数据表;
步骤2、内存数据库在操作需要实时检测的表的时候,在操作数据表的同时,将另外一份能够反映操作内容的记录写入到增量数据表中;
步骤3、实时检测进程不断的扫描增量数据表,如果发现非空,则触发一个消息,将记录逐条抛出。
从上述步骤我们可以看出,这种实现方法实际存在两个问题:
一、数据的通知并不能做到完全的实时,即需要实时检测进程不断的去扫描增量的数据库表,这中间就不可避免地存在一个时间窗;
二、每个事务操作的同时要操作增量数据表,严重影响了内存数据库的性能。
因此,如何提供一种事务日志通知内存数据库内容变化的方法及系统,在不影响内存数据库的性能的前提下,实现及时通知内存数据库内容变化,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是提供一种事务日志通知内存数据库内容变化的方法及系统,在不影响内存数据库的性能的前提下,实现及时通知内存数据库内容变化。
本发明提供一种事务日志通知内存数据库内容变化的方法,所述方法包括以下步骤:
预先创建事务日志实时监控接口;
客户程序调用所述事务日志实时监控接口,并阻塞在等待操作上;
当内存数据库存在事务提交成功时,所述事务日志实时监控接口通知所述等待操作返回所述客户程序。
优选地,所述客户程序为需要得到所述内存数据库实时变化状况的应用。
优选地,所述事务日志实时监控接口统一处理事务日志文件和事务日志缓存中日志文件。
优选地,所述事务日志实时监控接口采用消息通知方式,通知所述等待操作返回所述客户程序。
优选地,所述消息中包含的时间与事务在内存数据库提交成功的时间一致。
优选地,所述事务为插入语句或删除语句或更新语句。
优选地,当内存数据库存在一个提交成功插入语句时,所述事务日志实时监控接口触发一个消息,所述消息包含所述插入的内容。
优选地,当内存数据库存在一个提交成功的删除语句时,所述事务日志实时监控接口触发一个消息,所述消息包含所述删除语句实际删除的每条记录的内容。
优选地,当内存数据库存在一个提交成功的更新语句时,所述事务日志实时监控接口触发一个消息,所述消息包含所述更新语句影响的每条记录更新前的内容和更新后的内容。
本发明还提供一种事务日志通知内存数据库内容变化的系统,所述系统包括:
创建单元,用于预先创建事务日志实时监控接口;
客户程序,调用所述创建单元创建的事务日志实时监控接口,并阻塞在等待操作上;
所述事务日志实时监控接口,用于当内存数据库存在事务提交成功时,通知所述等待操作返回所述客户程序。
优选地,所述事务日志实时监控接口采用消息通知方式,当内存数据库存在事务提交成功时,通知所述等待操作返回所述客户程序。
与现有技术相比,本发明具有以下优点:
本发明实施例所述事务日志通知内存数据库内容变化的方法,由于是通过事务日志文件获取内存数据库内容的变化,是异步方式,因此不会影响内存数据库的性能。而且当内存数据库存在事务提交成功时,所述事务日志实时监控接口就会通知所述等待操作返回所述客户程序,因此本发明实施例所述方法能够实现及时通知内存数据库内容变化。
附图说明
图1为本发明实施例所述事务日志通知内存数据库内容变化的方法流程图;
图2为本发明实施例所述事务日志通知内存数据库内容变化的系统结构图。
具体实施方式
本发明的目的是提供一种事务日志通知内存数据库内容变化的方法,在不影响内存数据库的性能的前提下,实现及时通知内存数据库内容变化。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
为了便于本领域技术人员的理解,下面介绍几个相关名词。
内存数据库是一种内存优化的关系数据库系统;通过数据和元数据都存放在物理内存中,提高数据库的操作响应时间。
事务日志是一个与数据库文件分开的文件,存储对数据库进行的所有更改,并全部记录插入、更新、删除、提交、回退和数据库模式变化。在缺省情况下,所有数据库都使用事务日志。事务日志的使用是可选的,但是,除非因特殊原因而不使用,否则应始终使用。运行带有事务日志的数据库可提供更强的故障保护功能、更好的性能以及数据复制功能。
所述事务日志具体可以为WAL事务日志文件,用于记录内存数据库的事务处理信息。
WAL是一种实现事务日志的标准方法。简言之,WAL的中心思想是对数据文件的修改(WAL是表和索引的载体)必须是只能发生在这些修改已经记录了日志之后。
对于数据库而言,为了实现基本的ACID特性,必须在事务提交之前,将事务内容以一定的格式写入到事务日志文件中。
ACID特性:指事务的原子性、一致性、独立性及持久性。
事务的原子性是指一个事务要么全部执行,要么不执行。
事务的一致性是指事务的运行并不改变数据库中数据的一致性。
事务的独立性是指两个以上的事务不会出现交错执行的状态。因为这样可能会导致数据不一致.
事务的持久性是指事务运行成功以后,就系统的更新是永久的,不会无缘无故的回滚。
而对于内存数据库,为了达到极高的性能,往往会降低“D”特性的要求,即不采用文件数据库那样每个事物日志记录首先必须写入磁盘文件且写入成功之后,才能真正的提交事务,而是先把事务日志记录写入到操作系统共享内存区的一个事务日志缓存区,之后由日志刷新进程异步的将事务日志flush到磁盘日志文件上。因此,内存数据库并不严格的遵守ACID。
参见图1,该图为本发明实施例所述事务日志通知内存数据库内容变化的方法流程图。
本发明实施例所述事务日志通知内存数据库内容变化的方法,包括以下步骤:
S100、预先创建事务日志实时监控接口。
所述事务日志实时监控接口统一处理事务日志文件和事务日志缓存中日志文件。
S200、客户程序调用所述事务日志实时监控接口,并阻塞在等待操作上。
所述客户程序具体为需要得到所述内存数据库实时变化状况的应用。
S300、当内存数据库存在事务提交成功时,所述事务日志实时监控接口通知所述等待操作返回所述客户程序。
所述事务具体可以为插入语句或删除语句或更新语句。
所述事务日志实时监控接口可以采用消息通知方式,通知所述等待操作返回所述客户程序。
所述消息中包含的时间与事务在内存数据库提交成功的时间一致。
当内存数据库存在一个提交成功插入语句时,所述事务日志实时监控接口触发一个消息,所述消息包含所述插入的内容。
当内存数据库存在一个提交成功的删除语句时,所述事务日志实时监控接口触发一个消息,所述消息包含所述删除语句实际删除的每条记录的内容。
当内存数据库存在一个提交成功的更新语句时,所述事务日志实时监控接口触发一个消息,所述消息包含所述更新语句影响的每条记录更新前的内容和更新后的内容。
本发明实施例所述事务日志通知内存数据库内容变化的方法,由于是通过事务日志文件获取内存数据库内容的变化,是异步方式,因此不会影响内存数据库的性能。在数据库操作时,无需继续另外的处理。而且当内存数据库存在事务提交成功时,所述事务日志实时监控接口就会通知所述等待操作返回所述客户程序,因此本发明实施例所述方法能够实现及时通知内存数据库内容变化。
本发明实施例所述事务日志通知内存数据库内容变化的方法的事务日志实时监控接口采用消息通知的方法,因此能够实时的将数据库的内容变化通知到客户程序。
本发明实施例所述事务日志通知内存数据库内容变化的方法,事务日志实时监控接口将事务日志文件和事务日志缓存统一处理,使用所述事务日志实时监控接口的应用程序无需关注事务日志记录在内存数据库日志文件中还是事务日志缓存区。
本发明实施例所述事务日志通知内存数据库内容变化的方法可以按需启动或终止,无需在数据库启动时就运行。
本发明还提供一种事务日志通知内存数据库内容变化的系统,在不影响内存数据库的性能的前提下,实现及时通知内存数据库内容变化。
参见图2,该图为本发明实施例所述事务日志通知内存数据库内容变化的系统结构图。
本发明实施例所述事务日志通知内存数据库内容变化的系统,包括:
创建单元1,用于预先创建事务日志实时监控接口3。
客户程序2,调用所述创建单元创建的事务日志实时监控接口,并阻塞在等待操作上。
所述事务日志实时监控接口3,用于当内存数据库存在事务提交成功时,通知所述等待操作返回所述客户程序2。
所述事务日志实时监控接口3具体可以采用消息通知方式,当内存数据库存在事务提交成功时,通知所述等待操作返回所述客户程序2。
客户程序2的获取单元获取所述内存数据库内容的变化。
本发明实施例所述事务日志通知内存数据库内容变化的系统中各个单元,可以为前文所述方法中的任何一种形式。
本发明实施例所述事务日志通知内存数据库内容变化的系统,由于是通过事务日志文件获取内存数据库内容的变化,是异步方式,因此不会影响内存数据库的性能。而且当内存数据库存在事务提交成功时,所述事务日志实时监控接口3就会通知所述等待操作返回所述客户程序2,因此本发明实施例所述方法能够实现及时通知内存数据库内容变化。
以上对本发明所提供的事务日志通知内存数据库内容变化的方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (11)

1.一种事务日志通知内存数据库内容变化的方法,其特征在于,所述方法包括以下步骤:
预先创建事务日志实时监控接口;
客户程序调用所述事务日志实时监控接口,并阻塞在等待操作上;
当内存数据库存在事务提交成功时,所述事务日志实时监控接口通知所述等待操作返回所述客户程序。
2.根据权利要求1所述的事务日志通知内存数据库内容变化的方法,其特征在于,所述客户程序为需要得到所述内存数据库实时变化状况的应用。
3.根据权利要求1所述的事务日志通知内存数据库内容变化的方法,其特征在于,所述事务日志实时监控接口统一处理事务日志文件和事务日志缓存中日志文件。
4.根据权利要求1所述的事务日志通知内存数据库内容变化的方法,其特征在于,所述事务日志实时监控接口采用消息通知方式,通知所述等待操作返回所述客户程序。
5.根据权利要求4所述的事务日志通知内存数据库内容变化的方法,其特征在于,所述消息中包含的时间与事务在内存数据库提交成功的时间一致。
6.根据权利要求1所述的事务日志通知内存数据库内容变化的方法,其特征在于,所述事务为插入语句或删除语句或更新语句。
7.根据权利要求6所述的事务日志通知内存数据库内容变化的方法,其特征在于,当内存数据库存在一个提交成功插入语句时,所述事务日志实时监控接口触发一个消息,所述消息包含所述插入的内容。
8.根据权利要求6所述的事务日志通知内存数据库内容变化的方法,其特征在于,当内存数据库存在一个提交成功的删除语句时,所述事务日志实时监控接口触发一个消息,所述消息包含所述删除语句实际删除的每条记录的内容。
9.根据权利要求6所述的事务日志通知内存数据库内容变化的方法,其特征在于,当内存数据库存在一个提交成功的更新语句时,所述事务日志实时监控接口触发一个消息,所述消息包含所述更新语句影响的每条记录更新前的内容和更新后的内容。
10.一种事务日志通知内存数据库内容变化的系统,其特征在于,所述系统包括:
创建单元,用于预先创建事务日志实时监控接口;
客户程序,调用所述创建单元创建的事务日志实时监控接口,并阻塞在等待操作上;
所述事务日志实时监控接口,用于当内存数据库存在事务提交成功时,通知所述等待操作返回所述客户程序。
11.根据权利要求10所述的事务日志通知内存数据库内容变化的系统,其特征在于,所述事务日志实时监控接口采用消息通知方式,当内存数据库存在事务提交成功时,通知所述等待操作返回所述客户程序。
CN200910206480A 2009-11-13 2009-11-13 一种事务日志通知内存数据库内容变化的方法及系统 Pending CN101710332A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910206480A CN101710332A (zh) 2009-11-13 2009-11-13 一种事务日志通知内存数据库内容变化的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910206480A CN101710332A (zh) 2009-11-13 2009-11-13 一种事务日志通知内存数据库内容变化的方法及系统

Publications (1)

Publication Number Publication Date
CN101710332A true CN101710332A (zh) 2010-05-19

Family

ID=42403122

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910206480A Pending CN101710332A (zh) 2009-11-13 2009-11-13 一种事务日志通知内存数据库内容变化的方法及系统

Country Status (1)

Country Link
CN (1) CN101710332A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324565A (zh) * 2012-05-30 2013-09-25 北京神州泰岳软件股份有限公司 日志监控方法
CN103827870A (zh) * 2011-09-30 2014-05-28 甲骨文国际公司 集群中的有效高速缓存管理
CN107315746A (zh) * 2016-04-26 2017-11-03 清华大学 基于非易失性主存的高效事务文件系统构建方法
CN110795413A (zh) * 2019-10-30 2020-02-14 珠海港联科技有限公司 一种带有日志记录功能的数据库操作接口服务系统
CN111382024A (zh) * 2018-12-28 2020-07-07 中兴通讯股份有限公司 一种数据库主备复制延迟监控方法、装置和系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103827870A (zh) * 2011-09-30 2014-05-28 甲骨文国际公司 集群中的有效高速缓存管理
CN103324565A (zh) * 2012-05-30 2013-09-25 北京神州泰岳软件股份有限公司 日志监控方法
CN103324565B (zh) * 2012-05-30 2016-12-14 北京神州泰岳软件股份有限公司 日志监控方法
CN107315746A (zh) * 2016-04-26 2017-11-03 清华大学 基于非易失性主存的高效事务文件系统构建方法
CN107315746B (zh) * 2016-04-26 2020-08-25 清华大学 基于非易失性主存的高效事务文件系统构建方法
CN111382024A (zh) * 2018-12-28 2020-07-07 中兴通讯股份有限公司 一种数据库主备复制延迟监控方法、装置和系统
CN111382024B (zh) * 2018-12-28 2023-07-14 金篆信科有限责任公司 一种数据库主备复制延迟监控方法、装置和系统
CN110795413A (zh) * 2019-10-30 2020-02-14 珠海港联科技有限公司 一种带有日志记录功能的数据库操作接口服务系统

Similar Documents

Publication Publication Date Title
US7490113B2 (en) Database log capture that publishes transactions to multiple targets to handle unavailable targets by separating the publishing of subscriptions and subsequently recombining the publishing
US9009104B2 (en) Checkpoint-free in log mining for distributed information sharing
US7702741B2 (en) Configuring or reconfiguring a multi-master information sharing environment
US7240054B2 (en) Techniques to preserve data constraints and referential integrity in asynchronous transactional replication of relational tables
US9672126B2 (en) Hybrid data replication
EP2797013B1 (en) Database update execution according to power management schemes
CN101364217B (zh) 数据库中数据维护方法、设备及其系统
CN100403315C (zh) 一种实现负荷分担的数据库访问方法及系统
US20020073082A1 (en) System modification processing technique implemented on an information storage and retrieval system
US6360228B1 (en) Transactional framework for executing statements involving non-native code
US20070233753A1 (en) Database system management method, database system, database device, and backup program
US11567921B2 (en) Rowgroup consolidation with global delta accumulation and versioning in distributed systems
CN101710332A (zh) 一种事务日志通知内存数据库内容变化的方法及系统
Yang et al. F1 Lightning: HTAP as a Service
CN102955792A (zh) 一种实时全文搜索引擎事务处理的实现方法
CA2626849A1 (en) Method and mechanism for loading xml documents into memory
CN113868028A (zh) 一种在数据节点上回放日志的方法、数据节点及系统
ZA200307863B (en) System and method for reorganizing stored data.
US7899785B2 (en) Reconfiguring propagation streams in distributed information sharing
WO2011051098A1 (en) Synchronizing database and non-database resources
EP3082050A1 (en) Mass data fusion storage method and system
US7685122B1 (en) Facilitating suspension of batch application program access to shared IMS resources
CN114003622B (zh) 一种事务型数据库之间巨大事务增量同步方法
WO2024082693A1 (zh) 数据处理方法及装置
US11947994B2 (en) Adaptive hardware transactional memory based concurrency control

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20100519