CN110990363A - 一种分布式数据库多线程协同事务日志回放方法、系统 - Google Patents
一种分布式数据库多线程协同事务日志回放方法、系统 Download PDFInfo
- Publication number
- CN110990363A CN110990363A CN201911197071.4A CN201911197071A CN110990363A CN 110990363 A CN110990363 A CN 110990363A CN 201911197071 A CN201911197071 A CN 201911197071A CN 110990363 A CN110990363 A CN 110990363A
- Authority
- CN
- China
- Prior art keywords
- log
- transaction log
- transaction
- cache
- copy
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种分布式数据库多线程协同事务日志回放方法、系统,该方法包括如下步骤:(1)从副本接收主副本事务日志,并保存至日志接收缓存;(2)从副本持久化线程发现日志接收缓存中有新的事务日志则启动持久化操作;(3)持久化操作完成后将事务日志存至日志持久化缓存;(4)从副本接收主副本事务提交消息,回放调度线程完成事务日志回放。与现有技术相比,本发明基于多线程协同并行处理技术实现了低延迟高稳定性的的事务日志回放,缩短交易响应时间,提高效率。
Description
技术领域
本发明涉及一种事务日志回放方法、系统,尤其是涉及一种分布式数据库多线程协同事务日志回放方法、系统。
背景技术
数据复制一般分为强一致复制和弱一致复制。目前,很多数据库系统都使用基于多数派的数据复制方式,即主副本等待多数个从副本处理完事务日志并回复主副本后,再提交事务。这种方式综合了强一致复制和弱一致复制原理,事务处理较快,且保证了数据高可用特性。
基于多数派的数据复制中,主副本异步发送事务日志到各个从副本,从副本将日志持久化后即可回复主副本。当日志在多数个从副本中完成持久,主副本即可提交相应事务。为了保证客户端获取符合预期的正确数据,必须等主副本确认提交后,从副本才能在本地提交,因此通常主副本会在发送下一个事务日志时,将已提交事务的日志标记信息也一同发送,使得从副本可以提交。
目前,常见的事务日志回放方案为:从副本接收到事务日志后,先将日志暂时保存到缓存,这个缓存中的事务日志必须是连续的,如果由于某些原因(通常是网络问题)而接收到不连续的日志,则会清空原有日志。随后,从副本根据主副本的已提交事务信息,从日志接收缓存中读取已提交的日志进行回放,应用到内存。然后,将本次接收到的新事务日志写入磁盘,成功后回复主副本。一般情况下,调度线程会先再缓存中获取已提交的事务日志,但如果缓存已失效,则访问本地磁盘读取日志进行回放,如果仍为找到,则远程访问主副本拉取日志内容。这种技术的缺陷在于,从副本日志持久化和回放调度均由单线程执行,一旦获取已提交日志时缓存未命中,将严重影响当前事务日志的持久化操作,增大回复主副本的延迟,导致主副本事务提交效率下降,最终数据库性能也会受到较大影响。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种分布式数据库多线程协同事务日志回放方法、系统。
本发明的目的可以通过以下技术方案来实现:
一种分布式数据库多线程协同事务日志回放方法,该方法包括如下步骤:
(1)从副本接收主副本事务日志,并保存至日志接收缓存;
(2)从副本持久化线程发现日志接收缓存中有新的事务日志则启动持久化操作;
(3)持久化操作完成后将事务日志存至日志持久化缓存;
(4)从副本接收主副本事务提交消息,回放调度线程完成事务日志回放。
步骤(2)持久化操作具体为:持久化线程读取日志接收缓存中新的事务日志并持久化至从副本磁盘,然后向主副本发送回复消息。
步骤(3)存至日志持久化缓存中的事务日志从日志接收缓存中读取。
步骤(4)事务日志回放具体为:回放调度线程从日志持久化缓存中读取相应的事务日志并回放至从副本内存。
步骤(1)将事务日志保存至日志接收缓存中还需判断该事务日志与日志接收缓存中的已有事务日志是否连续,若是则直接将该事务日志存入日志接收缓存,否则清空日志接收缓存后再将该事务日志存入日志接收缓存。
一种分布式数据库多线程协同事务日志回放系统,包括主副本和从副本,所述的从副本包括:
日志接收缓存:保存从主副本接收的事务日志;
持久化线程:发现日志接收缓存中有新的事务日志时启动持久化操作;
日志持久化缓存:保存用于日志回放的事务日志;
回放调度线程:从副本接收主副本事务提交消息后启动事务日志回放操作。
持久化线程启动持久化操作的具体方式为:持久化线程读取日志接收缓存中新的事务日志并持久化至从副本磁盘,然后向主副本发送回复消息。
所述的日志持久化缓存从日志接收缓存中读取事务日志并存储。
回放调度线程事务日志回放操作的具体方式为:回放调度线程从日志持久化缓存中读取相应的事务日志并回放至从副本内存。
日志接收缓存中设有事务日志连续性判断模块:该模块用于在向日志接收缓存中存储新的事务日志时判断该事务日志与日志接收缓存中的已有事务日志是否连续,若是则直接将该事务日志存入日志接收缓存,否则清空日志接收缓存后再将该事务日志存入日志接收缓存。
与现有技术相比,本发明具有如下优点:
(1)本发明将事务日志持久化和日志回放解耦,采用持久化线程和回放调度线程多线程并行处理,实现低延迟高稳定性的事务日志回放。
(2)本发明设置日志持久化缓存,直接从日志持久化缓存中读取事务日志即可,确保日志持久化缓存中日志的连续性,减小了缓存未命中率。
附图说明
图1为分布式数据库多线程协同事务日志回放方法的流程图;
图2为分布式数据库多线程协同事务日志回放系统的结构框图。
图中,1为主副本,2为从副本,21为日志接收缓存,22为持久化线程,23为日志持久化缓存,24为回放调度线程,25为磁盘,26为内存。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。注意,以下的实施方式的说明只是实质上的例示,本发明并不意在对其适用物或其用途进行限定,且本发明并不限定于以下的实施方式。
实施例
如图1所示,一种分布式数据库多线程协同事务日志回放方法,该方法包括如下步骤:
S1:从副本接收主副本事务日志,并保存至日志接收缓存;
该步骤将事务日志保存至日志接收缓存中还需判断该事务日志与日志接收缓存中的已有事务日志是否连续,若是则直接将该事务日志存入日志接收缓存,否则清空日志接收缓存后再将该事务日志存入日志接收缓存。
S2:从副本持久化线程发现日志接收缓存中有新的事务日志则启动持久化操作,具体为:持久化线程读取日志接收缓存中新的事务日志并持久化至从副本磁盘,然后向主副本发送回复消息。
S3:持久化操作完成后将事务日志存至日志持久化缓存,存至日志持久化缓存中的事务日志从日志接收缓存中读取。
S4:从副本接收主副本事务提交消息,回放调度线程完成事务日志回放,具体为:回放调度线程从日志持久化缓存中读取相应的事务日志并回放至从副本内存。
如图2所示,一种分布式数据库多线程协同事务日志回放系统,包括主副本1和从副本2,所述的从副本2包括:
日志接收缓存21:保存从主副本2接收的事务日志;
持久化线程22:发现日志接收缓存21中有新的事务日志时启动持久化操作;
日志持久化缓存23:保存用于日志回放的事务日志;
回放调度线程24:从副本2接收主副本1事务提交消息后启动事务日志回放操作。
持久化线程22启动持久化操作的具体方式为:持久化线程22读取日志接收缓存21中新的事务日志并持久化至从副本2磁盘25,然后向主副本1发送回复消息。
日志持久化缓存23从日志接收缓存21中读取事务日志并存储。
回放调度线程24事务日志回放操作的具体方式为:回放调度线程24从日志持久化缓存23中读取相应的事务日志并回放至从副本2内存26。
日志接收缓存21中设有事务日志连续性判断模块:该模块用于在向日志接收缓存21中存储新的事务日志时判断该事务日志与日志接收缓存21中的已有事务日志是否连续,若是则直接将该事务日志存入日志接收缓存21,否则清空日志接收缓存21后再将该事务日志存入日志接收缓存21。
本实施例以主副本复制若干连续事务日志到从副本,从副本进行处理为例:
从副本首先接收到事务日志A,将其保存到日志接收缓存中,并检查缓存内日志的连续性,如果日志A与已有的日志不连续,则清空缓存后再存入A。持久化线程发现日志接收缓存中有新的事务日志A,则会立即将其读出然后持久化到磁盘,同时也把日志A写入日志持久化缓存,然后给主副本发送回复消息。随后,从副本又接收到事务日志B(B与A连续)以及A相关事务已经提交的消息。持久化线程仍进行相同的操作,将日志B写入磁盘,但与此同时,由于A相关事务主副本已经提交,回放调度线程从持久化缓存中取出事务日志A回放到从副本的内存。至此,完成了从副本接收到回放事务日志A的全部流程,客户端此时无论是访问主副本还是从副本,都可以读取到相关的数据。
上述实施方式仅为例举,不表示对本发明范围的限定。这些实施方式还能以其它各种方式来实施,且能在不脱离本发明技术思想的范围内作各种省略、置换、变更。
Claims (10)
1.一种分布式数据库多线程协同事务日志回放方法,其特征在于,该方法包括如下步骤:
(1)从副本接收主副本事务日志,并保存至日志接收缓存;
(2)从副本持久化线程发现日志接收缓存中有新的事务日志则启动持久化操作;
(3)持久化操作完成后将事务日志存至日志持久化缓存;
(4)从副本接收主副本事务提交消息,回放调度线程完成事务日志回放。
2.根据权利要求1所述的一种分布式数据库多线程协同事务日志回放方法,其特征在于,步骤(2)持久化操作具体为:持久化线程读取日志接收缓存中新的事务日志并持久化至从副本磁盘,然后向主副本发送回复消息。
3.根据权利要求1所述的一种分布式数据库多线程协同事务日志回放方法,其特征在于,步骤(3)存至日志持久化缓存中的事务日志从日志接收缓存中读取。
4.根据权利要求1所述的一种分布式数据库多线程协同事务日志回放方法,其特征在于,步骤(4)事务日志回放具体为:回放调度线程从日志持久化缓存中读取相应的事务日志并回放至从副本内存。
5.根据权利要求1所述的一种分布式数据库多线程协同事务日志回放方法,其特征在于,步骤(1)将事务日志保存至日志接收缓存中还需判断该事务日志与日志接收缓存中的已有事务日志是否连续,若是则直接将该事务日志存入日志接收缓存,否则清空日志接收缓存后再将该事务日志存入日志接收缓存。
6.一种分布式数据库多线程协同事务日志回放系统,包括主副本和从副本,其特征在于,所述的从副本包括:
日志接收缓存:保存从主副本接收的事务日志;
持久化线程:发现日志接收缓存中有新的事务日志时启动持久化操作;
日志持久化缓存:保存用于日志回放的事务日志;
回放调度线程:从副本接收主副本事务提交消息后启动事务日志回放操作。
7.根据权利要求6所述的一种分布式数据库多线程协同事务日志回放系统,其特征在于,持久化线程启动持久化操作的具体方式为:持久化线程读取日志接收缓存中新的事务日志并持久化至从副本磁盘,然后向主副本发送回复消息。
8.根据权利要求6所述的一种分布式数据库多线程协同事务日志回放系统,,其特征在于,所述的日志持久化缓存从日志接收缓存中读取事务日志并存储。
9.根据权利要求6所述的一种分布式数据库多线程协同事务日志回放系统,,其特征在于,回放调度线程事务日志回放操作的具体方式为:回放调度线程从日志持久化缓存中读取相应的事务日志并回放至从副本内存。
10.根据权利要求6所述的一种分布式数据库多线程协同事务日志回放系统,,其特征在于,日志接收缓存中设有事务日志连续性判断模块:该模块用于在向日志接收缓存中存储新的事务日志时判断该事务日志与日志接收缓存中的已有事务日志是否连续,若是则直接将该事务日志存入日志接收缓存,否则清空日志接收缓存后再将该事务日志存入日志接收缓存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911197071.4A CN110990363B (zh) | 2019-11-29 | 2019-11-29 | 一种分布式数据库多线程协同事务日志回放方法、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911197071.4A CN110990363B (zh) | 2019-11-29 | 2019-11-29 | 一种分布式数据库多线程协同事务日志回放方法、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110990363A true CN110990363A (zh) | 2020-04-10 |
CN110990363B CN110990363B (zh) | 2023-07-14 |
Family
ID=70088131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911197071.4A Active CN110990363B (zh) | 2019-11-29 | 2019-11-29 | 一种分布式数据库多线程协同事务日志回放方法、系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110990363B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475583A (zh) * | 2020-06-19 | 2020-07-31 | 阿里云计算有限公司 | 事务处理方法及装置 |
CN114116665A (zh) * | 2021-11-22 | 2022-03-01 | 北京海量数据技术股份有限公司 | 数据库中并行写入事务日志以提升处理效率的方法 |
CN116385001A (zh) * | 2023-06-07 | 2023-07-04 | 建信金融科技有限责任公司 | 交易日志回放方法、装置、电子设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102945278B (zh) * | 2012-11-09 | 2015-12-09 | 华为技术有限公司 | 一种数据库记录重做日志的方法和装置 |
CN104881371B (zh) * | 2015-05-29 | 2018-02-09 | 清华大学 | 持久性内存事务处理缓存管理方法与装置 |
CN108664340B (zh) * | 2018-04-16 | 2022-02-08 | 北京酷我科技有限公司 | 一种多线程日志发送管理的方法 |
-
2019
- 2019-11-29 CN CN201911197071.4A patent/CN110990363B/zh active Active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475583A (zh) * | 2020-06-19 | 2020-07-31 | 阿里云计算有限公司 | 事务处理方法及装置 |
CN111475583B (zh) * | 2020-06-19 | 2020-11-17 | 阿里云计算有限公司 | 事务处理方法及装置 |
CN114116665A (zh) * | 2021-11-22 | 2022-03-01 | 北京海量数据技术股份有限公司 | 数据库中并行写入事务日志以提升处理效率的方法 |
CN114116665B (zh) * | 2021-11-22 | 2023-07-25 | 北京海量数据技术股份有限公司 | 数据库中并行写入事务日志以提升处理效率的方法 |
CN116385001A (zh) * | 2023-06-07 | 2023-07-04 | 建信金融科技有限责任公司 | 交易日志回放方法、装置、电子设备及存储介质 |
CN116385001B (zh) * | 2023-06-07 | 2023-08-22 | 建信金融科技有限责任公司 | 交易日志回放方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110990363B (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109739935B (zh) | 数据读取方法、装置、电子设备以及存储介质 | |
CN110990363A (zh) | 一种分布式数据库多线程协同事务日志回放方法、系统 | |
US8527459B2 (en) | System and method for data replication between heterogeneous databases | |
US7499954B2 (en) | Consistent reintegration of a failed primary instance | |
CN102945278B (zh) | 一种数据库记录重做日志的方法和装置 | |
US6539402B1 (en) | Using periodic spaces of block ID to improve additional recovery | |
JP2010134522A (ja) | データベース管理方法、データベース管理プログラム、および、データベース管理装置 | |
EP1806668B1 (en) | System and method for managing log information for transaction | |
WO2020025049A1 (zh) | 数据同步的方法、装置、数据库主机及存储介质 | |
CN109783578B (zh) | 数据读取方法、装置、电子设备以及存储介质 | |
CN113094362B (zh) | 一种异步消息可靠投递和处理的方法和装置 | |
CN110597835A (zh) | 一种基于区块链的交易数据删除方法及装置 | |
CN113987078B (zh) | 数据同步方法、设备及计算机可读存储介质 | |
CN104115127B (zh) | 存储系统和数据管理方法 | |
US20110078383A1 (en) | Cache Management for Increasing Performance of High-Availability Multi-Core Systems | |
CN115658245B (zh) | 一种基于分布式数据库系统的事务提交系统、方法及装置 | |
CN111930692A (zh) | 一种基于日志解析同步的事务合并执行方法及装置 | |
CN110348245B (zh) | 基于nvm的数据完整性保护方法、系统、装置及存储介质 | |
US8140638B2 (en) | Multistage online transaction system, server, multistage online transaction processing method and program | |
KR20140135020A (ko) | Low Latency 프레임워크 시스템 | |
CN114328743A (zh) | 集群中实现对等服务的方法及系统 | |
US8775371B2 (en) | Synchronizing an auxiliary data system with a primary data system | |
CN115292335A (zh) | 事务处理方法、装置及电子设备 | |
CN111506458A (zh) | 一种提升f2fs文件系统事务性能的方法、模块及存储系统 | |
US20030033440A1 (en) | Method of logging message activity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |