CN113297235A - 分布式数据库集群的数据一致性检验方法及装置 - Google Patents
分布式数据库集群的数据一致性检验方法及装置 Download PDFInfo
- Publication number
- CN113297235A CN113297235A CN202011211408.5A CN202011211408A CN113297235A CN 113297235 A CN113297235 A CN 113297235A CN 202011211408 A CN202011211408 A CN 202011211408A CN 113297235 A CN113297235 A CN 113297235A
- Authority
- CN
- China
- Prior art keywords
- database cluster
- node
- hash tree
- data
- hash
- 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 86
- 238000013508 migration Methods 0.000 claims abstract description 88
- 230000005012 migration Effects 0.000 claims abstract description 88
- 238000010276 construction Methods 0.000 claims abstract description 68
- 238000004422 calculation algorithm Methods 0.000 claims description 12
- 238000012795 verification Methods 0.000 claims 2
- 230000008569 process Effects 0.000 description 38
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 10
- 238000007689 inspection Methods 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000012546 transfer Methods 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/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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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
-
- 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
Abstract
本说明书提供分布式数据库集群的数据一致性检验方法及装置,其中分布式数据库集群的数据一致性检验方法包括:在检测到从第一数据库集群至第二数据库集群的数据迁移完成的情况下,根据第一哈希树构建规则构建第一数据库集群的第一节点哈希树以及第二数据库集群的第二节点哈希树;根据第二哈希树构建规则构建第一数据库集群哈希树以及第二数据库集群哈希树,其中,第二哈希树构建规则包括:根据节点哈希树的根节点的哈希值,构建数据库集群哈希树;在第一数据库集群哈希树和第二数据库集群哈希树的根节点的哈希值一致的情况下,确定第一数据库集群和第二数据库集群的数据一致。
Description
技术领域
本说明书涉及分布式数据库技术领域,特别涉及分布式数据库集群的数据一致性检验方法及装置。
背景技术
随着计算机技术的快速发展,对数据的存储和管理需求也在不断增加,分布式数据库应运而生。分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储节点连接起来组成一个逻辑上统一的数据库集群,基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取更大的存储容量和更高的并发访问量。分布式数据库中,数据库集群的数据量巨大,且可能会需要在数据库集群之间进行数据迁移,当从旧数据库集群把数据迁移到新数据库集群以后,需要明确新数据库集群的数据是否与旧数据库集群的数据一致,由于数据量巨大,进行逐个数据的对比是一个非常消耗时间的过程,因而进行全量数据的对比以确定两个数据库集群的数据是否一致是不切实际的。
现有技术中,旧数据库集群至新数据库集群的数据迁移完成后,可以对旧数据库集群的数据按照一定间隔进行抽样,并按照相同规则对新数据库集群的数据进行抽样,一一对比抽样得到的数据是否一致,若抽样得到的数据一致,则直接确定新旧数据库集群包括的全量数据一致。然而,上述从全量数据中抽取部分数据进行对比的方式,没有抽取到的数据一定概率上可能会存在不一致的问题,检验两个数据库集群的数据一致性的准确率较低,进而需要更快速更准确的方法进行分布式数据库集群的数据一致性检验的操作或者处理。
发明内容
有鉴于此,本说明书实施例提供了一种分布式数据库集群的数据一致性检验方法。本说明书同时涉及一种分布式数据库集群的数据一致性检验装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种分布式数据库集群的数据一致性检验方法,所述方法包括:
在检测到从第一数据库集群至第二数据库集群的数据迁移完成的情况下,根据第一哈希树构建规则构建所述第一数据库集群的第一节点哈希树以及所述第二数据库集群的第二节点哈希树,其中,所述第一哈希树构建规则包括:根据数据库集群包括的数据节点存储的数据的哈希值构建节点哈希树;
根据第二哈希树构建规则构建第一数据库集群哈希树以及第二数据库集群哈希树,其中,所述第二哈希树构建规则包括:根据节点哈希树的根节点的哈希值,构建数据库集群哈希树;
比较所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值,在所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值一致的情况下,确定所述第一数据库集群和所述第二数据库集群的数据一致。
可选的,根据所述数据库集群包括的数据节点存储的数据的哈希值构建节点哈希树,包括:
获取所述数据库集群包括的数据节点存储的数据;
按照第一长度对所述数据进行划分,得到至少两个数据分段;
以所述至少两个数据分段的数据的哈希值为叶子节点,构建所述节点哈希树。
可选的,以所述至少两个数据分段的数据的哈希值为叶子节点,构建所述节点哈希树,包括:
针对所述至少两个数据分段中的每个数据分段,通过第一哈希算法计算得到所述每个数据分段的数据的哈希值;
将计算得到的至少两个所述哈希值作为第i层的叶子节点,对所述第i层的叶子节点的哈希值进行第一组合运算,得到第i+1层的叶子节点,其中,所述i大于等于1;
确定所述第i+1层的叶子节点的个数是否等于1,若是,则将所述第i+1层的叶子节点确定为根节点;若否,则将i自增1,返回执行对所述第i层的叶子节点的哈希值进行第一组合运算,得到第i+1层的叶子节点的操作步骤;
根据得到的各层所述叶子节点和所述根节点构建得到所述节点哈希树,并存储根节点和数据节点的标识之间的对应关系。
可选的,根据节点哈希树的根节点的哈希值,构建数据库集群哈希树,包括:
将所述节点哈希树的根节点的哈希值作为第k层的叶子节点;
对所述第k层的叶子节点的哈希值进行第二组合运算,得到第k+1层的叶子节点,其中,所述k大于等于1;
确定所述第k+1层的叶子节点的个数是否等于1,若是,则将所述第k+1层的叶子节点确定为根节点;若否,则将k自增1,返回执行对所述第k层的叶子节点的哈希值进行第二组合运算,得到第k+1层的叶子节点的操作步骤;
根据得到的各层所述叶子节点和所述根节点构建得到所述数据库集群哈希树。
可选的,所述方法还包括:
在所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值不一致的情况下,从所述根节点依次向叶子节点方向,比较所述第一数据库集群哈希树和所述第二数据库集群哈希树包括的叶子节点的哈希值,确定至少两个第一目标叶子节点;
根据所述至少两个第一目标叶子节点,确定对应的至少两个目标数据节点。
可选的,根据所述第一目标叶子节点,确定对应的目标数据节点之后,还包括:
获取所述第一数据库集群中的目标数据节点对应的第一目标节点哈希树,并获取所述第二数据库集群中的目标数据节点对应的第二目标节点哈希树;
从所述第一目标节点哈希树和所述第二目标节点哈希树的根节点依次向叶子节点方向,比较所述第一目标节点哈希树和所述第二目标节点哈希树包括的叶子节点的哈希值,确定第二目标叶子节点;
根据所述第二目标叶子节点,确定对应的数据分段。
可选的,所述第一数据库集群哈希树和所述第二数据库集群哈希树均包括p层叶子节点,其中,所述p大于等于1;
比较所述第一数据库集群哈希树和所述第二数据库集群哈希树包括的叶子节点的哈希值,确定第一目标叶子节点,包括:
比较所述第一数据库集群哈希树和所述第二数据库集群哈希树中的第p层的叶子节点的哈希值;
将所述第一数据库集群哈希树和所述第二数据库集群哈希树中第p层的叶子节点中哈希值不同的叶子节点确定为第三目标叶子节点;
将所述p自减1,判断所述p是否等于0,若是,则将所述第三目标叶子节点确定为所述第一目标叶子节点;若否,则将所述第三目标叶子节点下属的叶子节点作为第p层的叶子节点,返回执行所述比较所述第一数据库集群哈希树和所述第二数据库集群哈希树中的第p层的叶子节点的哈希值的操作步骤。
可选的,获取所述数据库集群包括的数据节点存储的数据,包括:
确定从所述第一数据库集群至所述第二数据库集群进行数据迁移的迁移方式;
在所述迁移方式为不停写迁移的情况下,确定数据迁移完成时间点,获取所述数据迁移完成时间点之前所述数据库集群包括的数据节点存储的数据;
在所述迁移方式为停写迁移的情况下,获取所述数据库集群包括的数据节点存储的全量数据。
可选的,对所述第i层的叶子节点的哈希值进行第一组合运算,得到第i+1层的叶子节点,包括:
对所述第i层的叶子节点按照第一分组规则进行划分,得到多个第一叶子节点组合;
针对每个所述第一叶子节点组合,将所述第一叶子节点组合中包括的叶子节点进行目标运算,得到所述第i+1层的叶子节点。
根据本说明书实施例的第二方面,提供了一种分布式数据库集群的数据一致性检验装置,所述装置包括:
第一构建模块,被配置为在检测到从第一数据库集群至第二数据库集群的数据迁移完成的情况下,根据第一哈希树构建规则构建所述第一数据库集群的第一节点哈希树以及所述第二数据库集群的第二节点哈希树,其中,所述第一哈希树构建规则包括:根据数据库集群包括的数据节点存储的数据的哈希值构建节点哈希树;
第二构建模块,被配置为根据第二哈希树构建规则构建第一数据库集群哈希树以及第二数据库集群哈希树,其中,所述第二哈希树构建规则包括:根据节点哈希树的根节点的哈希值,构建数据库集群哈希树;
第一确定模块,被配置为比较所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值,在所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值一致的情况下,确定所述第一数据库集群和所述第二数据库集群的数据一致。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,以实现下述方法:
在检测到从第一数据库集群至第二数据库集群的数据迁移完成的情况下,根据第一哈希树构建规则构建所述第一数据库集群的第一节点哈希树以及所述第二数据库集群的第二节点哈希树,其中,所述第一哈希树构建规则包括:根据数据库集群包括的数据节点存储的数据的哈希值构建节点哈希树;
根据第二哈希树构建规则构建第一数据库集群哈希树以及第二数据库集群哈希树,其中,所述第二哈希树构建规则包括:根据节点哈希树的根节点的哈希值,构建数据库集群哈希树;
比较所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值,在所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值一致的情况下,确定所述第一数据库集群和所述第二数据库集群的数据一致。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述分布式数据库集群的数据一致性检验方法的步骤。
本说明书提供一种分布式数据库集群的数据一致性检验方法,在检测到从第一数据库集群至第二数据库集群的数据迁移完成的情况下,可以先根据第一哈希树构建规则构建第一数据库集群的第一节点哈希树以及第二数据库集群的第二节点哈希树,其中,第一哈希树构建规则包括:根据数据库集群包括的数据节点存储的数据的哈希值构建节点哈希树;然后再根据第二哈希树构建规则构建第一数据库集群哈希树以及第二数据库集群哈希树,其中,第二哈希树构建规则包括:根据节点哈希树的根节点的哈希值,构建数据库集群哈希树;之后比较第一数据库集群哈希树和第二数据库集群哈希树的根节点的哈希值,在第一数据库集群哈希树和第二数据库集群哈希树的根节点的哈希值一致的情况下,确定第一数据库集群和第二数据库集群的数据一致。这种情况下,是先基于每个数据节点真实的全量数据构建得到节点哈希树,然后再分别根据两个数据库集群包括的数据节点的节点哈希树,构建得到两个数据库集群的哈希树,保证了数据库集群包括的全量数据均参与数据库集群哈希树的构建,因而数据库集群哈希树的根节点可以表示该数据库集群包括的全量数据,此时只需要比较两个数据库集群哈希树的根节点是否一致,就可以快速准确地确定两个数据库集群哈希树包括的全量数据是否一致,避免了对全量数据进行抽样,进而避免了未抽样数据不一致的可能性,大大提高了检验两个数据库集群的数据一致性的准确率。
附图说明
图1是本说明书一实施例提供的一种分布式数据库集群的数据一致性检验方法的流程图;
图2是本说明书一实施例提供的一种第一节点哈希树的构建过程示意图;
图3是本说明书一实施例提供的一种第二节点哈希树的构建过程示意图;
图4是本说明书一实施例提供的一种第一数据库集群哈希树的构建过程示意图;
图5是本说明书一实施例提供的一种第二数据库集群哈希树的构建过程示意图;
图6是本说明书一实施例提供的一种第一数据库集群哈希树和第二数据库集群哈希树的比较过程示意图;
图7是本说明书一实施例提供的一种第一节点哈希树和第二节点哈希树的比较过程示意图;
图8是本说明书一实施例提供的一种分布式数据库集群的数据一致性检验装置的结构示意图;
图9是本说明书一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
哈希值:又称散列函数(或散列算法、哈希函数,英语:Hash Function),是一种从任何一种数据中创建小的数字"指纹"的方法。散列函数可以把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来,该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或hashes)的指纹,散列值通常用一个短的随机字母和数字组成的字符串来代表。
哈希表:也称散列表(Hash table),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希表,函数f(key)为哈希函数。
merkle-tree:一种二分哈希树,具有一定高度,是存储哈希值的一棵树,在底层,和哈希列表一样,把数据分成小的数据分段,计算相应的哈希值和它对应,把相邻的两个哈希值合并成一个字符串,然后运算这个字符串的哈希值,这样每两个哈希值就结婚生子,得到了一个”子哈希值“。如果底层的哈希值总数是单数,那到最终必然出现一个单身哈希值,这种情况就直接对它进行哈希运算,所以也能得到它的子哈希值。依次往上推,采用一样的方式,可以得到数目更少的新一级哈希值,最终必然形成一棵倒挂的树,到了树根的这个位置,这一层就剩下一个根哈希值了,把它叫做哈希树的根节点。
数据库集群:是指分布式数据库中某些数据节点组成的节点集合。其中,数据节点是指数据库集群中存储某些部分数据的服务器或者进程。
数据迁移:多个节点或者集群间进行数据转移,例如,将旧数据库集群中各个数据节点包括的数据全部迁移至新数据库集群中包括的数据节点中。数据迁移的实现可以分为3个阶段:数据迁移前的准备、数据迁移的实施和数据迁移后的检验。其中,数据迁移后的检验是指检验新旧数据库集群的数据一致性:当新旧数据库集群之间进行数据迁移的时候,迁移完数据后需要对比下新旧数据库集群的数据是否迁移正确,是否数据相同,检验新旧数据库集群的数据一致性是对迁移工作的检查,数据检验的结果是判断新数据库集群能否正式启用的重要依据。
在本说明书中,提供了一种分布式数据库集群的数据一致性检验方法,本说明书同时涉及一种分布式数据库集群的数据一致性检验装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一实施例提供的一种分布式数据库集群的数据一致性检验方法的流程图,具体包括以下步骤:
步骤102:在检测到从第一数据库集群至第二数据库集群的数据迁移完成的情况下,根据第一哈希树构建规则构建第一数据库集群的第一节点哈希树以及第二数据库集群的第二节点哈希树,其中,第一哈希树构建规则包括:根据数据库集群包括的数据节点存储的数据的哈希值构建节点哈希树。
实际应用中,当从第一数据库集群把数据迁移到第二数据库集群以后,需要明确第二数据库集群的数据是否与第一数据库集群的数据一致,由于数据量巨大,进行逐个数据的对比是一个非常消耗时间的过程,因而进行全量数据的对比以确定两个数据库集群的数据是否一致是不切实际的。而采用从全量数据中抽取部分数据进行对比的方式,没有抽取到的数据一定概率上可能会存在不一致的问题,检验两个数据库集群的数据一致性的准确率较低。
为了快速准确的检验两个数据库集群的数据是否一致,本说明书提供了一种分布式数据库集群的数据一致性检验方法,在检测到从第一数据库集群至第二数据库集群的数据迁移完成的情况下,可以先根据第一哈希树构建规则构建第一数据库集群的第一节点哈希树以及第二数据库集群的第二节点哈希树,其中,第一哈希树构建规则包括:根据数据库集群包括的数据节点存储的数据的哈希值构建节点哈希树;然后再根据第二哈希树构建规则构建第一数据库集群哈希树以及第二数据库集群哈希树,其中,第二哈希树构建规则包括:根据节点哈希树的根节点的哈希值,构建数据库集群哈希树;之后比较第一数据库集群哈希树和第二数据库集群哈希树的根节点的哈希值,在第一数据库集群哈希树和第二数据库集群哈希树的根节点的哈希值一致的情况下,确定第一数据库集群和第二数据库集群的数据一致。数据库集群哈希树的根节点可以表示该数据库集群包括的全量数据,只需要比较两个数据库集群哈希树的根节点是否一致,就可以快速准确地确定两个数据库集群哈希树包括的全量数据是否一致,避免了对全量数据进行抽样,进而避免了未抽样数据不一致的可能性,大大提高了检验两个数据库集群的数据一致性的准确率。
需要说明的是,数据库集群包括至少两个数据库,每个数据库包括至少一个数据节点,每个数据节点用于存储数据。数据库集群中经常会发生将一个数据库集群中的全量数据迁移至另一个数据库集群中,当数据迁移完成后,就需要检验两个数据库集群中的数据是否一致,在数据一致的情况下,后续才可以正式启用新的数据库集群。
具体的,第一数据库集群是指存储待迁移数据的旧数据库集群,第二数据库集群是指接收待迁移数据的新数据库集群,也即是,将第一数据库集群中存储的数据迁移至第二数据库集群中,当第一数据库集群中的全部数据均迁移至第二数据库集群,则确定从第一数据库集群至第二数据库集群的数据迁移完成。
本实施例一个可选的实施方式中,为了保证针对第一数据库集群包括的数据节点构建的第一节点哈希树和针对第二数据库集群包括的数据节点构建的第二节点哈希树的树结构相同,应该采取相同的哈希树构建规则(即第一哈希树构建规则)构建节点哈希树。具体实现时,可以根据第一数据库集群包括的数据节点存储的数据的哈希值构建第一节点哈希树,并根据第二数据库集群包括的数据节点存储的数据的哈希值构建第二节点哈希树。
其中,根据第一数据库集群包括的数据节点存储的数据的哈希值构建第一节点哈希树,具体实现过程可以如下:
获取第一数据库集群包括的数据节点存储的第一数据;
按照第一长度对第一数据进行划分,得到至少两个第一数据分段;
以至少两个第一数据分段的数据的哈希值为叶子节点,构建第一节点哈希树。
具体的,此处的数据节点可以为第一数据库集群中的任一数据节点,由于第一数据库集群包括有至少两个数据节点,因而针对该至少两个数据节点中的每个数据节点都应按照上述操作步骤,构建其对应的第一节点哈希树。也就是说,第一数据库集群包括几个数据节点,就会构建得到几个第一节点哈希树。
另外,数据节点可以以表的形式存储数据,针对任一数据节点,可以获取该数据节点中表的数据,然后按照第一长度对表的数据进行划分,得到至少两个第一数据分段,其中第一长度可以预先进行设置,该长度是指划分数据的长度,如第一长度可以为128。
其中,根据第二数据库集群包括的数据节点存储的数据的哈希值构建第二节点哈希树,具体实现过程可以如下:
获取第二数据库集群包括的数据节点存储的第二数据;
按照第一长度对第二数据进行划分,得到至少两个第二数据分段;
以至少两个第二数据分段的数据的哈希值为叶子节点,构建第二节点哈希树。
具体的,此处的数据节点可以为第二数据库集群中的任一数据节点,由于第二数据库集群包括有至少两个数据节点,因而针对该至少两个数据节点中的每个数据节点都应按照上述操作步骤,构建其对应的第二节点哈希树。也就是说,第二数据库集群包括几个数据节点,就会构建得到几个第二节点哈希树。
需要说明的是,针对第一数据库集群和第二数据库集群包括的数据节点存储的数据,都采用第一长度进行划分,从而保证针对第一数据库集群和第二数据库集群包括的数据节点存储的数据的划分方式相同。
本实施例一个可选的实施方式中,以至少两个第一数据分段的数据的哈希值为叶子节点,构建第一节点哈希树,具体实现过程可以如下:
针对至少两个第一数据分段中的每个第一数据分段,通过第一哈希算法计算得到每个第一数据分段的数据的哈希值;
将计算得到的至少两个哈希值作为第i层的叶子节点,对第i层的叶子节点的哈希值进行第一组合运算,得到第i+1层的叶子节点,其中,i大于等于1;
确定第i+1层的叶子节点的个数是否等于1,若是,则将第i+1层的叶子节点确定为根节点;若否,则将i自增1,返回执行对第i层的叶子节点的哈希值进行第一组合运算,得到第i+1层的叶子节点的操作步骤;
根据得到的各层叶子节点和根节点构建得到第一节点哈希树,并存储根节点和数据节点的标识之间的对应关系。
具体的,第一哈希算法是指预设的哈希算法,用于计算第一数据分段的数据的哈希值,如第一哈希算法可以为MD5(MD5 Message-Digest Algorithm,信息摘要)算法。第一组合运算是指对第i层包括的叶子节点的哈希值进行组合,组合后进行运算的规则,该规则可以提前设置。
需要说明的是,为了方便后续定位数据不一致的数据节点,需要将数据节点和第一节点哈希树进行关联,因而本说明书中将第一节点哈希树的根节点和对应的数据节点的标识进行存储。
其中,对第i层的叶子节点的哈希值进行第一组合运算,得到第i+1层的叶子节点,具体实现过程可以如下:
对第i层的叶子节点按照第一分组规则进行划分,得到多个第一叶子节点组合;
针对每个第一叶子节点组合,将第一叶子节点组合中包括的叶子节点进行目标运算,得到第i+1层的叶子节点。
具体的,第一分组规则是指对第i层包括的叶子节点的哈希值进行组合的规则,如将第i层包括的叶子节点的哈希值进行两两组合。目标运算是指对组合后的叶子节点的哈希值进行运算的规则,如对每两个叶子节点进行异或运算,或者相加运算,亦或者相减运算。
例如,图2是第一节点哈希树的构建过程示意图,第一数据库集群包括数据节点1、数据节点2、数据节点3和数据节点4,如图2所示,针对数据节点1,获取其存储的第一数据,对第一数据进行划分得到8个数据分段,针对该8个数据分段计算得到A1-A8等8个哈希值,将A1-A8作为第1层的叶子节点,对第1层的叶子节点依次两两组合(A1和A2组合,A3和A4组合,A5和A6组合,A7和A8组合),并对每个组合中的两个叶子节点的哈希值进行异或运算,得到第2层的叶子节点;由于第2层的叶子节点的个数为4个,不为1个,因而继续对第2层的叶子节点依次两两组合,并对每个组合中的两个叶子节点的哈希值进行异或运算,得到第3层的叶子节点;由于第3层的叶子节点的个数为2个,不为1个,因而继续对第3层的叶子节点依次两两组合,并对每个组合中的两个叶子节点的哈希值进行异或运算,得到第4层的叶子节点X1,由于第4层的叶子节点的个数为1个,此时将第4层的叶子节点X1确定为根节点,第1层至第3层包括的各个叶子节点以及第4层的根节点X1即构成数据节点1对应的第一节点哈希树。针对第一数据库集群包括的数据节点2、数据节点3和数据节点4,采用相同的方法分别构建得到如图2所示的根节点分别为X2、X3和X4的第一节点哈希树(数据节点2对应的第一节点哈希树,数据节点3对应的第一节点哈希树,数据节点4对应的第一节点哈希树),并存储如下表1所示的根节点和数据节点的标识之间的对应关系表。
表1根节点和数据节点的标识之间的对应关系表
根节点 | 数据节点的标识 |
X1 | 数据节点1 |
X2 | 数据节点2 |
X3 | 数据节点3 |
X4 | 数据节点4 |
相应的,以至少两个第二数据分段的数据的哈希值为叶子节点,构建第二节点哈希树,具体实现过程可以如下:
针对至少两个第二数据分段中的每个第二数据分段,通过第一哈希算法计算得到每个第二数据分段的数据的哈希值;
将计算得到的至少两个哈希值作为第j层的叶子节点,对第j层的叶子节点的哈希值进行第一组合运算,得到第j+1层的叶子节点,其中,j大于等于1;
确定第j+1层的叶子节点的个数是否等于1,若是,则将第j+1层的叶子节点确定为根节点;若否,则将j自增1,返回执行对第j层的叶子节点的哈希值进行第一组合运算,得到第j+1层的叶子节点的操作步骤;
根据得到的各层叶子节点和根节点构建得到第二节点哈希树,并存储根节点和数据节点的标识之间的对应关系。
其中,对第j层的叶子节点的哈希值进行第一组合运算,得到第j+1层的叶子节点,具体实现过程可以如下:
对第j层的叶子节点按照第一分组规则进行划分,得到多个第二叶子节点组合;
针对每个第二叶子节点组合,将第二叶子节点组合中包括的叶子节点进行目标运算,得到第j+1层的叶子节点。
需要说明的是,构建第二节点哈希树采用的是与构建第一节点哈希树相同的哈希树构建规则,其具体构建过程类似,从而保证了构建得到的第一节点哈希树和第二节点哈希树的结构相同。
例如,图3是第二节点哈希树的构建过程示意图,第二数据库集群包括数据节点5、数据节点6、数据节点7和数据节点8,如图3所示,针对数据节点5,获取其存储的第二数据,对第二数据进行划分得到8个数据分段,针对该8个数据分段计算得到B1-B8等8个哈希值,将B1-B8作为第1层的叶子节点,采用与上例相同的方法构建得到根节点为Y1的第二节点哈希树(数据节点5对应的第二节点哈希树),并采用相同方法分别构建得到如图2所示的根节点分别为Y2、Y3和Y4的第二节点哈希树(数据节点6对应的第二节点哈希树、数据节点7对应的第二节点哈希树、数据节点8对应的第二节点哈希树),然后对上述表1所示的根节点和数据节点的标识之间的对应关系表进行更新,得到如下表2所示的更新后的根节点和数据节点的标识之间的对应关系表。
表2更新后的根节点和数据节点的标识之间的对应关系表
根节点 | 数据节点的标识 |
X1 | 数据节点1 |
X2 | 数据节点2 |
X3 | 数据节点3 |
X4 | 数据节点4 |
Y1 | 数据节点5 |
Y2 | 数据节点6 |
Y3 | 数据节点7 |
Y4 | 数据节点8 |
值得说明的是,本说明书中可以对第一数据库集群和第二数据库集群包括的各个数据节点同步构建节点哈希树,各个数据节点并发计算,来构建后续数据库集群级别的哈希树,使得构建节点哈希树的效率较高,进而提高了后续构建数据库集群哈希树的效率,从而便于后续快速准确的通过的对比数据库集群哈希树,来检验两个数据库集群的数据一致性。
进一步的,对于持续写入的情况,数据库集群的迁移方式可能会影响进行数据一致性检验过程中获取数据的方式,因而获取第一数据库集群包括的数据节点存储的第一数据,具体实现过程可以如下:
确定从第一数据库集群至第二数据库集群进行数据迁移的迁移方式;
在迁移方式为不停写迁移的情况下,确定数据迁移完成时间点,获取数据迁移完成时间点之前第一数据库集群包括的数据节点存储的第一数据;
在迁移方式为停写迁移的情况下,获取第一数据库集群包括的数据节点存储的全量第一数据。
具体的,迁移方式是指数据迁移完成之后,数据库集群是否立即接收其他新写入的数据的方式,不停写迁移是指数据迁移完成之后,立即接收其他新写入的数据,停写迁移是指数据迁移完成之后,停止接收其他新写入的数据。也就是说,如果是不停写迁移,需要进行数据一致性检验的是数据迁移完成时间点之前的数据,而之后新写入的数据不需要进行检验,因而本说明书中在迁移方式为不停写迁移的情况下,需要先确定数据迁移完成时间点,然后获取数据迁移完成时间点之前第一数据库集群包括的数据节点存储的第一数据,即可以通过数据迁移完成时间点对第一数据库集群包括的数据节点存储的第一数据进行筛选;如果是停写迁移,则需要进行数据一致性检验的是第一数据库集群包括的数据节点存储的全量第一数据,因而本说明书中在迁移方式为停写迁移的情况下,可以直接获取第一数据库集群包括的数据节点存储的全量第一数据,不需要通过时间点筛选第一数据。
相应的,获取第二数据库集群包括的数据节点存储的第二数据,具体实现过程可以如下:
确定从第一数据库集群至第二数据库集群进行数据迁移的迁移方式;
在迁移方式为不停写迁移的情况下,确定数据迁移完成时间点,获取数据迁移完成时间点之前第二数据库集群包括的数据节点存储的第二数据;
在迁移方式为停写迁移的情况下,获取第二数据库集群包括的数据节点存储的全量第二数据。
步骤104:根据第二哈希树构建规则构建第一数据库集群哈希树以及第二数据库集群哈希树,其中,第二哈希树构建规则包括:根据节点哈希树的根节点的哈希值,构建数据库集群哈希树。
具体的,在根据第一哈希树构建规则构建第一数据库集群的第一节点哈希树以及第二数据库集群的第二节点哈希树的基础上,进一步的,将根据第二哈希树构建规则构建第一数据库集群哈希树以及第二数据库集群哈希树。
本实施例一个可选的实施方式中,为了保证针对第一数据库集群构建的第一数据库集群哈希树和针对第二数据库集群构建的第二数据库集群哈希树的树结构相同,应该采取相同的哈希树构建规则(即第二哈希树构建规则)构建数据库集群哈希树。由于通过上述步骤102可以针对第一数据库集群包括的各个数据节点,构建得到多个第一节点哈希树,并且可以针对第二数据库集群包括的各个数据节点,构建得到多个第二节点哈希树。因而具体实现构建数据库集群哈希树时,可以根据各个第一节点哈希树的根节点的哈希值构建第一数据库集群哈希树,并根据各个第二节点哈希树的根节点的哈希值构建第二数据库集群哈希树。
其中,根据各个第一节点哈希树的根节点的哈希值构建第一数据库集群哈希树,具体实现过程可以如下:
将第一节点哈希树的根节点的哈希值作为第k层的叶子节点;
对第k层的叶子节点的哈希值进行第二组合运算,得到第k+1层的叶子节点,其中,k大于等于1;
确定第k+1层的叶子节点的个数是否等于1,若是,则将第k+1层的叶子节点确定为根节点;若否,则将k自增1,返回执行对第k层的叶子节点的哈希值进行第二组合运算,得到第k+1层的叶子节点的操作步骤;
根据得到的各层叶子节点和根节点构建得到第一数据库集群哈希树。
具体的,第二组合运算是指对第k层包括的叶子节点的哈希值进行组合,组合后进行运算的规则,该规则可以提前设置。需要说明的是,第一组合运算用于构建节点哈希树,而第二组合运算用于构建数据库集群哈希树,因而第二组合运算和第一组合运算可以相同,也可以不同。具体实现过程中,对第k层的叶子节点的哈希值进行第二组合运算,得到第k+1层的叶子节点的具体过程与上述对第i层的叶子节点的哈希值进行第一组合运算,得到第i+1层的叶子节点的具体过程相类似,本说明书在此不再进行赘述。
沿用上例,图4是第一数据库集群哈希树的构建过程示意图,如图4所示,将数据节点1对应的第一节点哈希树的根节点X1,数据节点2对应的第一节点哈希树的根节点X2,数据节点3对应的第一节点哈希树的根节点X3,数据节点4对应的第一节点哈希树的根节点X4作为第1层的叶子节点,对第1层的叶子节点依次两两组合(X1和X2,X3和X4),并对每个组合中的两个叶子节点的哈希值进行异或运算,得到第2层的叶子节点;由于第2层的叶子节点的个数为2个,不为1个,因而继续对第2层的叶子节点依次两两组合,并对每个组合中的两个叶子节点的哈希值进行异或运算,得到第3层的叶子节点G1,由于第3层的叶子节点的个数为1个,此时将第3层的叶子节点G1确定为根节点,第1层至第2层包括的各个叶子节点以及第3层的根节点G1即构成第一数据库集群哈希树。
相应的,根据各个第二节点哈希树的根节点的哈希值,构建第二数据库集群哈希树,具体实现过程可以如下:
将第二节点哈希树的根节点的哈希值作为第m层的叶子节点;
对第m层的叶子节点的哈希值进行第二组合运算,得到第m+1层的叶子节点,其中,m大于等于1;
确定第m+1层的叶子节点的个数是否等于1,若是,则将第m+1层的叶子节点确定为根节点;若否,则将m自增1,返回执行对第m层的叶子节点的哈希值进行第二组合运算,得到第m+1层的叶子节点的操作步骤;
根据得到的各层叶子节点和根节点构建得到第二数据库集群哈希树。
需要说明的是,构建第一数据库集群哈希树与构建第二数据库集群哈希树过程采用相同的哈希树构建规则(即第二哈希树构建规则),从而保证了构建得到的第一数据库集群哈希树和第二数据库集群哈希树的树结构相同。
沿用上例,图5是第二数据库集群哈希树的构建过程示意图,如图5所示,将数据节点5对应的第二节点哈希树的根节点Y1,数据节点6对应的第二节点哈希树的根节点Y2,数据节点7对应的第二节点哈希树的根节点Y3,数据节点8对应的第二节点哈希树的根节点Y4作为第1层的叶子节点,对第1层的叶子节点采用与上例相同的方法构建得到根节点为G2的第二数据库集群哈希树。
步骤106:比较第一数据库集群哈希树和第二数据库集群哈希树的根节点的哈希值,在第一数据库集群哈希树和第二数据库集群哈希树的根节点的哈希值一致的情况下,确定第一数据库集群和第二数据库集群的数据一致。
具体的,在根据第二哈希树构建规则构建第一数据库集群哈希树以及第二数据库集群哈希树的基础上,进一步的,将比较第一数据库集群哈希树和第二数据库集群哈希树的根节点的哈希值,在第一数据库集群哈希树和第二数据库集群哈希树的根节点的哈希值一致的情况下,确定第一数据库集群和第二数据库集群的数据一致。
值得说明的是,本说明书中可以先基于每个数据节点真实的全量数据构建得到节点哈希树,然后再分别根据两个数据库集群包括的数据节点的节点哈希树,构建得到两个数据库集群的哈希树,保证了数据库集群包括的全量数据均参与数据库集群哈希树的构建,也即是,数据库集群哈希树的根节点可以表示该数据库集群包括的全量数据,此时只需要比较两个数据库集群哈希树的根节点是否一致,就可以快速准确地确定两个数据库集群哈希树包括的全量数据是否一致,避免了对全量数据进行抽样,进而避免了未抽样数据不一致的可能性,大大提高了检验两个数据库集群的数据一致性的准确率。
进一步的,若第一数据库集群哈希树和第二数据库集群哈希树的根节点的哈希值不一致,则说明第一数据库集群和第二数据库集群中存在不一致的数据,本说明书中还可以进一步定位数据不一致的数据节点,从而定位至数据不一致的数据节点中的具体数据分段,以明确是哪个或者哪些数据分段的数据存在问题,不一致,具体实现过程可以如下:
在第一数据库集群哈希树和第二数据库集群哈希树的根节点的哈希值不一致的情况下,从根节点依次向叶子节点方向,比较第一数据库集群哈希树和第二数据库集群哈希树包括的叶子节点的哈希值,确定至少两个第一目标叶子节点;
根据至少两个第一目标叶子节点,确定对应的至少两个目标数据节点;
获取第一数据库集群中的目标数据节点对应的第一目标节点哈希树,并获取第二数据库集群中的目标数据节点对应的第二目标节点哈希树;
从第一目标节点哈希树和第二目标节点哈希树的根节点依次向叶子节点方向,比较第一目标节点哈希树和第二目标节点哈希树包括的叶子节点的哈希值,确定第二目标叶子节点;
根据第二目标叶子节点,确定对应的数据分段。
具体的,第一目标叶子节点是第一数据库集群哈希树和第二数据库集群哈希树包括的叶子节点中,哈希值不同的底层(第1层)叶子节点,因而第一目标叶子节点至少有两个,且个数应该为双数,一半为第一数据库集群哈希树中的叶子节点,另一半为第二数据库集群哈希树中的叶子节点。
另外,由于数据库集群哈希树的底层叶子节点是节点哈希树的根节点,因而确定出第一目标叶子节点(也就是节点哈希树的根节点)之后,可以根据之前存储的根节点和数据节点的标识之间的对应关系,确定出对应的至少两个目标数据节点(一半为第一数据库集群的数据节点,另一半为第二数据库集群的数据节点),从而获取目标数据节点对应的第一节点哈希树和第二节点哈希树,然后通过对比两个目标节点哈希树,就可以定位到目标节点哈希树中哈希值不一致的底层(第1层)叶子节点(即第二目标叶子节点),由于节点哈希树的底层叶子节点是对数据节点的数据分段后计算得到的,每一个底层叶子节点都对应一个数据分段。因而确定出第二目标叶子节点后,就可以根据第二目标叶子节点,确定对应的数据节点中的数据分段,即实现具体定位至数据不一致的数据节点中的数据分段。
其中,假设第一数据库集群哈希树和第二数据库集群哈希树均包括p层叶子节点,p大于等于1;则比较第一数据库集群哈希树和第二数据库集群哈希树包括的叶子节点的哈希值,确定第一目标叶子节点,具体实现过程可以如下:
比较第一数据库集群哈希树和第二数据库集群哈希树中的第p层的叶子节点的哈希值;
将第一数据库集群哈希树和第二数据库集群哈希树中第p层的叶子节点中哈希值不同的叶子节点确定为第三目标叶子节点;
将p自减1,判断p是否等于0,若是,则将第三目标叶子节点确定为第一目标叶子节点;若否,则将第三目标叶子节点下属的叶子节点作为第p层的叶子节点,返回执行比较第一数据库集群哈希树和第二数据库集群哈希树中的第p层的叶子节点的哈希值的操作步骤。
需要说明的是,比较第一目标节点哈希树和第二目标节点哈希树包括的叶子节点的哈希值,确定第二目标叶子节点的具体实现过程与比较第一数据库集群哈希树和第二数据库集群哈希树包括的叶子节点的哈希值,确定至少两个第一目标叶子节点的具体实现过程类似,本说明书在此不进行赘述。另外,确定数据不一致的数据节点,需要一一对比不同数据库集群哈希树包括的叶子节点,因而确定数据不一致的数据节点的复杂度为O(log(n)),其中,n为第一数据库集群(或第二数据库集群)中数据节点的个数;并且,确定数据不一致的数据节点中的数据分段,也需要一一对比不同节点哈希树包括的叶子节点,因而确定数据不一致的数据节点中的数据分段的复杂度为O(log(f)),其中,f为数据节点中切分数据得到的数据分段的个数。
沿用上例,图6是第一数据库集群哈希树和第二数据库集群哈希树的比较过程示意图,如6所示,第一数据库集群哈希树和第二数据库集群哈希树均包括2层叶子节点,在第一数据库集群哈希树的根节点G1和第二数据库集群哈希树的根节点G2的哈希值不一致的情况下,依次向下,比较第一数据库集群哈希树和第二数据库集群哈希树中的第2层的叶子节点的哈希值,假设第一数据库集群哈希树和第二数据库集群哈希树中第2层的叶子节点中哈希值不同的叶子节点是左边的叶子节点,此时将第一数据库集群哈希树和第二数据库集群哈希树中第2层左边的叶子节点确定为第三目标叶子节点,由于2自减1为1,不等于0,因而将第一数据库集群哈希树和第二数据库集群哈希树中第2层左边的叶子节点下属的叶子节点作为第1层的叶子节点;然后,比较第一数据库集群哈希树和第二数据库集群哈希树中的第1层的叶子节点的哈希值,假设第一数据库集群哈希树和第二数据库集群哈希树中第1层的叶子节点中哈希值不同的叶子节点是左边的叶子节点X1和Y1,此时将第一数据库集群哈希树和第二数据库集群哈希树中第1层左边的叶子节点X1和Y1确定为第三目标叶子节点,由于1自减1为0,因而将第一数据库集群哈希树和第二数据库集群哈希树中第1层(即底层)左边的叶子节点X1和Y1确定为第一目标叶子节点。
根据上述表2所示的,确定出叶子节点X1和Y1对应的目标数据节点为数据节点1和数据节点5,然后获取数据节点1对应的第一节点哈希树(根节点为X1的节点哈希树),以及数据节点5对应的第二节点哈希树(根节点为Y1的节点哈希树)。
图7是第一节点哈希树和第二节点哈希树的比较过程示意图,如图7所示,数据节点1对应的第一节点哈希树和数据节点5对应的第二节点哈希树均包括3层叶子节点,已经确定了第一节点哈希树的根节点X1和第二节点哈希树的根节点Y2的哈希值不一致,依次向下,比较第一节点哈希树和第二节点哈希树中的第3层的叶子节点的哈希值,假设第一节点哈希树和第二节点哈希树中第3层的叶子节点中哈希值不同的叶子节点是右边的叶子节点,此时将第一节点哈希树和第二节点哈希树中第3层右边的叶子节点确定为第四目标叶子节点,由于3自减1为2,不等于0,因而将第一节点哈希树和第二节点哈希树中第3层右边的叶子节点下属的叶子节点作为第2层的叶子节点;然后,比较第一节点哈希树和第二节点哈希树中的第2层的叶子节点的哈希值,假设第一节点哈希树和第二节点哈希树中第2层的叶子节点中哈希值不同的叶子节点是左边的叶子节点,此时将第一节点哈希树和第二节点哈希树中第2层左边的叶子节点确定为第四目标叶子节点,由于2自减1为1,不等于0,因而将第一节点哈希树和第二节点哈希树中第2层左边的叶子节点下属的叶子节点作为第1层的叶子节点;之后,比较第一节点哈希树和第二节点哈希树中的第1层的叶子节点的哈希值,假设第一节点哈希树和第二节点哈希树中第1层的叶子节点中哈希值不同的叶子节点是左边的叶子节点A5和B5,此时将第一节点哈希树和第二节点哈希树中第1层左边的叶子节点A5和B5确定为第四目标叶子节点,由于1自减1为0,因而将第一节点哈希树和第二节点哈希树中第1层(即底层)左边的叶子节点A5和B5确定为第二目标叶子节点。
由于叶子节点A5和B5分别对应的是数据节点1和数据节点5中的第5段数据分段,此时最终可以准确定位至数据节点1和数据节点5中的第5段数据分段中的数据不一致。
值得说明的是,本说明书可以通过层层对比数据库集群哈希树,确定出数据不一致的数据节点,再进一步层层对比节点哈希树,确定出数据节点中数据不一致的数据分段,实现了可以快速定位至数据不一致的数据节点及数据节点中的数据分段,便于后续快速对数据不一致的数据分段中的数据进行修改。
需要说明的是,上述可以快速定位至数据不一致的数据节点以及数据节点中的数据分段的方法,需要第一数据库集群和第二数据库集群的拓扑结构相同,且针对不同节点构建节点哈希树时构建规则应该相同,针对不同数据库集群构建数据库集群哈希树时构建规则也应该相同,即最终构建得到的节点哈希树之间,以及数据库集群哈希树之间的树结构应该相同,后续才可以实现一一比较叶子节点,以最终定位数据不一致的数据节点和数据节点中的数据分段。
另外,对于第一数据库集群和第二数据库集群拓扑结构不一致的情况,因为第一数据库集群和第二数据库集群的数据范围都是一样的,即任何一个数据库集群的数据最小范围到最大范围都是一样的(以MD5哈希算法来说,就是0-2^128范围),那么如果第一数据库集群和第二数据库集群按照一定的规则(相同规则)去切分数据,得到的数据分段应该是一致的,然后对该数据分段计算得到的哈希值,根据该哈希值构建得到的节点哈希树的根节点的哈希值应该一致,进而构建的数据库集群哈希树的根节点也应该一致。
也就是说,对于第一数据库集群和第二数据库集群拓扑结构不一致的情况,也可以采用上述方法通过构建节点哈希树和数据库集群哈希树,然后对比数据库集群哈希树的根节点的哈希值来确定数据库集群的数据是否一致。但是由于第一数据库集群和第二数据库集群的拓扑结构不一致,构建的节点哈希树之间,以及数据库集群哈希树之间的树结构可能不相同,即叶子节点无法一一对应,因而无法一一对比叶子节点,定位至准确的数据不一致的数据节点,进而无法定位至准确的数据不一致的数据节点中的数据分段,只能给出数据不一致的大致范围,然后进一步在数据不一致的大致范围中再通过其他方式确定出数据不一致的数据节点。
本说明书提供一种分布式数据库集群的数据一致性检验方法,在检测到从第一数据库集群至第二数据库集群的数据迁移完成的情况下,可以先根据第一哈希树构建规则构建第一数据库集群的第一节点哈希树以及第二数据库集群的第二节点哈希树,其中,第一哈希树构建规则包括:根据数据库集群包括的数据节点存储的数据的哈希值构建节点哈希树;然后再根据第二哈希树构建规则构建第一数据库集群哈希树以及第二数据库集群哈希树,其中,第二哈希树构建规则包括:根据节点哈希树的根节点的哈希值,构建数据库集群哈希树;之后比较第一数据库集群哈希树和第二数据库集群哈希树的根节点的哈希值,在第一数据库集群哈希树和第二数据库集群哈希树的根节点的哈希值一致的情况下,确定第一数据库集群和第二数据库集群的数据一致。这种情况下,是先基于每个数据节点真实的全量数据构建得到节点哈希树,然后再分别根据两个数据库集群包括的数据节点的节点哈希树,构建得到两个数据库集群的哈希树,保证了数据库集群包括的全量数据均参与数据库集群哈希树的构建,因而数据库集群哈希树的根节点可以表示该数据库集群包括的全量数据,此时只需要比较两个数据库集群哈希树的根节点是否一致,就可以快速准确地确定两个数据库集群哈希树包括的全量数据是否一致,避免了对全量数据进行抽样,进而避免了未抽样数据不一致的可能性,大大提高了检验两个数据库集群的数据一致性的准确率。进一步的,还可以通过一一比较哈希树的叶子节点,最终定位至数据不一致的数据节点和数据节点中的数据分段。
与上述方法实施例相对应,本说明书还提供了分布式数据库集群的数据一致性检验装置实施例,图8示出了本说明书一实施例提供的一种分布式数据库集群的数据一致性检验装置的结构示意图。如图8所示,该装置包括:
第一构建模块802,被配置为在检测到从第一数据库集群至第二数据库集群的数据迁移完成的情况下,根据第一哈希树构建规则构建所述第一数据库集群的第一节点哈希树以及所述第二数据库集群的第二节点哈希树,其中,所述第一哈希树构建规则包括:根据数据库集群包括的数据节点存储的数据的哈希值构建节点哈希树;
第二构建模块804,被配置为根据第二哈希树构建规则构建第一数据库集群哈希树以及第二数据库集群哈希树,其中,所述第二哈希树构建规则包括:根据节点哈希树的根节点的哈希值,构建数据库集群哈希树;
第一确定模块806,被配置为比较所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值,在所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值一致的情况下,确定所述第一数据库集群和所述第二数据库集群的数据一致。
本实施例一个可选的实施方式中,第一构建模块802进一步被配置为:
获取所述数据库集群包括的数据节点存储的数据;
按照第一长度对所述数据进行划分,得到至少两个数据分段;
以所述至少两个数据分段的数据的哈希值为叶子节点,构建所述节点哈希树。
本实施例一个可选的实施方式中,第一构建模块802进一步被配置为:
针对所述至少两个数据分段中的每个数据分段,通过第一哈希算法计算得到所述每个数据分段的数据的哈希值;
将计算得到的至少两个所述哈希值作为第i层的叶子节点,对所述第i层的叶子节点的哈希值进行第一组合运算,得到第i+1层的叶子节点,其中,所述i大于等于1;
确定所述第i+1层的叶子节点的个数是否等于1,若是,则将所述第i+1层的叶子节点确定为根节点;若否,则将i自增1,返回执行对所述第i层的叶子节点的哈希值进行第一组合运算,得到第i+1层的叶子节点的操作步骤;
根据得到的各层所述叶子节点和所述根节点构建得到所述节点哈希树,并存储根节点和数据节点的标识之间的对应关系。
本实施例一个可选的实施方式中,第二构建模块804进一步被配置为:
将所述节点哈希树的根节点的哈希值作为第k层的叶子节点;
对所述第k层的叶子节点的哈希值进行第二组合运算,得到第k+1层的叶子节点,其中,所述k大于等于1;
确定所述第k+1层的叶子节点的个数是否等于1,若是,则将所述第k+1层的叶子节点确定为根节点;若否,则将k自增1,返回执行对所述第k层的叶子节点的哈希值进行第二组合运算,得到第k+1层的叶子节点的操作步骤;
根据得到的各层所述叶子节点和所述根节点构建得到所述数据库集群哈希树。
本实施例一个可选的实施方式中,所述装置还包括:
第一比较模块,被配置为在所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值不一致的情况下,从所述根节点依次向叶子节点方向,比较所述第一数据库集群哈希树和所述第二数据库集群哈希树包括的叶子节点的哈希值,确定至少两个第一目标叶子节点;
第二确定模块,被配置为根据所述至少两个第一目标叶子节点,确定对应的至少两个目标数据节点。
本实施例一个可选的实施方式中,所述装置还包括:
获取模块,被配置为获取所述第一数据库集群中的目标数据节点对应的第一目标节点哈希树,并获取所述第二数据库集群中的目标数据节点对应的第二目标节点哈希树;
第二比较模块,被配置为从所述第一目标节点哈希树和所述第二目标节点哈希树的根节点依次向叶子节点方向,比较所述第一目标节点哈希树和所述第二目标节点哈希树包括的叶子节点的哈希值,确定第二目标叶子节点;
第三确定模块,被配置为根据所述第二目标叶子节点,确定对应的数据分段。
本实施例一个可选的实施方式中,所述第一数据库集群哈希树和所述第二数据库集群哈希树均包括p层叶子节点,其中,所述p大于等于1;第一比较模块进一步被配置为:
比较所述第一数据库集群哈希树和所述第二数据库集群哈希树中的第p层的叶子节点的哈希值;
将所述第一数据库集群哈希树和所述第二数据库集群哈希树中第p层的叶子节点中哈希值不同的叶子节点确定为第三目标叶子节点;
将所述p自减1,判断所述p是否等于0,若是,则将所述第三目标叶子节点确定为所述第一目标叶子节点;若否,则将所述第三目标叶子节点下属的叶子节点作为第p层的叶子节点,返回执行所述比较所述第一数据库集群哈希树和所述第二数据库集群哈希树中的第p层的叶子节点的哈希值的操作步骤。
本实施例一个可选的实施方式中,第一构建模块802进一步被配置为:
确定从所述第一数据库集群至所述第二数据库集群进行数据迁移的迁移方式;
在所述迁移方式为不停写迁移的情况下,确定数据迁移完成时间点,获取所述数据迁移完成时间点之前所述数据库集群包括的数据节点存储的数据;
在所述迁移方式为停写迁移的情况下,获取所述数据库集群包括的数据节点存储的全量数据。
本实施例一个可选的实施方式中,第一构建模块802进一步被配置为:
对所述第i层的叶子节点按照第一分组规则进行划分,得到多个第一叶子节点组合;
针对每个所述第一叶子节点组合,将所述第一叶子节点组合中包括的叶子节点进行目标运算,得到所述第i+1层的叶子节点。
本说明书提供一种分布式数据库集群的数据一致性检验装置,可以先基于每个数据节点真实的全量数据构建得到节点哈希树,然后再分别根据两个数据库集群包括的数据节点的节点哈希树,构建得到两个数据库集群的哈希树,保证了数据库集群包括的全量数据均参与数据库集群哈希树的构建,因而数据库集群哈希树的根节点可以表示该数据库集群包括的全量数据,此时只需要比较两个数据库集群哈希树的根节点是否一致,就可以快速准确地确定两个数据库集群哈希树包括的全量数据是否一致,避免了对全量数据进行抽样,进而避免了未抽样数据不一致的可能性,大大提高了检验两个数据库集群的数据一致性的准确率。
上述为本实施例的一种分布式数据库集群的数据一致性检验装置的示意性方案。需要说明的是,该分布式数据库集群的数据一致性检验装置的技术方案与上述的分布式数据库集群的数据一致性检验方法的技术方案属于同一构思,分布式数据库集群的数据一致性检验装置的技术方案未详细描述的细节内容,均可以参见上述分布式数据库集群的数据一致性检验方法的技术方案的描述。
图9示出了根据本说明书一实施例提供的一种计算设备900的结构框图。该计算设备900的部件包括但不限于存储器910和处理器920。处理器920与存储器910通过总线930相连接,数据库集群950用于保存数据。
计算设备900还包括接入设备940,接入设备940使得计算设备900能够经由一个或多个网络960通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备940可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备900的上述部件以及图9中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图9所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备900可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备900还可以是移动式或静止式的服务器。
其中,处理器920用于执行如下计算机可执行指令:
在检测到从第一数据库集群至第二数据库集群的数据迁移完成的情况下,根据第一哈希树构建规则构建所述第一数据库集群的第一节点哈希树以及所述第二数据库集群的第二节点哈希树,其中,所述第一哈希树构建规则包括:根据数据库集群包括的数据节点存储的数据的哈希值构建节点哈希树;
根据第二哈希树构建规则构建第一数据库集群哈希树以及第二数据库集群哈希树,其中,所述第二哈希树构建规则包括:根据节点哈希树的根节点的哈希值,构建数据库集群哈希树;
比较所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值,在所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值一致的情况下,确定所述第一数据库集群和所述第二数据库集群的数据一致。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的分布式数据库集群的数据一致性检验方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述分布式数据库集群的数据一致性检验方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于实现下述方法:
在检测到从第一数据库集群至第二数据库集群的数据迁移完成的情况下,根据第一哈希树构建规则构建所述第一数据库集群的第一节点哈希树以及所述第二数据库集群的第二节点哈希树,其中,所述第一哈希树构建规则包括:根据数据库集群包括的数据节点存储的数据的哈希值构建节点哈希树;
根据第二哈希树构建规则构建第一数据库集群哈希树以及第二数据库集群哈希树,其中,所述第二哈希树构建规则包括:根据节点哈希树的根节点的哈希值,构建数据库集群哈希树;
比较所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值,在所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值一致的情况下,确定所述第一数据库集群和所述第二数据库集群的数据一致。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的分布式数据库集群的数据一致性检验方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述分布式数据库集群的数据一致性检验方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (12)
1.一种分布式数据库集群的数据一致性检验方法,所述方法包括:
在检测到从第一数据库集群至第二数据库集群的数据迁移完成的情况下,根据第一哈希树构建规则构建所述第一数据库集群的第一节点哈希树以及所述第二数据库集群的第二节点哈希树,其中,所述第一哈希树构建规则包括:根据数据库集群包括的数据节点存储的数据的哈希值构建节点哈希树;
根据第二哈希树构建规则构建第一数据库集群哈希树以及第二数据库集群哈希树,其中,所述第二哈希树构建规则包括:根据节点哈希树的根节点的哈希值,构建数据库集群哈希树;
比较所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值,在所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值一致的情况下,确定所述第一数据库集群和所述第二数据库集群的数据一致。
2.根据权利要求1所述的方法,根据数据库集群包括的数据节点存储的数据的哈希值构建节点哈希树,包括:
获取所述数据库集群包括的数据节点存储的数据;
按照第一长度对所述数据进行划分,得到至少两个数据分段;
以所述至少两个数据分段的数据的哈希值为叶子节点,构建所述节点哈希树。
3.根据权利要求2所述的方法,以所述至少两个数据分段的数据的哈希值为叶子节点,构建所述节点哈希树,包括:
针对所述至少两个数据分段中的每个数据分段,通过第一哈希算法计算得到所述每个数据分段的数据的哈希值;
将计算得到的至少两个所述哈希值作为第i层的叶子节点,对所述第i层的叶子节点的哈希值进行第一组合运算,得到第i+1层的叶子节点,其中,所述i大于等于1;
确定所述第i+1层的叶子节点的个数是否等于1,若是,则将所述第i+1层的叶子节点确定为根节点;若否,则将i自增1,返回执行对所述第i层的叶子节点的哈希值进行第一组合运算,得到第i+1层的叶子节点的操作步骤;
根据得到的各层所述叶子节点和所述根节点构建得到所述节点哈希树,并存储根节点和数据节点的标识之间的对应关系。
4.根据权利要求1所述的方法,根据节点哈希树的根节点的哈希值,构建数据库集群哈希树,包括:
将所述节点哈希树的根节点的哈希值作为第k层的叶子节点;
对所述第k层的叶子节点的哈希值进行第二组合运算,得到第k+1层的叶子节点,其中,所述k大于等于1;
确定所述第k+1层的叶子节点的个数是否等于1,若是,则将所述第k+1层的叶子节点确定为根节点;若否,则将k自增1,返回执行对所述第k层的叶子节点的哈希值进行第二组合运算,得到第k+1层的叶子节点的操作步骤;
根据得到的各层所述叶子节点和所述根节点构建得到所述数据库集群哈希树。
5.根据权利要求1所述的方法,所述方法还包括:
在所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值不一致的情况下,从所述根节点依次向叶子节点方向,比较所述第一数据库集群哈希树和所述第二数据库集群哈希树包括的叶子节点的哈希值,确定至少两个第一目标叶子节点;
根据所述至少两个第一目标叶子节点,确定对应的至少两个目标数据节点。
6.根据权利要求5所述的方法,根据所述第一目标叶子节点,确定对应的目标数据节点之后,还包括:
获取所述第一数据库集群中的目标数据节点对应的第一目标节点哈希树,并获取所述第二数据库集群中的目标数据节点对应的第二目标节点哈希树;
从所述第一目标节点哈希树和所述第二目标节点哈希树的根节点依次向叶子节点方向,比较所述第一目标节点哈希树和所述第二目标节点哈希树包括的叶子节点的哈希值,确定第二目标叶子节点;
根据所述第二目标叶子节点,确定对应的数据分段。
7.根据权利要求5所述的方法,所述第一数据库集群哈希树和所述第二数据库集群哈希树均包括p层叶子节点,其中,所述p大于等于1;
比较所述第一数据库集群哈希树和所述第二数据库集群哈希树包括的叶子节点的哈希值,确定第一目标叶子节点,包括:
比较所述第一数据库集群哈希树和所述第二数据库集群哈希树中的第p层的叶子节点的哈希值;
将所述第一数据库集群哈希树和所述第二数据库集群哈希树中第p层的叶子节点中哈希值不同的叶子节点确定为第三目标叶子节点;
将所述p自减1,判断所述p是否等于0,若是,则将所述第三目标叶子节点确定为所述第一目标叶子节点;若否,则将所述第三目标叶子节点下属的叶子节点作为第p层的叶子节点,返回执行所述比较所述第一数据库集群哈希树和所述第二数据库集群哈希树中的第p层的叶子节点的哈希值的操作步骤。
8.根据权利要求2所述的方法,获取所述数据库集群包括的数据节点存储的数据,包括:
确定从所述第一数据库集群至所述第二数据库集群进行数据迁移的迁移方式;
在所述迁移方式为不停写迁移的情况下,确定数据迁移完成时间点,获取所述数据迁移完成时间点之前所述数据库集群包括的数据节点存储的数据;
在所述迁移方式为停写迁移的情况下,获取所述数据库集群包括的数据节点存储的全量数据。
9.根据权利要求3所述的方法,对所述第i层的叶子节点的哈希值进行第一组合运算,得到第i+1层的叶子节点,包括:
对所述第i层的叶子节点按照第一分组规则进行划分,得到多个第一叶子节点组合;
针对每个所述第一叶子节点组合,将所述第一叶子节点组合中包括的叶子节点进行目标运算,得到所述第i+1层的叶子节点。
10.一种分布式数据库集群的数据一致性检验装置,所述装置包括:
第一构建模块,被配置为在检测到从第一数据库集群至第二数据库集群的数据迁移完成的情况下,根据第一哈希树构建规则构建所述第一数据库集群的第一节点哈希树以及所述第二数据库集群的第二节点哈希树,其中,所述第一哈希树构建规则包括:根据数据库集群包括的数据节点存储的数据的哈希值构建节点哈希树;
第二构建模块,被配置为根据第二哈希树构建规则构建第一数据库集群哈希树以及第二数据库集群哈希树,其中,所述第二哈希树构建规则包括:根据节点哈希树的根节点的哈希值,构建数据库集群哈希树;
第一确定模块,被配置为比较所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值,在所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值一致的情况下,确定所述第一数据库集群和所述第二数据库集群的数据一致。
11.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,以实现下述方法:
在检测到从第一数据库集群至第二数据库集群的数据迁移完成的情况下,根据第一哈希树构建规则构建所述第一数据库集群的第一节点哈希树以及所述第二数据库集群的第二节点哈希树,其中,所述第一哈希树构建规则包括:根据数据库集群包括的数据节点存储的数据的哈希值构建节点哈希树;
根据第二哈希树构建规则构建第一数据库集群哈希树以及第二数据库集群哈希树,其中,所述第二哈希树构建规则包括:根据节点哈希树的根节点的哈希值,构建数据库集群哈希树;
比较所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值,在所述第一数据库集群哈希树和所述第二数据库集群哈希树的根节点的哈希值一致的情况下,确定所述第一数据库集群和所述第二数据库集群的数据一致。
12.一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现权利要求1至9任意一项所述分布式数据库集群的数据一致性检验方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011211408.5A CN113297235B (zh) | 2020-11-03 | 2020-11-03 | 分布式数据库集群的数据一致性检验方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011211408.5A CN113297235B (zh) | 2020-11-03 | 2020-11-03 | 分布式数据库集群的数据一致性检验方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113297235A true CN113297235A (zh) | 2021-08-24 |
CN113297235B CN113297235B (zh) | 2023-12-19 |
Family
ID=77318438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011211408.5A Active CN113297235B (zh) | 2020-11-03 | 2020-11-03 | 分布式数据库集群的数据一致性检验方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297235B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902617A (zh) * | 2012-12-28 | 2014-07-02 | 华为技术有限公司 | 分布式数据库同步方法和*** |
CN110264187A (zh) * | 2019-01-23 | 2019-09-20 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
WO2019178772A1 (zh) * | 2018-03-21 | 2019-09-26 | 深圳蓝贝科技有限公司 | 数据库主从区块一致性校验方法、装置和*** |
-
2020
- 2020-11-03 CN CN202011211408.5A patent/CN113297235B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902617A (zh) * | 2012-12-28 | 2014-07-02 | 华为技术有限公司 | 分布式数据库同步方法和*** |
WO2014101424A1 (zh) * | 2012-12-28 | 2014-07-03 | 华为技术有限公司 | 分布式数据库同步方法和*** |
WO2019178772A1 (zh) * | 2018-03-21 | 2019-09-26 | 深圳蓝贝科技有限公司 | 数据库主从区块一致性校验方法、装置和*** |
CN110264187A (zh) * | 2019-01-23 | 2019-09-20 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
武泽慧;魏强;: "基于OwnShip-Proof模型的软件定义网络控制器集群故障安全恢复方法", 信息网络安全, no. 12 * |
赵蒙;王雷;匡林爱;叶松涛;刘栋;: "基于Merkle哈希树的范围查询验证技术", 东南大学学报(自然科学版), no. 1 * |
Also Published As
Publication number | Publication date |
---|---|
CN113297235B (zh) | 2023-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106980623B (zh) | 一种数据模型的确定方法及装置 | |
US8898120B1 (en) | Systems and methods for distributed data deduplication | |
US20180113928A1 (en) | Multiple record linkage algorithm selector | |
CN112434742A (zh) | 一种识别以太坊上庞氏骗局的方法、***及设备 | |
CN108563951B (zh) | 病毒检测方法及装置 | |
CN112162977B (zh) | 一种面向mes的海量数据去冗余方法和*** | |
CN111701247B (zh) | 用于确定统一账号的方法和设备 | |
CN112231514B (zh) | 一种数据去重方法、装置及存储介质和服务器 | |
CN109783457B (zh) | Cgi接口管理方法、装置、计算机设备和存储介质 | |
US9747274B2 (en) | String comparison results for character strings using frequency data | |
CN114282073A (zh) | 数据存储方法及装置、数据读取方法及装置 | |
US20230056760A1 (en) | Method and apparatus for processing graph data, device, storage medium, and program product | |
CN115905309A (zh) | 相似实体搜索方法、装置、计算机设备及可读存储介质 | |
CN114329455B (zh) | 基于异构图嵌入的用户异常行为检测方法及装置 | |
CN117216239A (zh) | 文本去重方法、装置、计算机设备及存储介质 | |
CN113297235B (zh) | 分布式数据库集群的数据一致性检验方法及装置 | |
Babu et al. | A distributed approach to weighted frequent Subgraph mining | |
CN115858487A (zh) | 一种数据迁移方法及装置 | |
CN110874465B (zh) | 基于半监督学习算法的移动设备实体识别方法及装置 | |
CN116432633A (zh) | 地址纠错方法、装置、计算机设备及可读介质 | |
WO2021012211A1 (zh) | 一种为数据建立索引的方法以及装置 | |
CN110968267A (zh) | 数据管理方法、装置、服务器及*** | |
Agrawal et al. | Delog: A privacy preserving log filtering framework for online compute platforms | |
US11687572B2 (en) | Computer security using context triggered piecewise hashing | |
CN116415237B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40057459 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |