CN116303789A - 多分片多副本数据库并行同步方法、装置及可读介质 - Google Patents
多分片多副本数据库并行同步方法、装置及可读介质 Download PDFInfo
- Publication number
- CN116303789A CN116303789A CN202310278864.9A CN202310278864A CN116303789A CN 116303789 A CN116303789 A CN 116303789A CN 202310278864 A CN202310278864 A CN 202310278864A CN 116303789 A CN116303789 A CN 116303789A
- Authority
- CN
- China
- Prior art keywords
- topic
- data
- database
- fragment
- gbase
- 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
- 239000012634 fragment Substances 0.000 title claims abstract description 73
- 238000000034 method Methods 0.000 title claims abstract description 54
- 101000822425 Arthrobacter sp. (strain KUJ 8602) Guanidinobutyrase Proteins 0.000 claims abstract description 65
- 238000012545 processing Methods 0.000 claims description 24
- 230000001360 synchronised effect Effects 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 17
- 238000013467 fragmentation Methods 0.000 claims description 8
- 238000006062 fragmentation reaction Methods 0.000 claims description 8
- 230000000903 blocking effect Effects 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 claims description 4
- 230000008878 coupling Effects 0.000 abstract description 7
- 238000010168 coupling process Methods 0.000 abstract description 7
- 238000005859 coupling reaction Methods 0.000 abstract description 7
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001172 regenerating 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
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- 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
一种多分片多副本数据库并行同步方法、装置及可读介质,涉及数据库同步的技术领域,包括:将解析的CDC日志生成第一topic,第一topic包括至少一条第一topic数据,响应于第一topic,计算第一topic数据的分片值并构建第一MAP集合,根据第一MAP集合键值对的个数创建线程数量,以使GBase XDM数据库的每个分片按照键值对对应的第一topic数据执行删除和/或增加和/或修改数据的操作。通过本申请可以缓解现有技术中数据库同步而增加程序代码耦合度的技术问题。
Description
技术领域
本发明涉及数据处理的技术领域,尤其是涉及一种多分片多副本数据库并行同步方法、装置及可读介质。
背景技术
随着数据库领域的不断发展,诞生了大量的不同类型的数据库。如今在一套企业数字化管理系统中往往采用部署多套不同类型数据库相互配合的方案实现数据存储或查询效率的提升,比如内存型数据库通常应用于查询较多的场景,可为事务型数据库分担查询压力,而不同数据库之间往往会有数据实时同步的需求,对于小型项目,比如并发量较小的情况下,新增数据时往往将内存型数据库的新增操作和事务型数据库的新增操作在应用项目代码的持久层统一完成,但是此类方案会增加程序代码之间的耦合程度。
综上所述,数据库为了满足同步性的需求会增加程序代码之间的耦合程度。
发明内容
有鉴于此,本发明的目的在于提供一种多分片多副本数据库并行同步方法、装置及可读介质,以缓解现有技术中由于数据库同步而增加程序代码耦合度的技术问题。
将解析的CDC日志生成第一topic,所述第一topic包括至少一条第一topic数据,第一topic数据包括对删除和/或增加和/或修改源数据库的数据的历史信息;
响应于第一topic,计算所述第一topic数据的分片值并构建第一MAP集合,所述第一MAP集合以库名和分片值为键,第一topic数据集合为值;
根据第一MAP集合键值对的个数创建线程数量,一个线程对一个分片,以使GBaseXDM数据库的每个分片按照键值对对应的第一topic数据执行删除和/或增加和/或修改数据的操作。
一种可能的方式是,所述方法还包括:
将先完成同步的分片对应的处理线程阻塞直至所有分片的数据处理完毕;
若满足预设条件,则执行将解析的CDC日志生成第一topic的步骤;
若未满足预设条件,则生成第二topic,按照所述第二topic对GBase XDM数据库进行处理,所述第二topic包括至少一条第二topic数据,所述第二topic数据包括未按照第一topic数据进行删除和/或增加和/或修改数据库的信息。
所述预设条件包括:所述GBase XDM数据库的每个分片均按照键值对对应的第一topic数据执行删除和/或增加和/或修改数据的操作。
一种可能的方式是,所述按照所述第二topic对GBase XDM数据库进行处理的步骤包括:
响应于第二topic,计算所述第二topic数据的分片值并构建第二MAP集合,所述第二MAP集合以库名和分片值为键,第二topic数据集合为值;
根据第二MAP集合键值对的个数创建线程数量,一个线程对一个分片,以使GBaseXDM数据库的每个分片按照键值对对应的第二topic数据执行删除和/或增加和/或修改数据的操作。
一种可能的方式是,在程序运行前,所述方法包括:
读取配置,读取的配置包括:Kafka配置信息、Zookeeper配置信息、业务源库配置信息、GBase XDM数据库配置信息以及配置信息。
所述Kafka配置信息:用于创建与Kafka的通信机制;
所述Zookeeper配置信息:用于与Zookeeper的通讯;
业务源库配置信息:用于实时解析CDC日志并发送到Kafka;
GBase XDM数据库配置信息:用于生成副本的地址通信连接;
配置信息:用于获取Kafka消息队列的topic以及异构数据库之间的属性映射关系;
一种可能的方式是,所述方法还包括:
获取分片的数据并将该分片的数据并行同步至该分片的所有副本。
一种可能的方式是,所述获取分片的数据并将该分片的数据并行同步至该分片的所有副本的步骤包括:
利用GBase XDM数据库配置信息确定副本的数量;
利用副本的地址建立通信连接将该分片的数据并行同步至该分片的所有副本。
一种可能的方式是,所述方法还包括:
将先完成同步的副本对应的处理线程阻塞直至所有副本完成同步;
若分片的数据同步至该分片的所有副本,则执行所述获取分片的数据并将该分片的数据并行同步至该分片的所有副本的步骤;
若分片的数据未同步至该分片的所有副本,汇总同步失败的数据;
对副本同步失败的数据并行同步至该分片的所有副本。
一种可能的方式是,将解析的CDC日志生成第一topic的步骤包括:
业务源库配置信息将解析后的CDC日志发送至Kafka消息队列以生成第一topic;
所述CDC日志由源数据库生成,所述CDC日志由所述业务源库配置信息解析。
一种可能的方式是,根据GBase XDM数据库配置信息指定的分片字段计算分片值。
Topic生成模块:用于将解析的CDC日志生成第一topic,所述第一topic包括至少一条第一topic数据,第一topic数据包括对删除和/或增加和/或修改源数据库的数据的历史信息;
MAP集合生成模块:用于响应于第一topic,计算所述第一topic数据的分片值并构建第一MAP集合,所述第一MAP集合以库名和分片值为键,第一topic数据集合为值;
数据处理模块:用于根据第一MAP集合键值对的个数创建线程数量,一个线程对一个分片,以使GBase XDM数据库的每个分片按照键值对对应的第一topic数据执行删除和/或增加和/或修改数据的操作。
第三方面.一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行所述第一方面任一种可能的实施方式的方法。
本发明实施例带来了以下有益效果:一种多分片多副本数据库并行同步方法、装置及可读介质,在程序运行时已读取配置,GBase XDM数据库的分片数量为,包括:将解析的CDC日志生成第一topic,第一topic包括至少一条第一topic数据,第一topic数据包括对删除和/或增加和/或修改源数据库的数据的历史信息;响应于第一topic,计算第一topic数据的分片值并构建第一MAP集合,第一MAP集合以库名和分片值为键,第一topic数据集合为值;根据第一MAP集合键值对的个数创建线程数量,一个线程对一个分片,以使GBase XDM数据库的每个分片按照键值对对应的第一topic数据执行删除和/或增加和/或修改数据的操作。通过本申请可以缓解现有技术中数据库同步而增加程序代码耦合度的技术问题。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一示例性实施例示出的一种多分片多副本数据库并行同步方法流程图;
图2为本发明实施例提供的又一示例性实施例示出的一种多分片多副本数据库并行同步方法流程图;
图3为本发明实施例提供的一示例性实施例示出的一种多分片多副本数据库失败处理方法流程图;
图4为本发明实施例提供的一示例性实施例示出的按照第二topic对GBase XDM数据库进行处理方法流程图;
图5为本发明实施例提供的又一示例性实施例示出的一种多分片多副本数据库失败处理方法流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,不同数据库之间往往会有数据实时同步的需求,对于小型项目,比如并发量较小的情况下,新增数据时往往将内存型数据库的新增操作和事务型数据库的新增操作在应用项目代码的持久层统一完成,但是此类方案会增加程序代码之间的耦合程度,且同步性能不足,基于此,本发明实施例提供的一种多分片多副本数据库并行同步方法、装置及可读介质,可以缓解现有技术中由于数据库同步而增加程序代码耦合度的技术问题。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种多分片多副本数据库并行同步方法进行详细介绍。
在此先本申请所涉及到的名词做出如下解释:
CDC日志:中文名称为变更数据捕获,即记录数据增加、修改和删除操作的逻辑日志,通过解析此类逻辑日志从而获取数据变更操作的方式可以减少对用户原有的应用系统的侵入;
GBase XDM是一种多分片多副本类型的可以实现分布式存储和快速查询的极速内存数据库;
topic:在本发明后述的topic为Kafka内部数据中的不同类别,应理解的,每个topic为Kafka中的一个队列,用于存放同类数据;
在此本发明提供的所有实施例中,系统需进行如下操作:
读取配置,读取的配置包括:Kafka配置信息、Zookeeper配置信息、业务源库配置信息、GBase XDM数据库配置信息以及配置信息;
所述Kafka配置信息:用于创建与Kafka的通信机制;
应理解的,使用Kafka配置信息能够从Kafka消息队列获取数据或向Kafka消息队列发送数据;
所述Zookeeper配置信息:用于与Zookeeper的通讯;
应理解的,利用Zookeeper配置信息可将数据同步记录与分片库状态信息加载到Zookeeper中进行管理;
业务源库配置信息:用于实时解析CDC日志并发送到Kafka;
GBase XDM数据库配置信息:用于生成副本的地址通信连接;
配置信息:用于获取Kafka消息队列的topic以及异构数据库之间的属性映射关系;
应理解的,所述配置信息为了将Kafka消息队列的topic映射至GBase XDM数据库;
在此,生成副本地址连接的方式有两种,一种是先与GBase XDM集群建立连接得到GBase XDM集群配置元信息,应理解的,GBase XDM集群配置元信息中含有各个副本的信息,利用各个副本的信息生成副本的地址通信连接;
或将副本信息写入配置到文件中,所述副本信息用于生成副本的地址通信连接;
应理解的,GBase XDM 集群配置元信息即GBase XDM 集群各个数据节点信息;
示例性的,此配置文件可按照Table<库名-分片值,副本名,List<Conncetion>>的数据结构保存在内存中;
源数据库:与GBase XDM数据库同步的数据库,若某个数据库执行了数据改动,则GBase XDM数据库进行相同的改动,则该数据库为源数据库,在此,改动的形式包括但不限于数据的删除和/或增加和/或修改,应理解的,与GBase XDM数据库同步的数据库中,在数据改动时产生CDC日志的数据库均应纳入本申请的保护范围,包括但不限于oracle数据库、GBase 8s数据库,MySQL数据库,PostgreSQL数据库,Informix数据库。
实施例一:
S101:将解析的CDC日志生成第一topic;
在此,所述第一topic包括至少一条第一topic数据,第一topic数据包括对删除和/或增加和/或修改数据库的数据的历史信息;
结合本实施例,在此可利用所述配置信息之中Kafka消息队列的topic以及异构数据库之间的属性映射关系将第一topic转至GBase XDM数据库的操作;
一种可能的方式是,业务源库配置信息将解析后的CDC日志发送至Kafka消息队列以生成第一topic;
所述CDC日志由源数据库生成,所述CDC日志由所述业务源库配置信息解析。
应理解的,按照第一topic历史信息对所述GBase XDM数据库进行修改即可保证源数据库与GBase XDM数据库一致;
S102:响应于第一topic,计算所述第一topic数据的分片值并构建第一MAP集合;
在此,所述第一MAP集合以库名和分片值为键,第一topic数据集合为值;
通过此种方式,第一MAP集合将第一topic的数据按照分片值进行分类,以使每个分片并行处理数据;
示例性的,根据GBase XDM数据库配置信息指定的分片字段计算分片值;
S103:根据第一MAP集合键值对的个数创建线程数量,一个线程对一个分片,以使GBase XDM数据库的每个分片按照键值对对应的第一topic数据执行删除和/或增加和/或修改数据的操作。
通过S101至S103即可实现GBase XDM数据库对与源数据库的同步,利用CDC以及日志进行变更数据捕捉,缓解了现有技术中在数据库同步时,将内存型数据库的新增操作和事务型数据库的新增操作在应用项目代码的持久层统一完成而导致的增加程序代码之间耦合度的问题。
示例性的,若第一MAP集合的键值对个数为3,则创建3个线程,每个线程对一个分片进行数据同步,由此即实现了并行同步;
在图1所述的实施例的基础上,请参照图2,本申请示出了又一示例性实施例示出的一种多分片多副本数据库并行同步方法,具体包括:
S201:将解析的CDC日志生成第一topic;
S202:响应于第一topic,计算所述第一topic数据的分片值并构建第一MAP集合;
S203:根据第一MAP集合键值对的个数创建线程数量,一个线程对一个分片,以使GBase XDM数据库的每个分片按照键值对对应的第一topic数据执行删除和/或增加和/或修改数据的操作;
在此:S201至S203与前述S101至S103相同,在此不再赘述;
S204:获取分片的数据并将该分片的数据并行同步至该分片的所有副本;
在此,利用GBase XDM数据库配置信息确定副本的数量,并利用副本的地址建立通信连接将该分片的数据并行同步至该分片的所有副本。
在此,可利用保存在数据内存中的Table<库名-分片值,副本名,List<Conncetion>>生成该分片与各个副本地址的链接,将该分片的数据并行同步至该分片的所有副本;
通过前述实施例,即可将分片的数据同步至副本;
在前述实施例的基础上,请参照图3,本申请示出了一示例性实施例示出的一种多分片多副本数据库失败处理方法,具体包括如下步骤:
S301:将先完成同步的分片对应的处理线程阻塞直至所有分片完成同步;
S302a:若满足预设条件,则执行将解析的CDC日志生成第一topic的步骤;
S302b:若未满足预设条件,生成第二topic,按照所述第二topic对GBase XDM数据库进行处理;
需要说明的是,所述第二topic包括至少一条第二topic数据,所述第二topic数据包括未按照第一topic数据进行删除和/或增加和/或修改数据库的信息;
所述预设条件包括:所述GBase XDM数据库的每个分片均按照键值对对应的第一topic数据执行删除和/或增加和/或修改数据的操作。
示例性的,将所有副本未完成同步的数据进行汇总,转化成数据集合,可序列化为一个byte数组,利用Kafka配置信息将此byte数据存放至供恢复数据使用的topic中,即第二topic;
在本发明提供的实施例中,利用所述配置信息之中Kafka消息队列的topic以及异构数据库之间的属性映射关系将第二topic转至GBase XDM数据库的操作;
由此,即可完成失败数据的暂时处理和失败数据的后续恢复;
请参照图4,与步骤S102、S103类似,本申请示出了一示例性实施例示出的按照第二topic对GBase XDM数据库进行处理方法,具体包括如下步骤:
S401:响应于第二topic,计算所述第二topic数据的分片值并构建第二MAP集合,所述第二MAP集合以库名和分片值为键,第二topic数据集合为值;
S402:根据第二MAP集合键值对的个数创建线程数量,一个线程对一个分片,以使GBase XDM数据库的每个分片按照键值对对应的第二topic数据执行删除和/或增加和/或修改数据的操作;
应理解的,若某个分片的副本出现故障,则出现故障的分片无法进行同步,通过上述实施例即可保证GBase XDM数据库与源数据库的同步性,又可保证GBase XDM数据库之中出现数据处理失败时,GBase XDM数据库与源数据库同步;
同时为了保证每个副本的数据的同步性,请参照图5,本发明提出了又一示例性实施例示出的一种多分片多副本数据库失败处理方法,具体包括:
S501:将先完成同步的副本对应的处理线程阻塞直至所有副本完成同步;
S502a:若分片的数据同步至该分片的所有副本,则执行所述获取分片的数据并将该分片的数据并行同步至该分片的所有副本的步骤;
S502b:若分片的数据未同步至该分片的所有副本,汇总同步失败的数据;
S503:对副本同步失败的数据并行同步至该分片的所有副本。
可实施的,在此现将故障进行排除后对副本同步失败的数据并行同步至该分片的所有副本。
在此S503的步骤与S204同步至分片副本的步骤相一致,在此不在赘述;
在前述实施例的基础上,为了对多个topic进行并行处理,可选择的,若解析的CDC日志生成第一topic组,所述第一topic组包括多个第一topic,则可对每个第一topic单独分配消费线程。
本发明具备如下优点:
1)利用CDC以及日志进行变更数据捕捉,缓解了现有技术中在数据库同步时,将内存型数据库的新增操作和事务型数据库的新增操作在应用项目代码的持久层统一完成而导致的增加程序代码之间耦合度的问题;
2)利用Kafka消息队列中的topic的消息,对GBase XDM数据库的数据进行处理,与源数据库进行同步;
3)对处理失败的数据,重新生成topic,以保证与源数据库同步;
4)对副本利用节点与数据的连接,并行同步,并通过阻塞机制实现同一分片中所有副本数据的实时一致性。
实施例二:
Topic生成模块:用于将解析的CDC日志生成第一topic,所述第一topic包括至少一条第一topic数据,第一topic数据包括对删除和/或增加和/或修改源数据库的数据的历史信息;
MAP集合生成模块:用于响应于第一topic,计算所述第一topic数据的分片值并构建第一MAP集合,所述第一MAP集合以库名和分片值为键,第一topic数据集合为值;
数据处理模块:用于根据第一MAP集合键值对的个数创建线程数量,一个线程对一个分片,以使GBase XDM数据库的每个分片按照键值对对应的第一topic数据执行删除和/或增加和/或修改数据的操作。
实施例三:
本发明实施例所提供的进行一种多分片多副本数据库并行同步方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
实施例四:
在前述实施例的基础上,本发明实施例四提供了一种多分片多副本数据库并行同步场景:
在本场景下,GBase XDM集群配置两个分片,每个分片两个副本,即共4个数据节点,基于分片数量确定map集合共有两个键值对;
1)第一topic包括100条数据,在此先将所述第一topic数据按照分片字段分别放到map集合的两个键值对之中;
2)创建两个线程,示例性的每个线程同步50条数据,每个分片对应一个线程,示例性的,第一个分片处理50条数据并执行对数据库对应的删除和/或增加和/或修改数据库的操作, 第二个分片处理50条数据并执行对数据库对应的删除和/或增加和/或修改数据库的操作;
3)将每个分片的数据并行同步至两个副本;
进一步的,创建两个线程并行同步,在此,GBase XDM的数据库与源数据库一致,每个副本的数据与所属分片中其他副本的数据一致。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (11)
将解析的CDC日志生成第一topic,所述第一topic包括至少一条第一topic数据,第一topic数据包括对删除和/或增加和/或修改源数据库的数据的历史信息;
响应于第一topic,计算所述第一topic数据的分片值并构建第一MAP集合,所述第一MAP集合以库名和分片值为键,第一topic数据集合为值;
根据第一MAP集合键值对的个数创建线程数量,一个线程对一个分片,以使GBase XDM数据库的每个分片按照键值对对应的第一topic数据执行删除和/或增加和/或修改数据的操作。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将先完成同步的分片对应的处理线程阻塞直至所有分片的数据处理完毕;
若满足预设条件,则执行将解析的CDC日志生成第一topic的步骤;
若未满足预设条件,则生成第二topic,按照所述第二topic对GBase XDM数据库进行处理,所述第二topic包括至少一条第二topic数据,所述第二topic数据包括未按照第一topic数据进行删除和/或增加和/或修改数据库的信息;
所述预设条件包括:所述GBase XDM数据库的每个分片均按照键值对对应的第一topic数据执行删除和/或增加和/或修改数据的操作。
3.根据权利要求2所述的方法,其特征在于,所述按照所述第二topic对GBase XDM数据库进行处理的步骤包括:
响应于第二topic,计算所述第二topic数据的分片值并构建第二MAP集合,所述第二MAP集合以库名和分片值为键,第二topic数据集合为值;
根据第二MAP集合键值对的个数创建线程数量,一个线程对一个分片,以使GBase XDM数据库的每个分片按照键值对对应的第二topic数据执行删除和/或增加和/或修改数据的操作。
4.根据权利要求1至3任一项所述的方法,其特征在于,在程序运行前,所述方法包括:
读取配置,读取的配置包括:Kafka配置信息、Zookeeper配置信息、业务源库配置信息、GBase XDM数据库配置信息以及配置信息;
所述Kafka配置信息:用于创建与Kafka的通信机制;
所述Zookeeper配置信息:用于与Zookeeper的通讯;
业务源库配置信息:用于实时解析CDC日志并发送到Kafka;
GBase XDM数据库配置信息:用于生成副本的地址通信连接;
配置信息:用于获取Kafka消息队列的topic以及异构数据库之间的属性映射关系。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取分片的数据并将该分片的数据并行同步至该分片的所有副本。
6.根据权利要求5所述的方法,其特征在于,所述获取分片的数据并将该分片的数据并行同步至该分片的所有副本的步骤包括:
利用GBase XDM数据库配置信息确定副本的数量;
利用副本的地址建立通信连接将该分片的数据并行同步至该分片的所有副本。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
将先完成同步的副本对应的处理线程阻塞直至所有副本完成同步;
若分片的数据同步至该分片的所有副本,则执行所述获取分片的数据并将该分片的数据并行同步至该分片的所有副本的步骤;
若分片的数据未同步至该分片的所有副本,汇总同步失败的数据;
对副本同步失败的数据并行同步至该分片的所有副本。
8.根据权利要求4所述的方法,其特征在于,
将解析的CDC日志生成第一topic的步骤包括:
业务源库配置信息将解析后的CDC日志发送至Kafka消息队列以生成第一topic;
所述CDC日志由源数据库生成,所述CDC日志由所述业务源库配置信息解析。
9.根据权利要求4所述的方法,其特征在于,根据GBase XDM数据库配置信息指定的分片字段计算分片值。
Topic生成模块:用于将解析的CDC日志生成第一topic,所述第一topic包括至少一条第一topic数据,第一topic数据包括对删除和/或增加和/或修改源数据库的数据的历史信息;
MAP集合生成模块:用于响应于第一topic,计算所述第一topic数据的分片值并构建第一MAP集合,所述第一MAP集合以库名和分片值为键,第一topic数据集合为值;
数据处理模块:用于根据第一MAP集合键值对的个数创建线程数量,一个线程对一个分片,以使GBase XDM数据库的每个分片按照键值对对应的第一topic数据执行删除和/或增加和/或修改数据的操作。
11.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1-9任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310278864.9A CN116303789A (zh) | 2023-03-21 | 2023-03-21 | 多分片多副本数据库并行同步方法、装置及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310278864.9A CN116303789A (zh) | 2023-03-21 | 2023-03-21 | 多分片多副本数据库并行同步方法、装置及可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116303789A true CN116303789A (zh) | 2023-06-23 |
Family
ID=86802856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310278864.9A Pending CN116303789A (zh) | 2023-03-21 | 2023-03-21 | 多分片多副本数据库并行同步方法、装置及可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116303789A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117632991A (zh) * | 2024-01-26 | 2024-03-01 | 天津南大通用数据技术股份有限公司 | 一种数据库变更数据采集的方法及系统 |
-
2023
- 2023-03-21 CN CN202310278864.9A patent/CN116303789A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117632991A (zh) * | 2024-01-26 | 2024-03-01 | 天津南大通用数据技术股份有限公司 | 一种数据库变更数据采集的方法及系统 |
CN117632991B (zh) * | 2024-01-26 | 2024-05-03 | 天津南大通用数据技术股份有限公司 | 一种数据库变更数据采集的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108170768B (zh) | 数据库同步方法、装置及可读介质 | |
US11442961B2 (en) | Active transaction list synchronization method and apparatus | |
US7761431B2 (en) | Consolidating session information for a cluster of sessions in a coupled session environment | |
US10310904B2 (en) | Distributed technique for allocating long-lived jobs among worker processes | |
CN103761162A (zh) | 分布式文件系统的数据备份方法 | |
CN111078667B (zh) | 一种数据迁移的方法以及相关装置 | |
EP4213038A1 (en) | Data processing method and apparatus based on distributed storage, device, and medium | |
US11748215B2 (en) | Log management method, server, and database system | |
CN116303789A (zh) | 多分片多副本数据库并行同步方法、装置及可读介质 | |
CN110121712B (zh) | 一种日志管理方法、服务器和数据库系统 | |
CN114218193A (zh) | 数据迁移方法、装置、计算机设备和可读存储介质 | |
CN111404737B (zh) | 一种容灾处理方法以及相关装置 | |
WO2021082925A1 (zh) | 一种交易处理的方法及装置 | |
CN111752892B (zh) | 分布式文件系统及其实现方法、管理系统、设备及介质 | |
CN112328697A (zh) | 一种基于大数据的数据同步方法 | |
CN114564458B (zh) | 集群间数据同步的方法、装置、设备和存储介质 | |
CN115964436A (zh) | 一种数据库集群管理的方法和装置 | |
CN116049306A (zh) | 数据同步方法、装置、电子设备以及可读存储介质 | |
CN115328931A (zh) | 数据库集群数据校验方法、装置、存储介质及电子设备 | |
CN113934792B (zh) | 分布式数据库的处理方法、装置、网络设备和存储介质 | |
CN113535430A (zh) | 应用数据读写分离方法、装置、计算机设备和存储介质 | |
CN111045869B (zh) | 一种数据备份方法、装置及可读存储介质 | |
CN116107801A (zh) | 交易处理方法及相关产品 | |
CN116756247B (zh) | 数据修复方法、装置、计算机设备和存储介质 | |
CN115730016B (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 |