CN114063922A - 一种主从库流复制加速方法及装置、设备及介质 - Google Patents

一种主从库流复制加速方法及装置、设备及介质 Download PDF

Info

Publication number
CN114063922A
CN114063922A CN202111360629.3A CN202111360629A CN114063922A CN 114063922 A CN114063922 A CN 114063922A CN 202111360629 A CN202111360629 A CN 202111360629A CN 114063922 A CN114063922 A CN 114063922A
Authority
CN
China
Prior art keywords
record
data file
updated
operating system
master
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
CN202111360629.3A
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.)
Shanghai Ideal Information Industry Group Co Ltd
China Telecom Group System Integration Co Ltd
Original Assignee
China Telecom Group System Integration Co Ltd
Shanghai Ideal Information Industry Group 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 China Telecom Group System Integration Co Ltd, Shanghai Ideal Information Industry Group Co Ltd filed Critical China Telecom Group System Integration Co Ltd
Priority to CN202111360629.3A priority Critical patent/CN114063922A/zh
Publication of CN114063922A publication Critical patent/CN114063922A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例涉及数据库技术领域,公开了一种主从库流复制加速方法及装置、设备及介质。该方法包括:根据日志中的已回放记录从磁盘中周期性读取数据文件并加载至操作系统缓存,从日志中获取待更新记录,根据待更新记录从操作系统缓存中查找待更新记录对应的数据文件页;采用多线程对待更新记录及其对应的数据文件页进行并行合并。本发明实施例通过从操作系统缓存中获取待更新日志的数据文件以及采用多线程并行回放日志,从而可大幅提高日志回放速度,降低日志回放延时,提高主从库流复制数据一致性。

Description

一种主从库流复制加速方法及装置、设备及介质
技术领域
本申请涉及数据库技术领域,特别涉及一种主从库流复制加速方法及装置、设备及介质。
背景技术
PostgreSQL主从数据库的流复制,为了保证数据一致性,从库接收到主库的wal日志后,回放时,目前只有一个startup进程,从wal record中取出数据块的变化,并从数据文件读出对应的完整数据页,在共享缓存(shared buffer)中完成合并,最后bg writer会将shared buffer的dirty page write(异步写)到数据文件。虽然PostgreSQL备库已经使用shared buffer减少了写操作,但是这个操作实际上会产生文件离散读,在bg writer将shared buffer写入数据文件时会产生文件离散写。在主库wal日志产生量非常巨大,执行耗时操作,或者从库的某些查询操作和apply(合并)回放操作冲突时,主从库会产生数据不一致,有多个从库时,数据不一致现象会更加明显。
目前业内对上述问题提出了很多解决方案,常用的方法及其缺点如下:
1、不开启数据文件的checksum,其缺点是容易造成数据文件的损坏。
2、删除没有必要使用的索引,其缺点是很难界定哪些索引不需要。
3、加大备库shared buffer,其缺点是有数量上限。
4、备库使用IOPS能力更强、IO延迟更低的机器(不使用RAID5),但是会受资源条件限制。
5、增加单个进程可打开的文件数,但单个进程可打开的文件数有数量上限。
6、关闭IO时间的跟踪,只能作为临时性措施。
综上,现有流复制方法仍存在效率低、容易卡死等问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
发明内容
本发明实施例的目的在于提供一种主从库流复制加速方法及装置、设备及介质,以解决现有主从库间流复制速度受限、可能存在从库卡死的问题。
为解决上述技术问题,第一方面,本发明的实施方式提供了一种主从库流复制加速方法,应用于分布式数据库的从库,所述方法包括:
根据日志中的已回放记录从磁盘中周期性读取数据文件并加载至操作系统缓存;
从所述日志中获取待更新记录,根据所述待更新记录从所述操作系统缓存中查找所述待更新记录对应的数据文件页;
采用多线程对所述待更新记录及其对应的数据文件页进行并行合并。
另外,根据日志中的已回放记录从磁盘中周期性读取数据文件并加载至操作系统缓存,包括:
根据所述日志中最近的已回放的预设条数的记录从磁盘中周期性读取对应的数据文件并加载至操作系统缓存。
另外,所述方法还包括:
采用LRU算法对所述操作系统缓存中的数据文件进行更新。
另外,所述根据日志中的已回放记录从磁盘中周期性读取数据文件并加载至操作系统缓存,包括:
对所述已回放记录进行解析数据文件的块号及偏移量;
根据所述块号及偏移量将所述数据文件加载到所述操作系统缓存。
另外,所述从所述操作系统缓存中查找所述待更新记录对应的数据文件页,包括:
从所述操作系统缓存中查找所述待更新记录对应的数据文件页,若未查找到,则从磁盘数据文件中继续查找得到所述待更新记录对应的数据文件页。
另外,采用多线程对所述待更新记录及其对应的数据文件页进行并行合并,包括:
读取每条待更新记录的记录标识;
根据所述记录标识以及线程数量将所述记录标识对应的记录添加至对应的线程的处理队列中;
每个线程分别基于共享缓存对各自处理队列中的记录进行合并。
另外,在所述每个线程分别基于共享缓存对各自处理队列中的记录进行合并之后,还包括:
将共享缓存中的脏数据页写入磁盘数据文件中。
第二方面,本发明实施例还提供了一种主从库流复制加速装置,应用于主备数据库系统中的从库,所述装置包括:
数据预加载模块,用于根据日志中的已回放记录从磁盘中周期性读取数据文件并加载至操作系统缓存;
查找模块,用于从所述日志中获取待更新记录,根据所述待更新记录从所述操作系统缓存中查找所述待更新记录对应的数据文件页,以及
合并模块,用于采用多线程对所述待更新记录及其对应的数据文件页进行并行合并。
第三方面,本发明实施例还提供了一种设备,包括:存储器和处理器,存储器存储计算机程序,处理器运行所述计算机程序以实现如前所述的主从库流复制加速方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的方法。
本发明实施例的主从库流复制加速方法及装置,一方面从操作系统缓存中查找待更新记录对应的数据文件页,相较于现有的进行数据回放时需要等待顺序执行的磁盘I/O随机读取得到待更新记录对应的数据文件页而言,大大提高了数据文件页的读取速度;另一方面,采用多线程对待更新记录及其对应的数据文件页进行并行合并,相较于现有的单线程合并而言,可提高数据回放速度,有效避免从库卡死引起的数据更新延迟。
附图说明
图1是本发明实施例一提供的主从库流复制加速方法的流程示意图;
图2是本发明实施例一提供的主从库流复制加速方法的应用流程示意图;
图3是本发明实施例二提供的主从库流复制加速装置的结构示意图;
图4是本发明实施例三提供的设备的结构示意图;
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下将参照本发明实施例中的附图,通过实施方式清楚、完整地描述本发明的技术方案,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例一提供的主从库流复制加速方法的流程图。本实施例的技术方案可应用于主备数据库系统中的从库。该方法可以由本发明实施例提供的一种主从库流复制加速装置来执行,该装置可以采用软件和/或硬件的方式实现,并配置于从库。如图1所示,该方法具体包括步骤101至步骤104。
步骤101:根据日志中的已回放记录从磁盘中周期性读取数据文件并加载至操作系统缓存。
从库的磁盘中存储有主库发送的日志文件。日志文件包含已回放记录以及待更新记录(即待回放记录),根据待更新记录对从库进行回放,使主从库数据保持一致。
如图2所示,以PostgreSQL主从数据库为例,对从库中wal日志文件的获取流程说明如下:
S1:从库启动wal日志接收(walreceiver)进程,walreceiver进程向主库发送连接请求。
S2:主库收到从库连接请求后启动wal日志发送(walsender)进程,并与walreceiver进程建立tcp连接。注意主库可以启动多个walsender进程,wal sender进程的数量由postgresql.conf中的max_wal_senders配置,wal sender进程负责把wal日志发送给从库的walreceiver进程。
S3:从库wal receiver进程发送最新的wal lsn给主库。
S4:主库进行wal lsn对比,walsender进程调用函数exec_replication_command将没有传递的wal日志发送至从库,同时调用SyncRepWaitForLSN()函数来获取锁存器,并且等待从库响应。
S5:从库walreceiver进程,负责接收walsender发送的wal日志,并会通过write()函数将wal写入文件缓存,然后调用操作系统fsync()函数将wal刷新到磁盘。
本实施例中,从库启用新进程pg_preload使用pg_xlogdump或者pg_waldump(postgres 10.x以上)周期性在从库磁盘中读取已回放的wal record,以便提前将需要用到的数据文件加载到操作系统缓存中。
具体地,根据日志中的已回放记录从磁盘中周期性读取数据文件并加载至操作系统缓存可以包括:对所述已回放记录进行解析数据文件的块号及偏移量;根据所述块号及偏移量将所述数据文件加载到所述操作系统缓存。
具体地,pg_waldump异步读取postgres wal已回放的日志记录,解析已回放的wal日志,获取堆表blkref字段数据;根据堆表blkref字段数据计算得到数据文件的页号;根据获得的PostgresSQL数据文件的页号,磁盘IO操作读取数据文件加载入操作系统缓存。换言之,wal日志自身提供了数据块的位置和偏移量。Pg_Preload进程周期性读取接收到的walrecord日志中的数据,并进行解析,找到wal record对应的数据文件的block number(块号)及其偏移量。从库可以加大操作系统缓存数量,根据block number查找到数据文件块并加载入操作系统缓存中。一旦数据文件的一部分加载入操作系统缓存中后,startup进程将从操作系统缓存中获取数据文件页,而不是随机读操作系统的文件,取消了离散的IO读取和寻址操作,大幅提升数据读取速度。
步骤101根据日志中的已回放记录从磁盘中周期性读取数据文件并加载至操作系统缓存可以包括:根据日志中最近的已回放的预设条数的记录从磁盘中周期性读取对应的数据文件并加载至操作系统缓存。数据库中数据的更新往往具有连续性,即同一个数据文件可能会被连续执行更新操作。因此将最近的已回放的记录对应的数据文件加载至操作系统缓存,有助于在对新的待更新记录进行回放时提高数据文件在操作系统缓存中的命中率。数据文件的加载周期可以结合操作系统缓存中数据文件的命中率进行调整,使得操作系统缓存保持较高的命中率。每次加载的数据文件的大小可以根据操作系统缓存的大小进行设置。其中,每次加载至操作系统缓存中的文件可以替换掉操作系统缓存中的部分数据文件,比如当前加载的数据文件可以替换掉较早时间加载至操作系统缓存中的数据文件,从而动态更新操作系统缓存中的数据文件,以期保持较高的命中率。可以理解的是,也可以采用其他策略将数据文件加载至操作系统缓存中,只要能够保证操作系统缓存具有较高的命中率即可。
在一些例子中,还可以采用LRU(Least Recently Used,最近最少使用)算法对所述操作系统缓存中的数据文件页进行更新,以优化操作系统缓存中的数据文件页的命中率。针对操作系统缓存的数量限制,采用LRU算法置换操作系统缓存,即根据数据文件调入操作系统缓存后的使用情况进行决策,将最近最久未使用的数据文件予以淘汰。然不限于此,也可以采用其他方法优化操作系统缓存命中率。
步骤102:从所述日志中获取待更新记录,根据所述待更新记录从所述操作系统缓存中查找所述待更新记录对应的数据文件页。
其中,从所述操作系统缓存中查找所述待更新记录对应的数据文件页,若未查找到,则从磁盘数据文件中继续查找得到所述待更新记录对应的数据文件页。比如,PostgresSQL从库的startup进程回放wal日志时,直接从操作系统缓存中读取数据文件页,而不是寻址加载磁盘数据库文件中的数据文件页,只有当操作系统缓存中未找到需要的数据文件页时,再从磁盘数据库文件中查找并加载数据文件页。即startup进程命中操作系统缓存存在命中率,如果没有命中还是需要以离散读方式从数据文件中加载数据文件页。
步骤103:采用多线程对所述待更新记录及其对应的数据文件页进行并行合并。
其中,采用多线程对所述待更新记录及其对应的数据文件页进行并行合并,包括:读取每条待更新记录的记录标识;根据所述记录标识以及线程数量将所述记录标识对应的记录添加至对应的线程的处理队列中;每个线程分别基于共享缓存对各自处理队列中的记录进行合并。具体地,从库可以启动多个线程处理wal日志,线程数可以在配置进程中指定。修改数据库内核startup进程,仍然采用单进程读取wal日志,同时采用多线程并行处理读取的wal record。记录标识可以采用每个表的唯一的relfilenode,单startup进程读取wal日志后根据wal record中的relfilenode和线程数量计算后决定wal record放入哪个线程的内存队列中,每个线程从自己的内存队列中读取wal record执行数据回放。多个线程并行处理wal record时共享操作系统缓存中的数据文件页,处理逻辑和开源的postgresSQL方式相同,即合并wal日志和数据文件页放入共享缓存(shared buffer)。即使某一个线程被阻碍,也不影响其它线程的数据恢复,被阻碍的线程在阻碍因素消除后,如大的冲突查询结束,会继续完成恢复。
在每个线程分别基于共享缓存对各自处理队列中的记录进行合并之后,还包括:将共享缓存中的脏数据页(dirty page)写入磁盘数据文件中。具体地,可由bgwriter进程将shared buffer的脏数据页写入数据文件。
开源PostgresSQL数据库根据wal日志进行回放,如果当前data page(数据文件页)不是full page,则需要从这笔wal record对应的data file(数据文件)中获取datapage,与wal record合并,并覆盖对应的数据文件页,实现数据恢复操作。当主库wal日志产生量非常巨大时,现有从库wal日志回放是单进程单线程,且数据文件采用离散读写,导致从库与主库的数据延时发生。
采用本实施例的流复制加速方法之后,从库新进程pg_preload使用pg_xlogdump或者pg_waldump周期性读取最近的已回放wal record,提前将需要用到的数据文件加载到操作系统缓存中。当从库startup进程回放wal时,从操作系统缓存读取需要的数据文件页,而不是直接从磁盘中寻找数据文件加载数据文件页,从而缩短回放时因为读取数据文件页时带来的IO等待,加快从库数据恢复速度。同时,从库startup单进程单线程改为单进程多线程,单一进程按顺序读取wal,多线程并行处理wal日志和数据文件页的合并,进一步提高数据回放速度。
本发明实施例的方法通过将数据文件页预先放至操作系统缓存区,在回放时直接从操作系统缓存区中获取数据文件页实现数据回放,从而在日志回放过程中有效规避了现有技术中非常耗时地从磁盘中数据文件中离散读取数据文件页的操作;在wal日志回放处理步骤中采用单进程多线程并行处理,比原有的单进程单线程进一步提高从库日志回放速度,加快主从数据库流复制速度,减少主从数据库查询数据不一致情况发生。
图3是本发明实施例二提供的一种主从库流复制加速装置的结构框图。本发明实施例还提供一种主从库流复制加速装置300,配置于从库,用于执行上述实施例一所提供的主从库流复制加速方法。该装置300包括:数据预加载模块301、查找模块302以及合并模块303。
数据预加载模块301用于根据日志中的已回放记录从磁盘中周期性读取数据文件并加载至操作系统缓存。
查找模块302用于从所述日志中获取待更新记录,根据所述待更新记录从所述操作系统缓存中查找所述待更新记录对应的数据文件页。
合并模块303用于采用多线程对所述待更新记录及其对应的数据文件页进行并行合并。
可选地,数据预加载模块301具体用于根据所述日志中最近的已回放的预设条数的记录从磁盘中周期性读取对应的数据文件并加载至操作系统缓存。
该装置300还可以包括:缓存更新模块,用于采用LRU算法对所述操作系统缓存中的数据文件进行更新。
可选地,数据预加载模块301可以包括:
解析子模块,用于对所述已回放记录进行解析数据文件的块号及偏移量;
记载子模块,用于根据所述块号及偏移量将所述数据文件加载到所述操作系统缓存。
可选地,查找模块303用于从所述操作系统缓存中查找所述待更新记录对应的数据文件页,若未查找到,则从磁盘数据文件中继续查找得到所述待更新记录对应的数据文件页。
可选地,合并模块303可以包括:
记录标识读取子模块,用于读取每条待更新记录的记录标识;
入队子模块,用于根据所述记录标识以及线程数量将所述记录标识对应的记录添加至对应的线程的处理队列中;
并行合并子模块,用于每个线程分别基于共享缓存对各自处理队列中的记录进行合并。
该装置300还可以包括写磁盘模块,用于将共享缓存中的脏数据页写入磁盘数据文件中。
本发明实施例的流复制加速装置通过将数据文件预先放至操作系统缓存区,在回放时直接从操作系统缓存区中获取数据文件实现数据回放,从而在日志回放过程中有效规避了现有技术中非常耗时地从磁盘中数据文件中离散读取数据文件页的操作;在wal日志回放处理步骤中采用单进程多线程并行处理,比原有的单进程单线程进一步提高从库日志回放速度,加快主从数据库流复制速度,减少主从数据库查询数据不一致情况发生。
本发明实施例三还提供一种设备,可作为主从数据系统中的从库。如图4所示,该设备包括:存储器502、处理器501;
其中,所述存储器502存储有可被所述至少一个处理器501执行的指令,所述指令被所述至少一个处理器501执行以实现前述实施方式所述的主从库流复制加速方法。
该设备包括一个或多个处理器501以及存储器502,图4中以一个处理器501为例。处理器501、存储器502可以通过总线或者其他方式连接,图4中以通过总线连接为例。存储器502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器501通过运行存储在存储器502中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述主从库流复制加速方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
一个或者多个模块存储在存储器502中,当被一个或者多个处理器501执行时,执行上述任意方法实施方式中的主从库流复制加速方法。
上述设备可执行本发明实施方式所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施方式中详尽描述的技术细节,可参见本发明实施方式所提供的方法。
本发明实施例的流复制加速设备通过将数据文件预先放至操作系统缓存区,在回放时直接从操作系统缓存区中获取数据文件页实现数据回放,从而在日志回放过程中有效规避了现有技术中非常耗时地从磁盘中数据文件中离散读取数据文件页的操作;在wal日志回放处理步骤中采用单进程多线程并行处理,比原有的单进程单线程进一步提高从库日志回放速度,加快主从数据库流复制速度,减少主从数据库查询数据不一致情况发生。
本发明实施例四还涉及一种非易失性存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

