CN111767339A - 一种数据同步方法、装置、电子设备及存储介质 - Google Patents
一种数据同步方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111767339A CN111767339A CN202010394654.2A CN202010394654A CN111767339A CN 111767339 A CN111767339 A CN 111767339A CN 202010394654 A CN202010394654 A CN 202010394654A CN 111767339 A CN111767339 A CN 111767339A
- Authority
- CN
- China
- Prior art keywords
- data
- pipeline
- watermark data
- buffer area
- thread
- 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
- 238000000034 method Methods 0.000 title claims abstract description 94
- 230000001360 synchronised effect Effects 0.000 claims abstract description 64
- 238000013479 data entry Methods 0.000 claims abstract description 51
- 230000008569 process Effects 0.000 claims abstract description 50
- 238000004891 communication Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 3
- 238000007726 management method Methods 0.000 description 8
- 230000003139 buffering effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000013024 troubleshooting Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
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/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
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/16—Program or content traceability, e.g. by watermarking
-
- 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)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
- Image Processing (AREA)
Abstract
本发明涉及一种数据同步方法、装置、电子设备及存储介质,所述数据同步方法包括:在将源数据库中的数据条目成功同步至目标数据库时,根据被成功同步的数据条目的同步过程确定数据条目的水印数据,水印数据用于进行同步历史过程追溯,利用数据同步线程将被同步成功的数据条目的水印数据写入内存缓冲区,利用缓冲区消费线程消费内存缓冲区中的水印数据,将内存缓冲区中的水印数据写入管道文件,利用管道消费线程消费管道文件中的水印数据,将管道文件中的水印数据写入时序数据库中。本发明实施例能够便于根据水印数据进行同步历史过程追溯;而且,首先将水印数据写入内存缓冲区中,能够尽量缩短写入水印数据的时间,数据库同步速度几乎不受影响。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据同步方法、装置、电子设备及存储介质。
背景技术
数据库同步技术是应用***处理核心,不但应用***需要向数据库进行增/删改/查操作,同样数据仓库也需要从众多的数据库中获取不同交易数据来完善自身的数据集。但是越来越多实时数据查询应用使得数据库不能直接为客户带来直接查询结果,因为数据库负荷越来越重,更多的***无法享受直接查询的结果,这样数据库同步技术就应运而生了。
目前,在使用数据库同步工具进行数据库同步时,数据同步工具在同步数据过程中会遇到源数据库和目标数据库中数据不一致的问题,这些不一致的数据量较少,难以追查造成不一致的原因,难以进一步对数据库同步工具进行修复优化。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种数据同步方法、装置、电子设备及存储介质。
第一方面,本申请提供了一种数据同步方法,包括:
在将源数据库中的数据条目成功同步至目标数据库时,根据被成功同步的数据条目的同步过程确定所述数据条目的水印数据,所述水印数据用于进行同步历史过程追溯;
利用所述数据同步线程将被同步成功的数据条目的水印数据写入内存缓冲区;
利用缓冲区消费线程消费所述内存缓冲区中的水印数据,将所述内存缓冲区中的水印数据写入管道文件;
利用管道消费线程消费所述管道文件中的水印数据,将管道文件中的水印数据写入时序数据库中。
可选的,所述利用缓冲区消费线程消费所述内存缓冲区中的水印数据,包括:
按照所述管道文件中存储水印数据的数量,利用缓冲区消费线程消费所述内存缓冲区中相应数量的水印数据;
所述利用管道消费线程消费所述管道文件中的水印数据,包括:
按照所述管道文件中存储水印数据的数量,利用管道消费线程消费所述管道文件中相应数量的水印数据。
可选的,所述方法还包括:
在每次所述缓冲区消费线程消费所述内存缓冲区中的水印数据完毕时,利用缓冲区消费线程管理模块获取所述内存缓冲区的当前可用容量;
若所述当前可用容量小于预设开启新线程阈值,则复刻所述缓冲区消费线程,并为复刻出的缓冲区消费线程创建对应的管道文件;
利用所述缓冲区消费线程及所述复刻出的缓冲区消费线程分别消费所述内存缓冲区中的水印数据,并将所述内存缓冲区中的水印数据分别写入对应的管道文件中。
可选的,所述方法还包括:
若所述当前可用容量大于预设关闭线程阈值,则在复刻出的缓冲区消费线程写入对应的管道文件中的水印数据被消费后,销毁所述复刻出的缓冲区消费线程。
可选的,所述方法还包括:
在复刻所述缓冲区消费线程的数量达到最大阈值时,若利用所述数据同步线程将被同步成功的数据条目的水印数据写入内存缓冲区仍写入失败,放弃写入所述水印数据,并发出报警。
可选的,所述方法还包括:
在每次所述管道消费线程消费所述管道文件中的水印数据完毕时,利用所述管道消费线程管理模块获取当前存在的管道文件的当前数量;
若所述当前数量大于预设开启新管道消费线程阈值,则复刻所述管道消费线程,并确定复刻出的管道消费线程对应消费的管道文件范围;
利用所述管道消费线程及所述复刻出的管道消费线程消费对应管道文件范围内的管道文件中的水印数据,并将管道文件范围内的管道文件中的水印数据分别写入时序数据库。
可选的,所述方法还包括:
若所述当前数量小于预设关闭管道消费线程阈值,则在复刻出的管道消费线程完成对应消费的管道文件范围内的管道文件中的水印数据后,销毁所述复刻出的管道消费线程。
第二方面,本申请提供了一种数据库同步装置,包括:
同步模块,用于在将源数据库中的数据条目成功同步至目标数据库时,根据被成功同步的数据条目的同步过程确定所述数据条目的水印数据,所述水印数据用于进行同步历史过程追溯;
写入模块,用于利用所述数据同步线程将被同步成功的数据条目的水印数据写入内存缓冲区;
缓冲区消费模块,用于利用缓冲区消费线程消费所述内存缓冲区中的水印数据,将所述内存缓冲区中的水印数据写入管道文件;
管道消费模块,用于利用管道消费线程消费所述管道文件中的水印数据,将管道文件中的水印数据写入时序数据库中。
可选的,所述缓冲区消费模块13包括:
第一消费单元,用于按照所述管道文件中存储水印数据的数量,利用缓冲区消费线程消费所述内存缓冲区中相应数量的水印数据;
所述管道消费模块14包括:
第二消费单元,用于按照所述管道文件中存储水印数据的数量,利用管道消费线程消费所述管道文件中相应数量的水印数据。
可选的,所述装置还包括:
第一获取模块,用于在每次所述缓冲区消费线程消费所述内存缓冲区中的水印数据完毕时,利用缓冲区消费线程管理模块获取所述内存缓冲区的当前可用容量;
第一复刻模块,用于若所述当前可用容量小于预设开启新线程阈值,则复刻所述缓冲区消费线程,并为复刻出的缓冲区消费线程创建对应的管道文件;
第一消费写入模块,用于利用所述缓冲区消费线程及所述复刻出的缓冲区消费线程分别消费所述内存缓冲区中的水印数据,并将所述内存缓冲区中的水印数据分别写入对应的管道文件中。
可选的,所述装置还包括:
第二复刻模块,用于若所述当前可用容量大于预设关闭线程阈值,则在复刻出的缓冲区消费线程写入对应的管道文件中的水印数据被消费后,销毁所述复刻出的缓冲区消费线程。
在本发明的又一实施例中,所述装置还包括:
报警模块,用于在复刻所述缓冲区消费线程的数量达到最大阈值时,若利用所述数据同步线程将被同步成功的数据条目的水印数据写入内存缓冲区仍写入失败,放弃写入所述水印数据,并发出报警。
在本发明的又一实施例中,所述装置还包括:
第二获取模块,用于在每次所述管道消费线程消费所述管道文件中的水印数据完毕时,利用所述管道消费线程管理模块获取当前存在的管道文件的当前数量;
第三复刻模块,用于若所述当前数量大于预设开启新管道消费线程阈值,则复刻所述管道消费线程,并确定复刻出的管道消费线程对应消费的管道文件范围;
第二消费写入模块,哟关于利用所述管道消费线程及所述复刻出的管道消费线程消费对应管道文件范围内的管道文件中的水印数据,并将管道文件范围内的管道文件中的水印数据分别写入时序数据库。
在本发明的又一实施例中,所述装置还包括:
复刻销毁模块,用于若所述当前数量小于预设关闭管道消费线程阈值,则在复刻出的管道消费线程完成对应消费的管道文件范围内的管道文件中的水印数据后,销毁所述复刻出的管道消费线程。
第三方面,本申请提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的数据同步方法。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有数据同步方法的程序,所述数据同步方法的程序被处理器执行时实现第一方面任一所述的数据同步方法的步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本发明实施例通过在将源数据库中的数据条目成功同步至目标数据库时,根据被成功同步的数据条目的同步过程确定所述数据条目的水印数据,所述水印数据用于进行同步历史过程追溯,利用所述数据同步线程将被同步成功的数据条目的水印数据写入内存缓冲区,利用缓冲区消费线程消费所述内存缓冲区中的水印数据,将所述内存缓冲区中的水印数据写入管道文件,利用管道消费线程消费所述管道文件中的水印数据,将管道文件中的水印数据写入时序数据库中。
本发明实施例能够根据被成功同步的数据条目的同步过程确定该数据条目的水印数据,并且通过将水印数据依次写入内存缓冲区中、管道文件及时序数据库中,一方面实现对水印数据的存储,进而便于根据水印数据进行同步历史过程追溯,另一方面通过内存缓冲区和管道文件的两级缓冲,可以尽量避免同步过程中水印数据丢失,保证水印数据的安全性;而且,首先将水印数据写入内存缓冲区中,能够尽量缩短写入水印数据的时间,数据库同步速度几乎不受影响,几乎在数据同步速度无损的前提下解决了水印数据记录问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据同步方法的一种流程图;
图2为本申请实施例提供的一种数据同步方法的另一种流程图;
图3为本申请实施例提供的一种数据同步方法的另一种流程图;
图4为本申请实施例提供的一种数据同步装置的结构图;
图5为本申请实施例提供的一种电子设备的结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
由于目前在使用数据库同步工具进行数据库同步时,数据同步工具在同步数据过程中会遇到源数据库和目标数据库中数据不一致的问题,这些不一致的数据量较少,难以追查造成不一致的原因,难以进一步对数据库同步工具进行修复优化。为此,本发明实施例提供了一种数据同步方法、装置、电子设备及存储介质,如图1所示,所述数据同步方法可以包括以下步骤:
步骤S101,在将源数据库中的数据条目成功同步至目标数据库时,根据被成功同步的数据条目的同步过程确定所述数据条目的水印数据,所述水印数据用于进行同步历史过程追溯;
在该步骤中,可以利用数据同步线程将源数据库中的数据条目同步至目标数据库,每同步成功一个数据条目,可以根据被成功同步的数据条目的同步过程确定该同步成功的数据条目的水印数据。
在根据被成功同步的数据条目的同步过程确定该同步成功的数据条目的水印数据时,可以获取由于同步过程发生变更的数据,如:同步时间数据、数据条目在目标数据库中的存储位置数据及同步过程中产生的执行日志、报错日志和总体日志的日志数据等等,将这些发生变更的数据确定为水印数据,在本发明实施例中,示例性的水印数据包括:数据列和列值、ETL信息和同步发生时间戳等。
步骤S102,利用所述数据同步线程将被同步成功的数据条目的水印数据写入内存缓冲区;
在本发明实施例中,内存缓冲区是预先在内存中开辟出来的用于存储水印数据的存储区域,内存缓冲区可以循环使用,也就是说,水印数据可以被数据同步线程写入内存缓冲区,也可以由缓冲区消费线程消费被写入的水印数据,在水印数据被消费后,用于存储该水印数据的存储区域还可以再被数据同步线程覆盖写入其它的水印数据,在实际应用中,可以在水印数据被缓冲区消费线程消费后,在用于存储该水印数据的存储区域的首地址添加水印消费标识,用以标记该块存储区域中的水印数据已被消费。
在该步骤中,可以利用数据同步线程将该同步成功的数据条目的水印数据写入内存缓冲区,在写入过程中,可以在内存缓冲区中查找水印消费标识,在查找到水印消费标识后,将该水印数据覆盖原来的水印数据写入。
步骤S103,利用缓冲区消费线程消费所述内存缓冲区中的水印数据,将所述内存缓冲区中的水印数据写入管道文件;
在本发明实施例中,缓冲区消费线程用于消费内存缓冲区中的水印数据,每个缓冲区消费线程均对应设置由预先创建的管道文件。
在该步骤中,可以利用缓冲区消费线程消费所述内存缓冲区中的水印数据,将内存缓冲区中的水印数据写入预先为该缓冲区消费线程创建的管道文件中。
由于实际应用中数据写入内存的速度明显快于写入其它存储介质的速度,所以,缓冲区消费线程可以一同消费多个水印数据,将多个水印数据一同写入管道文件中,示例性的,可以按照管道文件的长度,也即,管道文件中存储水印数据的数量来确定每次消费的水印数据的数量。
所以,在该步骤中,可以按照所述管道文件中存储水印数据的数量,利用缓冲区消费线程消费所述内存缓冲区中相应数量的水印数据,再将内存缓冲区中相应数量的水印数据写入管道文件。
步骤S104,利用管道消费线程消费所述管道文件中的水印数据,将管道文件中的水印数据写入时序数据库中。
管道消费线程用于消费管道文件中的水印数据,在该步骤中,可以利用管道消费线程消费其对应的管道文件中的水印数据,将其对应的管道文件中的水印数据写入时序数据库中。
由于缓冲区消费线程可以一同消费多个水印数据,将多个水印数据一同写入管道文件中,相应的,为了适配缓冲区消费线程的消费速度,在该步骤中,管道消费线程可以按照所述管道文件中存储水印数据的数量,消费所述管道文件中相应数量的水印数据,也就是说,可以利用管道消费线程一同消费管道文件中多个水印数据,将管道文件中的多个水印数据写入时序数据库中。
本发明实施例通过在将源数据库中的数据条目成功同步至目标数据库时,根据被成功同步的数据条目的同步过程确定所述数据条目的水印数据,所述水印数据用于进行同步历史过程追溯,利用所述数据同步线程将被同步成功的数据条目的水印数据写入内存缓冲区,利用缓冲区消费线程消费所述内存缓冲区中的水印数据,将所述内存缓冲区中的水印数据写入管道文件,利用管道消费线程消费所述管道文件中的水印数据,将管道文件中的水印数据写入时序数据库中。
本发明实施例能够根据被成功同步的数据条目的同步过程确定该数据条目的水印数据,并且通过将水印数据依次写入内存缓冲区中、管道文件及时序数据库中,一方面实现对水印数据的存储,进而便于根据水印数据进行同步历史过程追溯,另一方面通过内存缓冲区和管道文件的两级缓冲,可以尽量避免同步过程中水印数据丢失,保证水印数据的安全性;而且,首先将水印数据写入内存缓冲区中,能够尽量缩短写入水印数据的时间,数据库同步速度几乎不受影响,几乎在数据同步速度无损的前提下解决了水印数据记录问题。
由于内存缓冲区内的存储空间是有限的,在同步的数据量非常大时候,可能会出现由于内存缓冲区已满导致的水印数据无法写入内存缓冲区的情况,或者在同步的数据量较小时,内存缓冲区中的水印数据将不足以供过多的缓冲区消费线程消费,为此,在本发明的又一实施例中,如图2所示,所述方法还包括:
步骤S201,在每次所述缓冲区消费线程消费所述内存缓冲区中的水印数据完毕时,利用缓冲区消费线程管理模块获取所述内存缓冲区的当前可用容量;
在本发明实施例中,内存缓冲区的当前可用容量可以指当前内存缓冲区中可以存储水印数据空间大小等等。
步骤S202,若所述当前可用容量小于预设开启新线程阈值,则复刻所述缓冲区消费线程,并为复刻出的缓冲区消费线程创建对应的管道文件;
若当前可用容量小于预设开启新线程阈值,则内存缓冲区中用于写入水印数据的空间可能不足,需要复刻(fork)更多的缓冲区消费线程以缓解原有的缓冲区消费线程的压力,所以在该步骤中,可以复刻新的缓冲区消费线程,并为每个复刻出的缓冲区消费线程创建对应的管道文件。
步骤S203,利用所述缓冲区消费线程及所述复刻出的缓冲区消费线程分别消费所述内存缓冲区中的水印数据,并将所述内存缓冲区中的水印数据分别写入对应的管道文件中。
在该步骤中,可以将内存缓冲区域划分成不同的区间,每个缓冲区消费线程对应不同的区间,利用原有的缓冲区消费线程及复刻出的缓冲区消费线程分别消费内存缓冲区中不同区间内的水印数据,将内存缓冲区中的水印数据分别写入对应的管道文件中。
步骤S204,若所述当前可用容量大于预设关闭线程阈值,则在复刻出的缓冲区消费线程写入对应的管道文件中的水印数据被消费后,销毁所述复刻出的缓冲区消费线程。
在本发明实施例中,预设开启新线程阈值小于预设关闭线程阈值。
若当前可用容量大于预设关闭线程阈值,则内存缓冲区中供缓冲区消费线程的水印数据可能不足,所以,在该步骤中,可以等待复刻出的缓冲区消费线程写入对应的管道文件中的水印数据被消费后,销毁所述复刻出的缓冲区消费线程。
本发明实施例能够根据内存缓冲区的当前可用容量动态的复刻或者销毁缓冲区消费线程,相应的,管道文件也可以动态的增加或者删除,可以有效的适应数据同步QPS变化带来的水印数据保存压力,便于在数据同步装置高QPS的场景下完整记录整个同步历史过程的方法,用以历史过程追溯,问题排查等场景,增强数据同步一致性的保障能力。
由于内存缓冲区内的存储空间是有限的,在同步的数据量非常大时候,可能会出现由于内存缓冲区已满导致的水印数据无法写入内存缓冲区的情况,所以,在本发明的又一实施例中,所述方法还包括:
在复刻所述缓冲区消费线程的数量达到最大阈值时,若利用所述数据同步线程将被同步成功的数据条目的水印数据写入内存缓冲区仍写入失败,放弃写入所述水印数据,并发出报警。
本发明实施例能够在必要时可放弃水印数据完整性,保证数据同步速度,同时发送报警以便运维人员及时处理。
基于前述实施例,由于缓冲区消费线程及其对应的管道文件均可以动态的创建和删除,为了适配缓冲区消费线程及管道文件的动态变化,相应的,管道消费线程也需要随着动态变化,为此,在本发明的又一实施例中,如图3所示,所述方法还包括:
步骤S301,在每次所述管道消费线程消费所述管道文件中的水印数据完毕时,利用所述管道消费线程管理模块获取当前存在的管道文件的当前数量;
步骤S302,若所述当前数量大于预设开启新管道消费线程阈值,则复刻所述管道消费线程,并确定复刻出的管道消费线程对应消费的管道文件范围;
步骤S303,利用所述管道消费线程及所述复刻出的管道消费线程消费对应管道文件范围内的管道文件中的水印数据,并将管道文件范围内的管道文件中的水印数据分别写入时序数据库。
步骤S304,若所述当前数量小于预设关闭管道消费线程阈值,则在复刻出的管道消费线程完成对应消费的管道文件范围内的管道文件中的水印数据后,销毁所述复刻出的管道消费线程。
在本发明实施例中,预设开启新管道消费线程阈值大于预设关闭管道消费线程阈值。
本发明实施例能够根据管道文件的当前数量动态的复刻或者销毁管道消费线程,可以有效的适应数据同步QPS变化带来的水印数据保存压力,便于在数据同步装置高QPS的场景下完整记录整个同步历史过程的方法,用以历史过程追溯,问题排查等场景,增强数据同步一致性的保障能力。
在本发明的又一实施例中,还提供一种数据库同步装置,如图4所示,所述装置包括:
同步模块11,用于在将源数据库中的数据条目成功同步至目标数据库时,根据被成功同步的数据条目的同步过程确定所述数据条目的水印数据,所述水印数据用于进行同步历史过程追溯;
写入模块12,用于利用所述数据同步线程将被同步成功的数据条目的水印数据写入内存缓冲区;
缓冲区消费模块13,用于利用缓冲区消费线程消费所述内存缓冲区中的水印数据,将所述内存缓冲区中的水印数据写入管道文件;
管道消费模块14,用于利用管道消费线程消费所述管道文件中的水印数据,将管道文件中的水印数据写入时序数据库中。
本发明实施例通过在将源数据库中的数据条目成功同步至目标数据库时,根据被成功同步的数据条目的同步过程确定所述数据条目的水印数据,所述水印数据用于进行同步历史过程追溯,利用所述数据同步线程将被同步成功的数据条目的水印数据写入内存缓冲区,利用缓冲区消费线程消费所述内存缓冲区中的水印数据,将所述内存缓冲区中的水印数据写入管道文件,利用管道消费线程消费所述管道文件中的水印数据,将管道文件中的水印数据写入时序数据库中。
本发明实施例能够根据被成功同步的数据条目的同步过程确定该数据条目的水印数据,并且通过将水印数据依次写入内存缓冲区中、管道文件及时序数据库中,一方面实现对水印数据的存储,进而便于根据水印数据进行同步历史过程追溯,另一方面通过内存缓冲区和管道文件的两级缓冲,可以尽量避免同步过程中水印数据丢失,保证水印数据的安全性;而且,首先将水印数据写入内存缓冲区中,能够尽量缩短写入水印数据的时间,数据库同步速度几乎不受影响,几乎在数据同步速度无损的前提下解决了水印数据记录问题。
在本发明的又一实施例中,所述缓冲区消费模块13包括:
第一消费单元,用于按照所述管道文件中存储水印数据的数量,利用缓冲区消费线程消费所述内存缓冲区中相应数量的水印数据;
所述管道消费模块14包括:
第二消费单元,用于按照所述管道文件中存储水印数据的数量,利用管道消费线程消费所述管道文件中相应数量的水印数据。
在本发明的又一实施例中,所述装置还包括:
第一获取模块,用于在每次所述缓冲区消费线程消费所述内存缓冲区中的水印数据完毕时,利用缓冲区消费线程管理模块获取所述内存缓冲区的当前可用容量;
第一复刻模块,用于若所述当前可用容量小于预设开启新线程阈值,则复刻所述缓冲区消费线程,并为复刻出的缓冲区消费线程创建对应的管道文件;
第一消费写入模块,用于利用所述缓冲区消费线程及所述复刻出的缓冲区消费线程分别消费所述内存缓冲区中的水印数据,并将所述内存缓冲区中的水印数据分别写入对应的管道文件中。
在本发明的又一实施例中,所述装置还包括:
第二复刻模块,用于若所述当前可用容量大于预设关闭线程阈值,则在复刻出的缓冲区消费线程写入对应的管道文件中的水印数据被消费后,销毁所述复刻出的缓冲区消费线程。
在本发明的又一实施例中,所述装置还包括:
报警模块,用于在复刻所述缓冲区消费线程的数量达到最大阈值时,若利用所述数据同步线程将被同步成功的数据条目的水印数据写入内存缓冲区仍写入失败,放弃写入所述水印数据,并发出报警。
在本发明的又一实施例中,所述装置还包括:
第二获取模块,用于在每次所述管道消费线程消费所述管道文件中的水印数据完毕时,利用所述管道消费线程管理模块获取当前存在的管道文件的当前数量;
第三复刻模块,用于若所述当前数量大于预设开启新管道消费线程阈值,则复刻所述管道消费线程,并确定复刻出的管道消费线程对应消费的管道文件范围;
第二消费写入模块,哟关于利用所述管道消费线程及所述复刻出的管道消费线程消费对应管道文件范围内的管道文件中的水印数据,并将管道文件范围内的管道文件中的水印数据分别写入时序数据库。
在本发明的又一实施例中,所述装置还包括:
复刻销毁模块,用于若所述当前数量小于预设关闭管道消费线程阈值,则在复刻出的管道消费线程完成对应消费的管道文件范围内的管道文件中的水印数据后,销毁所述复刻出的管道消费线程。
在本发明的又一实施例中,还提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现前述方法实施例所述的数据同步方法。
本发明实施例提供的电子设备,处理器通过执行存储器上所存放的程序实现了在将源数据库中的数据条目成功同步至目标数据库时,根据被成功同步的数据条目的同步过程确定所述数据条目的水印数据,所述水印数据用于进行同步历史过程追溯,利用所述数据同步线程将被同步成功的数据条目的水印数据写入内存缓冲区,利用缓冲区消费线程消费所述内存缓冲区中的水印数据,将所述内存缓冲区中的水印数据写入管道文件,利用管道消费线程消费所述管道文件中的水印数据,将管道文件中的水印数据写入时序数据库中,保证能够根据被成功同步的数据条目的同步过程确定该数据条目的水印数据,并且通过将水印数据依次写入内存缓冲区中、管道文件及时序数据库中,一方面实现对水印数据的存储,进而便于根据水印数据进行同步历史过程追溯,另一方面通过内存缓冲区和管道文件的两级缓冲,可以尽量避免同步过程中水印数据丢失,保证水印数据的安全性;而且,首先将水印数据写入内存缓冲区中,能够尽量缩短写入水印数据的时间,数据库同步速度几乎不受影响,几乎在数据同步速度无损的前提下解决了水印数据记录问题。
上述电子设备提到的通信总线1140可以是外设部件互连标准(PeripheralComponentInterconnect,简称PCI)总线或扩展工业标准结构(ExtendedIndustryStandardArchitecture,简称EISA)总线等。该通信总线1140可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1120用于上述电子设备与其他设备之间的通信。
存储器1130可以包括随机存取存储器(RandomAccessMemory,简称RAM),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器1110可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DigitalSignalProcessing,简称DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明的又一实施例中,还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据同步方法的程序,所述数据同步方法的程序被处理器执行时实现前述方法实施例所述的数据同步方法的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据同步方法,其特征在于,包括:
在将源数据库中的数据条目成功同步至目标数据库时,根据被成功同步的数据条目的同步过程确定所述数据条目的水印数据,所述水印数据用于进行同步历史过程追溯;
利用数据同步线程将被同步成功的数据条目的水印数据写入内存缓冲区;
利用缓冲区消费线程消费所述内存缓冲区中的水印数据,将所述内存缓冲区中的水印数据写入管道文件;
利用管道消费线程消费所述管道文件中的水印数据,将管道文件中的水印数据写入时序数据库中。
2.根据权利要求1所述的数据同步方法,其特征在于,所述利用缓冲区消费线程消费所述内存缓冲区中的水印数据,包括:
按照所述管道文件中存储水印数据的数量,利用缓冲区消费线程消费所述内存缓冲区中相应数量的水印数据;
所述利用管道消费线程消费所述管道文件中的水印数据,包括:
按照所述管道文件中存储水印数据的数量,利用管道消费线程消费所述管道文件中相应数量的水印数据。
3.根据权利要求1所述的数据同步方法,其特征在于,所述方法还包括:
在每次所述缓冲区消费线程消费所述内存缓冲区中的水印数据完毕时,利用缓冲区消费线程管理模块获取所述内存缓冲区的当前可用容量;
若所述当前可用容量小于预设开启新线程阈值,则复刻所述缓冲区消费线程,并为复刻出的缓冲区消费线程创建对应的管道文件;
利用所述缓冲区消费线程及所述复刻出的缓冲区消费线程分别消费所述内存缓冲区中的水印数据,并将所述内存缓冲区中的水印数据分别写入对应的管道文件中。
4.根据权利要求3所述的数据同步方法,其特征在于,所述方法还包括:
若所述当前可用容量大于预设关闭线程阈值,则在复刻出的缓冲区消费线程写入对应的管道文件中的水印数据被消费后,销毁所述复刻出的缓冲区消费线程。
5.根据权利要求1所述的数据同步方法,其特征在于,所述方法还包括:
在复刻所述缓冲区消费线程的数量达到最大阈值时,若利用所述数据同步线程将被同步成功的数据条目的水印数据写入内存缓冲区仍写入失败,放弃写入所述水印数据,并发出报警。
6.根据权利要求1所述的数据同步方法,其特征在于,所述方法还包括:
在每次所述管道消费线程消费所述管道文件中的水印数据完毕时,利用所述管道消费线程管理模块获取当前存在的管道文件的当前数量;
若所述当前数量大于预设开启新管道消费线程阈值,则复刻所述管道消费线程,并确定复刻出的管道消费线程对应消费的管道文件范围;
利用所述管道消费线程及所述复刻出的管道消费线程消费对应管道文件范围内的管道文件中的水印数据,并将管道文件范围内的管道文件中的水印数据分别写入时序数据库。
7.根据权利要求6所述的数据同步方法,其特征在于,所述方法还包括:
若所述当前数量小于预设关闭管道消费线程阈值,则在复刻出的管道消费线程完成对应消费的管道文件范围内的管道文件中的水印数据后,销毁所述复刻出的管道消费线程。
8.一种数据库同步装置,其特征在于,包括:
同步模块,用于在将源数据库中的数据条目成功同步至目标数据库时,根据被成功同步的数据条目的同步过程确定所述数据条目的水印数据,所述水印数据用于进行同步历史过程追溯;
写入模块,用于利用数据同步线程将被同步成功的数据条目的水印数据写入内存缓冲区;
缓冲区消费模块,用于利用缓冲区消费线程消费所述内存缓冲区中的水印数据,将所述内存缓冲区中的水印数据写入管道文件;
管道消费模块,用于利用管道消费线程消费所述管道文件中的水印数据,将管道文件中的水印数据写入时序数据库中。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1~7任一所述的数据同步方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据同步方法的程序,所述数据同步方法的程序被处理器执行时实现权利要求1-7任一所述的数据同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010394654.2A CN111767339B (zh) | 2020-05-11 | 2020-05-11 | 一种数据同步方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010394654.2A CN111767339B (zh) | 2020-05-11 | 2020-05-11 | 一种数据同步方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111767339A true CN111767339A (zh) | 2020-10-13 |
CN111767339B CN111767339B (zh) | 2023-06-30 |
Family
ID=72720693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010394654.2A Active CN111767339B (zh) | 2020-05-11 | 2020-05-11 | 一种数据同步方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111767339B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051281A (zh) * | 2021-06-02 | 2021-06-29 | 成都四方伟业软件股份有限公司 | 一种时序数据库的实时流数据处理方法及装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120137102A1 (en) * | 2010-11-30 | 2012-05-31 | Ramkumar Perumanam | Consumer approach based memory buffer optimization for multimedia applications |
WO2014067452A1 (zh) * | 2012-11-05 | 2014-05-08 | 腾讯科技(深圳)有限公司 | 一种多层关联存储架构的数据同步方法、数据同步***及存储介质 |
US20160077798A1 (en) * | 2014-09-16 | 2016-03-17 | Salesforce.Com, Inc. | In-memory buffer service |
US20170116206A1 (en) * | 2015-10-27 | 2017-04-27 | TalkCycle LLC dba FrontSpin | Real-time synchronization of data between disparate cloud data sources |
US20170235745A1 (en) * | 2016-02-16 | 2017-08-17 | International Business Machines Corporation | Database maintenance using backup and restore technology |
CN107451146A (zh) * | 2016-05-31 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 利用多级缓存读取数据的方法和缓存数据的多级缓存装置 |
CN108170758A (zh) * | 2017-12-22 | 2018-06-15 | 福建天泉教育科技有限公司 | 高并发数据存储方法及计算机可读存储介质 |
CN110427426A (zh) * | 2019-08-02 | 2019-11-08 | 中国工商银行股份有限公司 | 一种数据同步处理方法及装置 |
CN110622478A (zh) * | 2018-04-08 | 2019-12-27 | 华为技术有限公司 | 数据同步处理的方法和装置 |
CN111026768A (zh) * | 2019-10-16 | 2020-04-17 | 武汉达梦数据库有限公司 | 一种可实现数据快速装载的数据同步方法和装置 |
-
2020
- 2020-05-11 CN CN202010394654.2A patent/CN111767339B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120137102A1 (en) * | 2010-11-30 | 2012-05-31 | Ramkumar Perumanam | Consumer approach based memory buffer optimization for multimedia applications |
WO2014067452A1 (zh) * | 2012-11-05 | 2014-05-08 | 腾讯科技(深圳)有限公司 | 一种多层关联存储架构的数据同步方法、数据同步***及存储介质 |
US20160077798A1 (en) * | 2014-09-16 | 2016-03-17 | Salesforce.Com, Inc. | In-memory buffer service |
US20170116206A1 (en) * | 2015-10-27 | 2017-04-27 | TalkCycle LLC dba FrontSpin | Real-time synchronization of data between disparate cloud data sources |
US20170235745A1 (en) * | 2016-02-16 | 2017-08-17 | International Business Machines Corporation | Database maintenance using backup and restore technology |
CN107451146A (zh) * | 2016-05-31 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 利用多级缓存读取数据的方法和缓存数据的多级缓存装置 |
CN108170758A (zh) * | 2017-12-22 | 2018-06-15 | 福建天泉教育科技有限公司 | 高并发数据存储方法及计算机可读存储介质 |
CN110622478A (zh) * | 2018-04-08 | 2019-12-27 | 华为技术有限公司 | 数据同步处理的方法和装置 |
CN110427426A (zh) * | 2019-08-02 | 2019-11-08 | 中国工商银行股份有限公司 | 一种数据同步处理方法及装置 |
CN111026768A (zh) * | 2019-10-16 | 2020-04-17 | 武汉达梦数据库有限公司 | 一种可实现数据快速装载的数据同步方法和装置 |
Non-Patent Citations (2)
Title |
---|
彭永勇;张晓韬;刘荣刚;: "基于企业级内外网应用场景的实时缓存技术研究", 信息与电脑(理论版), no. 03 * |
赵国涛: "无线多媒体传感器网络中流媒体同步问题研究", 中国硕士学位论文全文数据库 信息科技辑 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051281A (zh) * | 2021-06-02 | 2021-06-29 | 成都四方伟业软件股份有限公司 | 一种时序数据库的实时流数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111767339B (zh) | 2023-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853549B2 (en) | Index storage in shingled magnetic recording (SMR) storage system with non-shingled region | |
CN107391628B (zh) | 数据同步方法及装置 | |
EP3361409B1 (en) | Data deduplication method and apparatus | |
CN109284073B (zh) | 数据存储方法、装置、***、服务器、控制节点及介质 | |
TWI626547B (zh) | 於分散式資料庫中將系統狀態一致地還原至欲還原時間點之方法及系統 | |
CN108829787B (zh) | 一种元数据分布式*** | |
CN103885717B (zh) | 一种数据复制方法及装置 | |
CN105373541A (zh) | 数据库的数据操作请求的处理方法和*** | |
CN113535708A (zh) | 一种数据重删方法、***、存储介质及设备 | |
CN103810060A (zh) | 基于分布式数据库的数据备份方法及其*** | |
CN104965835B (zh) | 一种分布式文件***的文件读写方法及装置 | |
CN110618974A (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN112363995A (zh) | 基于日志解析的增量数据比对方法、装置和电子设备 | |
CN113239012B (zh) | 一种数据库迁移方法、装置、电子设备和存储介质 | |
CN111767339A (zh) | 一种数据同步方法、装置、电子设备及存储介质 | |
CN112835885A (zh) | 一种分布式表格存储的处理方法、装置及*** | |
US10664349B2 (en) | Method and device for file storage | |
CN105786877A (zh) | 一种数据存储方法、***及查询方法 | |
CN109710698B (zh) | 一种数据汇聚方法、装置、电子设备及介质 | |
CN106708439A (zh) | 一种分布式文件***中节点选择计算方法及*** | |
CN102455979B (zh) | 受损存储单元的资料保护方法 | |
CN114756408A (zh) | 元数据备份恢复方法、装置、电子设备及存储介质 | |
CN112395252A (zh) | 文件合并方法、装置及电子设备 | |
CN116257531B (zh) | 一种数据库空间回收方法 | |
US9569280B2 (en) | Managing resource collisions in a storage compute device |
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 |