CN101710332A - 一种事务日志通知内存数据库内容变化的方法及系统 - Google Patents
一种事务日志通知内存数据库内容变化的方法及系统 Download PDFInfo
- 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
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所述的事务日志通知内存数据库内容变化的系统,其特征在于,所述事务日志实时监控接口采用消息通知方式,当内存数据库存在事务提交成功时,通知所述等待操作返回所述客户程序。
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)
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 | 中兴通讯股份有限公司 | 一种数据库主备复制延迟监控方法、装置和系统 |
-
2009
- 2009-11-13 CN CN200910206480A patent/CN101710332A/zh active Pending
Cited By (8)
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 |