Claims (10)

1.一种主从库流复制加速方法,其特征在于,应用于主备数据库系统中的从库,所述方法包括:
根据日志中的已回放记录从磁盘中周期性读取数据文件并加载至操作系统缓存;
从所述日志中获取待更新记录,根据所述待更新记录从所述操作系统缓存中查找所述待更新记录对应的数据文件页;
采用多线程对所述待更新记录及其对应的数据文件页进行并行合并。
2.根据权利要求1所述的主从库流复制加速方法,其特征在于,根据日志中的已回放记录从磁盘中周期性读取数据文件并加载至操作系统缓存,包括:
根据所述日志中最近的已回放的预设条数的记录从磁盘中周期性读取对应的数据文件并加载至操作系统缓存。
3.根据权利要求2所述的主从库流复制加速方法,其特征在于,所述方法还包括:
采用LRU算法对所述操作系统缓存中的数据文件进行更新。
4.根据权利要求1所述的主从库流复制加速方法,其特征在于,所述根据日志中的已回放记录从磁盘中周期性读取数据文件并加载至操作系统缓存,包括:
对所述已回放记录进行解析数据文件的块号及偏移量;
根据所述块号及偏移量将所述数据文件加载到所述操作系统缓存。
5.根据权利要求2所述的主从库流复制加速方法,其特征在于,所述从所述操作系统缓存中查找所述待更新记录对应的数据文件页,包括:
从所述操作系统缓存中查找所述待更新记录对应的数据文件页,若未查找到,则从磁盘数据文件中继续查找得到所述待更新记录对应的数据文件页。
6.根据权利要求1所述的主从库流复制加速方法,其特征在于,采用多线程对所述待更新记录及其对应的数据文件页进行并行合并,包括:
读取每条待更新记录的记录标识;
根据所述记录标识以及线程数量将所述记录标识对应的记录添加至对应的线程的处理队列中;
每个线程分别基于共享缓存对各自处理队列中的记录进行合并。
7.根据权利要求6所述的主从库流复制加速方法,其特征在于,在所述每个线程分别基于共享缓存对各自处理队列中的记录进行合并之后,还包括:
将共享缓存中的脏数据页写入磁盘数据文件中。
8.一种主从库流复制加速装置,其特征在于,应用于主备数据库系统中的从库,所述装置包括:
数据预加载模块,用于根据日志中的已回放记录从磁盘中周期性读取数据文件并加载至操作系统缓存;
查找模块,用于从所述日志中获取待更新记录,根据所述待更新记录从所述操作系统缓存中查找所述待更新记录对应的数据文件页,以及
合并模块,用于采用多线程对所述待更新记录及其对应的数据文件页进行并行合并。
9.一种设备,其特征在于,包括:存储器和处理器,存储器存储计算机程序,处理器运行所述计算机程序以实现如权利要求1至7中任一项所述的主从库流复制加速方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行如权利要求1至7中任一项所述的主从库流复制加速方法。
CN202111360629.3A 2021-11-17 2021-11-17 一种主从库流复制加速方法及装置、设备及介质 Pending CN114063922A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111360629.3A CN114063922A (zh) 2021-11-17 2021-11-17 一种主从库流复制加速方法及装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111360629.3A CN114063922A (zh) 2021-11-17 2021-11-17 一种主从库流复制加速方法及装置、设备及介质

