CN110990363B - 一种分布式数据库多线程协同事务日志回放方法、系统 - Google Patents

一种分布式数据库多线程协同事务日志回放方法、系统 Download PDF

Info

Publication number
CN110990363B
CN110990363B CN201911197071.4A CN201911197071A CN110990363B CN 110990363 B CN110990363 B CN 110990363B CN 201911197071 A CN201911197071 A CN 201911197071A CN 110990363 B CN110990363 B CN 110990363B
Authority
CN
China
Prior art keywords
log
transaction log
transaction
copy
persistence
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.)
Active
Application number
CN201911197071.4A
Other languages
English (en)
Other versions
CN110990363A (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.)
Bank of Communications Co Ltd
Original Assignee
Bank of Communications 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 Bank of Communications Co Ltd filed Critical Bank of Communications Co Ltd
Priority to CN201911197071.4A priority Critical patent/CN110990363B/zh
Publication of CN110990363A publication Critical patent/CN110990363A/zh
Application granted granted Critical
Publication of CN110990363B publication Critical patent/CN110990363B/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/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
    • 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/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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 (4)

1.一种分布式数据库多线程协同事务日志回放方法,其特征在于,该方法包括如下步骤:
(1)从副本接收主副本事务日志,并保存至日志接收缓存;
(2)从副本持久化线程发现日志接收缓存中有新的事务日志则启动持久化操作;
(3)持久化操作完成后将事务日志存至日志持久化缓存;
(4)从副本接收主副本事务提交消息,回放调度线程完成事务日志回放;
步骤(2)持久化操作具体为:持久化线程读取日志接收缓存中新的事务日志并持久化至从副本磁盘,然后向主副本发送回复消息;
步骤(3)存至日志持久化缓存中的事务日志从日志接收缓存中读取;
步骤(4)事务日志回放具体为:回放调度线程从日志持久化缓存中读取相应的事务日志并回放至从副本内存。
2.根据权利要求1所述的一种分布式数据库多线程协同事务日志回放方法,其特征在于,步骤(1)将事务日志保存至日志接收缓存中还需判断该事务日志与日志接收缓存中的已有事务日志是否连续,若是则直接将该事务日志存入日志接收缓存,否则清空日志接收缓存后再将该事务日志存入日志接收缓存。
3.一种分布式数据库多线程协同事务日志回放系统,包括主副本和从副本,其特征在于,所述的从副本包括:
日志接收缓存:保存从主副本接收的事务日志;
持久化线程:发现日志接收缓存中有新的事务日志时启动持久化操作;
日志持久化缓存:保存用于日志回放的事务日志;
回放调度线程:从副本接收主副本事务提交消息后启动事务日志回放操作;
持久化线程启动持久化操作的具体方式为:持久化线程读取日志接收缓存中新的事务日志并持久化至从副本磁盘,然后向主副本发送回复消息;
所述的日志持久化缓存从日志接收缓存中读取事务日志并存储;
回放调度线程事务日志回放操作的具体方式为:回放调度线程从日志持久化缓存中读取相应的事务日志并回放至从副本内存。
4.根据权利要求3所述的一种分布式数据库多线程协同事务日志回放系统,,其特征在于,日志接收缓存中设有事务日志连续性判断模块:该模块用于在向日志接收缓存中存储新的事务日志时判断该事务日志与日志接收缓存中的已有事务日志是否连续,若是则直接将该事务日志存入日志接收缓存,否则清空日志接收缓存后再将该事务日志存入日志接收缓存。
CN201911197071.4A 2019-11-29 2019-11-29 一种分布式数据库多线程协同事务日志回放方法、系统 Active CN110990363B (zh)

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 CN110990363A (zh) 2020-04-10
CN110990363B true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111475583B (zh) * 2020-06-19 2020-11-17 阿里云计算有限公司 事务处理方法及装置
CN114116665B (zh) * 2021-11-22 2023-07-25 北京海量数据技术股份有限公司 数据库中并行写入事务日志以提升处理效率的方法
CN116385001B (zh) * 2023-06-07 2023-08-22 建信金融科技有限责任公司 交易日志回放方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102945278A (zh) * 2012-11-09 2013-02-27 华为技术有限公司 一种数据库记录重做日志的方法和装置
CN104881371A (zh) * 2015-05-29 2015-09-02 清华大学 持久性内存事务处理缓存管理方法与装置
CN108664340A (zh) * 2018-04-16 2018-10-16 北京酷我科技有限公司 一种多线程日志发送管理的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102945278A (zh) * 2012-11-09 2013-02-27 华为技术有限公司 一种数据库记录重做日志的方法和装置
CN104881371A (zh) * 2015-05-29 2015-09-02 清华大学 持久性内存事务处理缓存管理方法与装置
CN108664340A (zh) * 2018-04-16 2018-10-16 北京酷我科技有限公司 一种多线程日志发送管理的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈娟;胡庆达;陈游旻;陆游游;舒继武;杨晓辉.一种基于微日志的持久性事务内存系统.计算机研究与发展.2018,(09),全文. *

Also Published As

Publication number Publication date
CN110990363A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
CN110990363B (zh) 一种分布式数据库多线程协同事务日志回放方法、系统
US11614867B2 (en) Distributed storage system-based data processing method and storage device
US8527459B2 (en) System and method for data replication between heterogeneous databases
CN102945278B (zh) 一种数据库记录重做日志的方法和装置
US7499954B2 (en) Consistent reintegration of a failed primary instance
US8335766B2 (en) Flash-copying within asynchronous mirroring environment
JP2010134522A (ja) データベース管理方法、データベース管理プログラム、および、データベース管理装置
EP2542980A2 (en) Automatic synchronization conflict resolution
WO2020025049A1 (zh) 数据同步的方法、装置、数据库主机及存储介质
JP2002528814A (ja) 分散型トランザクション処理システムと方法
US20150379105A1 (en) Transaction completion in a synchronous replication environment
US8499133B2 (en) Cache management for increasing performance of high-availability multi-core systems
CN106815094B (zh) 一种用于实现主备同步模式下事务提交的方法与设备
CN113987078B (zh) 数据同步方法、设备及计算机可读存储介质
CN111061690B (zh) 一种基于rac的数据库日志文件读取方法和装置
CN113157670B (zh) 数据库的数据迁移方法及系统
US10169440B2 (en) Synchronous data replication in a content management system
CN106776153B (zh) 作业控制方法及服务器
US9003018B2 (en) System and method for data set synchronization and replication
CN115658245A (zh) 一种基于分布式数据库系统的事务提交系统、方法及装置
CN112711596A (zh) 多副本数据库系统、数据处理方法、电子设备以及计算机可读存储介质
CN116244049A (zh) 一种轻量级的分布式流程事务控制器及方法
KR102137217B1 (ko) 비대칭 파일 시스템의 데이터 복제 방법
CN114491338A (zh) 一种基于redis实现消息实时性和持久化的方法及工具
CN112948410A (zh) 数据处理方法、装置、设备及介质

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