Publications (1)

Publication Number Publication Date
CN114063922A true CN114063922A (zh) 2022-02-18

Family

ID=80273335

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111360629.3A Pending CN114063922A (zh) 2021-11-17 2021-11-17 一种主从库流复制加速方法及装置、设备及介质

Country Status (1)

Country Link
CN (1) CN114063922A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302699A (zh) * 2023-03-20 2023-06-23 北京优炫软件股份有限公司 一种数据库并行回放的控制方法以及控制系统
CN116501736A (zh) * 2023-04-12 2023-07-28 北京优炫软件股份有限公司 一种数据库延迟回放的控制方法以及控制系统
CN117033464A (zh) * 2023-08-11 2023-11-10 上海鼎茂信息技术有限公司 一种基于聚类的日志并行解析算法及应用

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302699A (zh) * 2023-03-20 2023-06-23 北京优炫软件股份有限公司 一种数据库并行回放的控制方法以及控制系统
CN116302699B (zh) * 2023-03-20 2024-02-06 北京优炫软件股份有限公司 一种数据库并行回放的控制方法以及控制系统
CN116501736A (zh) * 2023-04-12 2023-07-28 北京优炫软件股份有限公司 一种数据库延迟回放的控制方法以及控制系统
CN117033464A (zh) * 2023-08-11 2023-11-10 上海鼎茂信息技术有限公司 一种基于聚类的日志并行解析算法及应用
CN117033464B (zh) * 2023-08-11 2024-04-02 上海鼎茂信息技术有限公司 一种基于聚类的日志并行解析算法及应用

Similar Documents

Publication Publication Date Title
CN114063922A (zh) 一种主从库流复制加速方法及装置、设备及介质
US8397017B2 (en) Controller and data storage device
US20060236051A1 (en) High-speed snapshot method
US9569114B2 (en) Deduplication using a master and a slave
CN113377695B (zh) 读写分离的固态存储设备的数据分布方法
CN107665219B (zh) 一种日志管理方法及装置
CN110515705B (zh) 可扩展的持久性事务内存及其工作方法
US8433871B2 (en) Data copy management for faster reads
US20130304972A1 (en) Control device, storage device, and storage control method
CN113835614A (zh) 一种基于分布式文件存储客户端的ssd智能缓存方法和系统
US20160070648A1 (en) Data storage system and operation method thereof
CN113253932B (zh) 一种分布式存储系统的读写控制方法和系统
US8732404B2 (en) Method and apparatus for managing buffer cache to perform page replacement by using reference time information regarding time at which page is referred to
JP4189342B2 (ja) ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法
US10969970B2 (en) Storage optimization of database in volatile and non-volatile storing unit
US9146858B2 (en) Control device, storage device, and storage control method
CN116185287A (zh) 一种降低读延时的方法、装置及固态硬盘
CN115640238A (zh) 针对持久化内存的可靠内存映射i/o实现方法及系统
KR20120035070A (ko) 에스에스디를 확장 버퍼로 이용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장 버퍼로 사용한 장치
CN115079959B (zh) 一种文件管理的方法、装置及电子设备
CN110874273A (zh) 一种数据处理方法及装置
CN116820333B (zh) 一种基于多线程的ssdraid-5持续写入方法
US20220245123A1 (en) Fast Skip List Purge
US20160350231A1 (en) Magnetic disk device and method for executing synchronize command
CN109284231B (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