CN113934745A - 数据同步处理方法、电子设备以及存储介质 - Google Patents

数据同步处理方法、电子设备以及存储介质 Download PDF

Info

Publication number
CN113934745A
CN113934745A CN202010609672.8A CN202010609672A CN113934745A CN 113934745 A CN113934745 A CN 113934745A CN 202010609672 A CN202010609672 A CN 202010609672A CN 113934745 A CN113934745 A CN 113934745A
Authority
CN
China
Prior art keywords
execution plan
node
sql
sql execution
hash value
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
CN202010609672.8A
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.)
Jinzhuan Xinke Co Ltd
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN202010609672.8A priority Critical patent/CN113934745A/zh
Priority to PCT/CN2021/101542 priority patent/WO2022001750A1/zh
Publication of CN113934745A publication Critical patent/CN113934745A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/242Query formulation
    • G06F16/2433Query languages
    • 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/22Indexing; Data structures therefor; Storage structures
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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/242Query formulation
    • 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
    • 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
    • G06F16/275Synchronous replication

Landscapes

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

Abstract

本发明公开了一种数据同步处理方法、电子设备以及存储介质,所述方法包括主节点接收客户端发送的SQL语句;生成SQL执行计划;将所述SQL执行计划发送给从节点;执行所述SQL执行计划;获取所述主节点的第一增量日志,对所述第一增量日志的数据进行哈希计算,得到第一哈希值;接收每个所述从节点发送的第二哈希值,根据所述第一哈希值和所述第二哈希值确定同步结果。本发明实施例的方案,一方面,主节点和从节点同时执行SQL执行计划,实现了对主节点和从节点进行并行式的同步复制,大大提高了数据库同步处理的效率,减少数据的延迟;另一方面,通过哈比算法对主节点和节点的增量日志进行对比,根据对比结果确定同步结果,能够保证数据同步的一致性。

Description

数据同步处理方法、电子设备以及存储介质
技术领域
本发明涉及分布式数据库技术领域,特别是涉及一种数据同步处理方法、电子设备以及存储介质。
背景技术
现有的分布式数据库的数据同步方案主要有异步复制、全同步复制和半同步复制三种。其中,异步复制方案对数据库的执行效率影响最小,但容易出现主节点和从节点之间数据不一致的情况;全同步复制方案虽然能保证主节点和从节点之间数据同步的一致性,但是对分布式数据库***的性能影响很大,效率较低,不适用于高并发应用场景;半同步复制方案虽然兼顾了效率和数据一致性,但仍然存在至少一个增量日志同步落盘周期的数据延迟。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例提供了一种数据同步处理方法、电子设备以及存储介质,能够确保数据同步的一致性和提升数据同步效率。
一方面,本发明实施例提供了一种数据同步处理方法,应用于主节点,所述方法包括:
接收客户端发送的结构化查询语言SQL语句;
对所述SQL语句进行解析并生成SQL执行计划,并将所述SQL执行计划发送给至少一个从节点;
执行所述SQL执行计划;
获取所述主节点执行所述SQL执行计划时产生的第一增量日志,对所述第一增量日志的数据进行哈希计算,得到第一哈希值;
接收每个所述从节点发送的第二哈希值,其中,所述第二哈希值是对所述从节点执行所述SQL执行计划时产生的第二增量日志的数据进行哈希计算得到;
根据所述第一哈希值和所述第二哈希值确定同步结果;
根据所述同步结果发送操作结果信息给所述客户端。
另一方面,本发明实施例提供了一种数据同步处理方法,应用于主节点,所述方法包括:
接收客户端发送的结构化查询语言SQL语句;
将所述SQL语句发送给至少一个从节点;
对所述SQL语句进行解析并生成SQL执行计划;
执行所述SQL执行计划;
获取所述主节点执行所述SQL执行计划产生的第一增量日志,对所述第一增量日志的数据进行哈希计算,得到第一哈希值;
接收每个所述从节点发送的第二哈希值,其中,所述第二哈希值是对所述从节点执行根据所述SQL语句生成的SQL执行计划产生的第二增量日志的数据进行哈希计算得到;
根据所述第一哈希值和所述第二哈希值确定同步结果;
根据所述同步结果发送操作结果信息给所述客户端。
另一方面,本发明实施例提供了一种数据同步处理方法,应用于从节点,所述方法包括:
接收主节点发送的SQL执行计划;
执行所述SQL执行计划;
获取所述从节点执行所述SQL执行计划产生的第二增量日志,对所述第二增量日志的数据进行哈希计算,得到第二哈希值;
发送所述第二哈希值至所述主节点,以使所述主节点根据第一哈希值和所述第二哈希值确定同步结果,其中,所述第一哈希值对所述主节点执行所述SQL执行计划产生的增量日志的数据进行哈希计算得到。
另一方面,本发明实施例提供了一种数据同步处理方法,应用于从节点,所述方法包括:
接收主节点发送的SQL语句;
对所述SQL语句进行解析并生成SQL执行计划;
执行所述SQL执行计划;
获取所述从节点执行所述SQL执行计划产生的第二增量日志,对所述第二增量日志的数据进行哈希计算,得到第二哈希值;
发送所述第二哈希值至所述主节点,以使所述主节点根据第一哈希值和所述第二哈希值确定同步结果,其中,所述第一哈希值对所述主节点执行所述SQL执行计划产生的增量日志的数据进行哈希计算得到。
另一方面,本发明实施例提供了一种电子设备,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的程序,当所述处理器执行所述存储器存储的程序时,所述处理器用于执行如上所述的任一项数据同步处理方法。
再一方面,本发明实施例提供了一种存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如上所述的任一项数据同步处理方法。
本发明实施例包括:主节点接收客户端发送的结构化查询语言SQL语句;主节点对所述SQL语句进行解析并生成SQL执行计划后将所述SQL执行计划发送给至少一个从节点,或者直接将所述SQL语句发送给至少一个从节点;主节点执行所述SQL执行计划;主节点获取所述主节点执行所述SQL执行计划产生的第一增量日志,对所述第一增量日志的数据进行哈希计算,得到第一哈希值;主节点接收每个所述从节点发送的第二哈希值,其中,所述第二哈希值是对所述从节点执行所述SQL执行计划产生的第二增量日志的数据进行哈希计算得到;主节点根据所述第一哈希值和所述第二哈希值确定同步结果。本发明实施例的方案,一方面,主节点和从节点同时执行SQL执行计划,实现了对主节点和从节点进行并行式的同步复制,大大提高了数据库同步处理的效率,减少数据的延迟;另一方面,通过哈比算法对主节点和节点的增量日志进行对比,根据对比结果确定同步结果,能够保证数据同步的一致性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1是本发明实施例提供的一种应用于主节点的数据同步处理方法的流程图;
图2a是本发明实施例提供的另一种应用于主节点的数据同步处理方法的流程图;
图2b是本发明实施例提供的另一种应用于主节点的数据同步处理方法的流程图;
图3是本发明实施例提供的另一种应用于主节点的数据同步处理方法的流程图;
图4是本发明实施例提供的另一种应用于主节点的数据同步处理方法的流程图;
图5是本发明实施例提供的一种应用于从节点的数据同步处理方法的流程图;
图6是本发明实施例提供的另一种应用于从节点的数据同步处理方法的流程图;
图7是本发明实施例提供的另一种应用于从节点的数据同步处理方法的流程图;
图8是本发明实施例提供的另一种应用于从节点的数据同步处理方法的流程图;
图9是本发明实施例提供的一种数据同步处理方法的应用场景示意图;
图10是本发明实施例提供的一种数据同步处理方法应用于图9所示场景的示例性流程图;
图11是本发明实施例提供的另一种数据同步处理方法应用于图9所示场景的示例性流程图;
图12是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
应了解,在本发明实施例的描述中,多个(或多项)的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到“第一”、“第二”等只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。
现有的分布式数据库的数据同步方案主要有异步复制、全同步复制和半同步复制三种。
异步复制方案是主节点在完成执行客户端提交的事务后立刻返回执行结果给客户端,并不关心从节点与主节点之间的数据差距以及数据回放的程度,这样就容易出现主节点和从节点之间数据不一致的情况。若主节点发生崩溃,此时主节点已经提交的事务可能并没有传到从节点上,如果此时,强行将从节点提升为主节点,可能导致新主节点上的数据不完整。
全同步复制方案指主节点在完成执行客户端提交的事务后,向各个从节点发送执行事务产生的增量日志,从节点对接收到的增量操作日志进行解析回放后提交该事务,主节点等待所有的从节点都执行了该事务提交后才返回执行结果给客户端。因为需要等待所有从节点执行完该事务才能返回执行结果给客户端,所以全同步复制的***性能必然会收到严重的影响。
半同步复制方案介于异步复制和全同步复制之间,主节点在完成执行客户端提交的事务后,向各个节点发送执行事务产生的增量日志,等待至少一个节点接收到增量日志并且将增量日志成功写入中继日志后,即返回结果给客户端。半同步复制方案虽然兼顾了效率和数据一致性,但仍然存在至少一个增量日志同步落盘周期的数据延迟。
为此,本发明实施例提供了一种数据同步处理方法、电子设备以及存储介质,能够确保数据同步的一致性和提升数据同步效率。
图1示出了本发明实施例提供的一种数据同步处理方法的流程图。如图1所示,该数据同步处理方法应用于分布式数据库***的主节点,该方法至少包括但不限于如下的步骤S100至S150。
步骤S100,主节点接收客户端发送的结构化查询语言(Structured QueryLanguage,简称SQL)语句。
应理解,本发明实施例中客户端发送的SQL语句为用于描述客户端提交的事务的语句。
步骤S110a,主节点对SQL语句进行解析并生成SQL执行计划。
步骤S110b,将SQL执行计划发送给至少一个从节点。
本发明实施例中,主节点在接收到客户端发送的SQL语句后,对SQL语句进行语句解析,并生成SQL执行计划。然后将将客户端发送的SQL执行计划同步至一个或者多个从节点,以使各个从节点执行该SQL执行计划。
步骤S120,主节点执行SQL执行计划。
应理解,在具体实现时,主节点在执行SQL执行计划的同时,各个从节点也在执行主节点转发的SQL执行计划,以达到主节点和从节点并行执行SQL执行计划的目的。
步骤S130,主节点获取主节点执行SQL执行计划产生的第一增量日志,对第一增量日志的数据进行哈希计算,得到第一哈希值。
示例性的,主节点在执行SQL执行计划时,会产生相应的事务日志信息,用以记录主节点执行SQL执行计划时的相关操作信息。上述的事务日志信息通常会写入主节点的操作日志中,通常情况下,该操作日志存储在主节点的数据库存储引擎中。事务日志信息写入主节点的操作日志后,主节点操作日志中新增加的日志内容即为上述的第一增量日志。本发明实施例采用哈希算法对该第一增量日志的数据进行计算处理,得到第一哈希值。
步骤S140,主节点接收每个从节点发送的第二哈希值,其中,第二哈希值是对从节点执行SQL执行计划产生的第二增量日志的数据进行哈希计算得到。
示例性的,从节点接收到主节点同步发送的SQL执行计划后,执行该SQL执行计划。从节点在执行SQL执行计划时,也会产生相应的事务日志信息,并写入从节点的操作日志中。从节点从自身的操作日志中获取第二增量日志,并采用哈希算法对第二增量日志的数据进行计算处理,得到第二哈希值。本发明实施例中,各个从节点分别将各自计算得到的第二哈希值发给主节点,以使主节点对第一哈希值和第二哈希值进行后续的处理。
步骤S150,主节点根据第一哈希值和第二哈希值确定同步结果。
示例性的,主节点将第一哈希值与接收到的来自各个从节点的第二哈希值进行哈希对比,若对比结果为第一哈希值与各个第二哈希值相等,表明主节点与各个从节点执行SQL执行计划后的数据是一致的,即主节点与各个从节点的数据同步成功;若对比结果为存在一个或多个第二哈希值与第一哈希值不相等,表明存在一个或多个从节点执行SQL执行计划后的数据与主节点执行SQL执行计划后的数据不一致,也就是说这一个或多个从节点的数据同步失败。
步骤S160,根据同步结果发送操作结果信息给客户端。
在具体实现时,可以根据数据同步成功的从节点数量确定操作结果。例如在一个示例中,只要同步成功的从节点的数量满足预设的阈值,则认为执行客户端提交的事务成功,返回操作成功信息给客户端。例如在另一个示例中,当有任一个节点的数据同步失败,即认为执行客户端提交的事务失败,返回操作失败信息给客户端。应理解,本领域的技术人员可以根据需求定制具体的根据同步结果确定操作成功的条件,本发明实施例对此不作具体限定。
如图2a所示,在一些实施例中,在步骤S110b之后还包括如下的步骤S111a和S112a。
步骤S111a,主节点启动计时器,并在计时器未超时的情况下,接收从节点发送的第一回复信息,其中,第一回复信息指示从节点接收SQL执行计划成功或者失败;
步骤S112a,主节点根据接收到的第一回复信息判断接收SQL执行计划成功的从节点数量是否满足第一预设阈值。
示例性的,当主节点向各个从节点发送SQL执行计划之后启动计时器以使计时开始,当计时器已超时且存在未发送第一回复信息的从节点,则可确定未发送第一回复信息的从节点接收SQL执行计划失败,进而可确定未发送第一回复信息的从节点进行数据同步失败。本发明实施例通过计时器进行计时,避免等待回复信息的时间过长而造成数据时延增大。
本发明实施例中,主节点在接收SQL执行计划成功的从节点数量满足第一预设阈值的情况下,才执行后续的步骤S120。具体的,可以根据各从节点发送的第一回复信息以及当计时器已超时仍未发送第一回复信息的从节点数量,确定接收SQL执行计划成功的从节点数量。
作为示例,主节点向4个从节点分别发送了SQL执行计划,接着启动计时器。当计时器超时后,仅接收到3个从节点反馈的第一回复信息且接收到的第一回复消息均指示相应的从节点接收SQL执行计划成功,则表明有1个节点接收SQL执行计划失败。假设第一预设阈值为2并要求当前接收SQL执行计划成功的从节点数量要大于等于第一预设阈值,即当前接收SQL执行计划成功的从节点数量满足第一预设阈值,主节点继续执行步骤S120。当然,第一预设阈值也可以设置为与从节点数量相等,即要求当前所有从节点均接收SQL执行计划成功,才允许执行后续的步骤S120。
如图2b所示,在一些实施例中,在步骤S120之后,还包括:
步骤S121,主节点接收从节点发送的第二回复信息,并根据接收到的第二回复信息确定执行SQL执行计划成功的从节点数量,其中,第二回复信息指示从节点执行SQL执行计划成功或者失败;
步骤S122,主节点判断是否主节点执行SQL执行计划成功且执行SQL执行计划成功的节点数量满足第二预设阈值。
在具体实现时,如果存在一个或者多个节点若执行SQL执行计划失败,该执行SQL执行计划失败的一个或者多个节点发送第二回复信息给主节点。主节点根据接收到的第二回复信息的数量确定成功执行SQL执行计划的节点数量。
本发明实施例,在主节点执行SQL执行计划成功且执行SQL执行计划成功的节点数量满足第二预设阈值的情况下,才允许执行后续的步骤S130。如果主节点执行SQL执行计划失败或者执行SQL执行计划成功的从节点数量不满足第二预设阈值,则终止执行后续的步骤,并直接向客户端发送操作失败信息。
作为示例,主节点向4个节点分别发送了SQL执行计划,且4个从节点均接收SQL执行计划成功。当主节点和各从节点并行执行SQL执行计划时,存在1个从节点执行SQL执行计划失败并向主节点反馈了指示执行SQL执行计划失败的第二回复信息。假设第二预设阈值为2并要求当前成功执行SQL执行计划的从节点数量大于等于第二预设阈值,即当前成功执行SQL执行计划的从节点数量满足第二预设阈值,所以主节点允许执行后续的步骤S130。当然,第二预设阈值也可以设置为与从节点数量相等,即要求当前所有从节点均执行SQL执行计划成功后,才允许执行后续的步骤S130。
如图3所示,在另一种实施例中,步骤S110a可以替换成步骤S110c,主节点将SQL语句发送给至少一个从节点;步骤S110b可以替换成步骤S110d,主节点对SQL语句进行解析并生成SQL执行计划。
本实施例中,主节点直接将接收到的来自客户端的SQL语句发送给从节点。从节点接收到主节点发送的SQL语句后,对该SQL语句进行解析并生成SQL执行计划;然后从节点执行该SQL执行计划。
应理解,步骤S110c和步骤S110d的顺序可互换。
如图4所示,步骤S110c之后还可以包括:步骤S111b,主节点启动计时器,并在计时器未超时的情况下,接收从节点发送的第一回复信息,其中,第一回复信息指示从节点接收SQL语句成功或者失败。
步骤S111b之后包括步骤S112b,主节点根据接收到的第一回复信息判断接收SQL语句成功的从节点数量是否满足第一预设阈值。
示例性的,当主节点向各个从节点发送SQL语句之后启动计时器以使计时开始,当计时器已超时且存在未发送第一回复信息的从节点,则可确定未发送第一回复信息的从节点接收SQL语句失败,进而可确定未发送第一回复信息的从节点进行数据同步失败。本发明实施例通过计时器进行计时,避免等待回复信息的时间过长而造成数据时延增大。
本发明实施例中,主节点在接收SQL语句成功的从节点数量满足第一预设阈值的情况下,才执行后续的步骤。具体的,可以根据各从节点发送的第一回复信息以及当计时器已超时仍未发送第一回复信息的从节点数量,确定接收SQL语句成功的从节点数量。
图5示出了本发明实施例提供的一种数据同步处理方法的流程图。如图5所示,该数据同步处理方法应用于分布式数据库***的节点,该方法至少包括但不限于如下的步骤S200a至S230。
步骤S200a,从节点接收主节点发送的SQL执行计划。
示例性的,主节点在接收到客户端发送的SQL执行计划后,将客户端发送的SQL执行计划同步至从节点。
步骤S210,从节点执行SQL执行计划。
示例性的,从节点接收来自主节点的SQL执行计划后,可以对SQL执行计划进行解析并执行,实现与主节点并行执行SQL执行计划,将主节点的数据同步复制至从节点中。
步骤S220,从节点获取从节点执行SQL执行计划产生的第二增量日志,对第二增量日志的数据进行哈希计算,得到第二哈希值。
示例性的,从节点执行SQL执行计划时,会产生相应的事务日志信息,用以记录从节点执行SQL执行计划时的相关操作信息。上述的事务日志信息通常会写入从节点的操作日志中,通常情况下,该操作日志存储在从节点的数据库存储引擎中。事务日志信息写入从节点的操作日志后,从节点操作日志中新增加的日志内容即为上述的第二增量日志。本发明实施例采用哈希算法对从节点的第二增量日志的数据进行计算处理,得到第二哈希值。
步骤S230,从节点发送第二哈希值至主节点,以使主节点根据第一哈希值和第二哈希值确定同步结果。
其中,第一哈希值为上述步骤S130中主节点对自身执行SQL执行计划产生的第一增量日志的数据进行哈希计算得到。
示例性的,本发明实施例中从节点将第二哈希值发送给主节点,主节点接收到来自本从节点的第二哈希值后,将第一哈希值与第二哈希值进行哈希对比,若对比结果为第一哈希值与第二哈希值相等,表明主节点与本从节点执行SQL执行计划后的数据是一致的,即主节点与本从节点的数据同步成功;若对比结果为第一哈希值与第二哈希值不相等,表明本从节点执行SQL执行计划后的数据与主节点执行SQL执行计划后的数据不一致,也就是说本从节点同步主节点的数据失败。
如图6所示,可选的,在步骤S200a之后还包括:步骤S201a,发送第一回复信息给主节点,其中,第一回复信息指示从节点接收SQL执行计划成功或者失败。
当从节点完成接收到主节点发送的SQL执行计划后,发送第一回复信息给主节点,以使主节点确定从节点是否接受SQL执行计划成功,进而判断是否要执行后续的步骤。
如图6所示,可选的,在步骤S210之后还包括:步骤S211,发送第二回复信息给主节点,其中,第二回复信息指示从节点执行SQL执行计划成功或者失败。
当从节点完成执行SQL执行计划后,发送第二回复信息给主节点,以使主节点确定从节点是否执行SQL执行计划成功,进而判断是否要执行后续的步骤。
如图7所示,步骤S200a可替换成如下的步骤S200b和S200c:
S200b,从节点接收主节点发送的SQL语句;
S200c,对所述SQL语句进行解析并生成SQL执行计划。
在一些可能的实施例中,主节点直接将客户端发送的SQL语句转发给从节点。从节点接收到主节点发送的SQL语句后,需要对所述SQL语句进行解析并生成SQL执行计划,再执行后续的步骤S210。
如图8所示,步骤S200b和S200c之间可以包括步骤S201b,发送第一回复信息给主节点,其中,第一回复信息指示从节点接收SQL语句成功或者失败。
以下结合具体的实例对本发明实施例提供的数据同步处理方法作进一步说明。如图9所示,在一种应用场景中,分布式数据库***包括客户端10、主节点20和从节点30。当本发明实施例提供的数据同步处理方法应用于图10所示场景时,具体可以包括如图10所示的示例性步骤S300至S309。
步骤S300,主节点20接收客户端10发送的SQL语句。
步骤S301,主节点20对SQL语句进行解析并生成SQL执行计划。应理解,在对SQL语句进行解析成功的情况下,主节点20才执行后续的步骤S302,否则发送操作失败信息给客户端10。
步骤S302,主节点20将SQ执行计划发送给从节点30。
步骤S303,当从节点30成功接收主节点20发送的SQL执行计划后,发送用以指示自身接收SQL执行计划成功的第一回复信息给主节点20。
步骤S304a,主节点20执行SQL执行计划;
步骤S304b,从节点30执行SQL执行计划;
步骤S305,从节点30发送用以指示自身执行SQL执行计划成功的第二回复信息给主节点20。
步骤S306a,主节点20获取自身执行SQL执行计划产生的第一增量日志,对第一增量日志的数据进行哈希计算,得到第一哈希值;
步骤S306b,从节点30获取自身执行SQL执行计划产生的第二增量日志,对第二增量日志的数据进行哈希计算,得到第二哈希值;
步骤S307,从节点30将第二哈希值发送给主节点20。
步骤S308,主节点20将第一哈希值和第二哈希值进行对比,根据对比结果确定同步结果。
步骤S309,主节点20根据同步结果发送操作结果信息给客户端10。具体的,如果同步结果为同步成功则发送操作成功信息给客户端10,否则发送操作失败信息给客户端10。
应理解,上述的步骤S304a和S304b为能够并行执行的步骤;步骤S306a和S306b为能够并行执行的步骤。
当本发明实施例提供的数据同步处理方法应用于图9所示场景时,具体还可以包括如图11所示的示例性步骤S400至S410。
步骤S400,主节点20接收客户端10发送的SQL语句。
步骤S401,主节点20将SQL语句转发给从节点30。
步骤S402,当从节点30成功接收主节点20发送的SQL语句后,发送用以指示自身接收SQL语句成功的第一回复信息给主节点20。
步骤S403a,主节点20对SQL语句进行解析并生成SQL执行计划。
步骤S403b,从节点30对SQL语句进行解析并生成SQL执行计划。
步骤S404a,主节点20执行SQL执行计划;
步骤S404b,从节点30执行SQL执行计划;
步骤S405,从节点30发送用以指示自身执行SQL执行计划成功的第二回复信息给主节点20。
步骤S406a,主节点20获取自身执行SQL执行计划产生的第一增量日志,对第一增量日志的数据进行哈希计算,得到第一哈希值;
步骤S406b,从节点30获取自身执行SQL执行计划产生的第二增量日志,对第二增量日志的数据进行哈希计算,得到第二哈希值;
步骤S407,从节点30将第二哈希值发送给主节点20。
步骤S408,主节点20将第一哈希值和第二哈希值进行对比,根据对比结果确定同步结果。
步骤S409,主节点20根据同步结果发送操作结果信息给客户端10。具体的,如果同步结果为同步成功则发送操作成功信息给客户端10,否则发送操作失败信息给客户端10。
传统的数据同步方案中,待主节点完成执行SQL执行计划后,再将相应的增量日志发送给节点进行解析回放,相当于串行的数据复制方式。而根据本发明实施例的方案,主节点和节点同步执行SQL执行计划,相当于主节点和节点进行并行的数据复制,相比传统的数据同步方案,本发明实施例的方案能够大大提高了数据库同步处理的效率,减少数据的延迟,提升了分布式数据库***的性能,减少了对客户端提交事务的处理时间,进而提升用户的体验。
此外,本发明实施例通过哈比算法对主节点和节点的增量日志进行对比,并根据对比结果确定同步结果,能够保证数据同步的一致性。
图12示出了本发明实施例提供的电子设备40。如图12所示,该电子设备40包括但不限于:
存储器42,用于存储程序;
处理器41,用于执行存储器42存储的程序,当处理器41执行存储器42存储的程序时,处理器41用于执行上述任一实施例的数据同步处理方法。
处理器41和存储器42可以通过总线或者其他方式连接。
存储器42作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本发明实施例描述的任一种数据同步处理方法。处理器41通过运行存储在存储器42中的非暂态软件程序以及指令,从而实现上述任一实施例的数据同步处理方法。
存储器42可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储执行上述的数据同步处理方法。此外,存储器42可以包括高速随机存取存储器,还可以包括非暂态存储器,比如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器42可选包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至该处理器41。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述的数据同步处理方法所需的非暂态软件程序以及指令存储在存储器42中,当被一个或者多个处理器41执行时,执行上述任一实施例的数据同步处理方法。
本发明实施例还提供了一种存储介质,存储有计算机可执行指令,计算机可执行指令用于执行上述任一实施例的数据同步处理方法。
在一实施例中,该存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器41执行,比如,被上述电子设备40中的一个处理器41执行,可使得上述一个或多个处理器41执行上述任一实施例的数据同步处理方法。
以上所描述的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包括计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的。共享条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本发明权利要求所限定的范围内。

Claims (18)

1.一种数据同步处理方法,应用于主节点,所述方法包括:
接收客户端发送的结构化查询语言SQL语句;
对所述SQL语句进行解析并生成SQL执行计划;
将所述SQL执行计划发送给至少一个从节点;
执行所述SQL执行计划;
获取所述主节点执行所述SQL执行计划时产生的第一增量日志,对所述第一增量日志的数据进行哈希计算,得到第一哈希值;
接收每个所述从节点发送的第二哈希值,其中,所述第二哈希值是对所述从节点执行所述SQL执行计划时产生的第二增量日志的数据进行哈希计算得到;
根据所述第一哈希值和所述第二哈希值确定同步结果;
根据所述同步结果发送操作结果信息给所述客户端。
2.根据权利要求1所述的数据同步处理方法,其特征在于,当将所述SQL执行计划发送给至少一个从节点,还执行:
启动计时器;
在所述计时器未超时的情况下,接收所述从节点发送的第一回复信息,其中,所述第一回复信息指示所述从节点接收所述SQL执行计划成功或者失败。
3.根据权利要求2所述的数据同步处理方法,其特征在于,所述执行所述SQL执行计划,包括:
在接收所述SQL执行计划成功的所述从节点数量满足第一预设阈值的情况下,执行所述SQL执行计划。
4.根据权利要求1所述的数据同步处理方法,其特征在于,当执行所述SQL执行计划,还接收所述从节点发送的第二回复信息,并根据接收到的第二回复信息确定执行SQL执行计划成功的从节点数量,其中,第二回复信息指示从节点执行SQL执行计划成功或者失败。
5.根据权利要求4所述的数据同步处理方法,其特征在于,所述获取所述主节点执行所述SQL执行计划产生的第一增量日志,包括:
在所述主节点执行所述SQL执行计划成功且执行所述SQL执行计划成功的所述节点数量满足第二预设阈值的情况下,获取所述主节点执行所述SQL执行计划产生的第一增量日志。
6.一种数据同步处理方法,应用于主节点,所述方法包括:
接收客户端发送的结构化查询语言SQL语句;
将所述SQL语句发送给至少一个从节点;
对所述SQL语句进行解析并生成SQL执行计划;
执行所述SQL执行计划;
获取所述主节点执行所述SQL执行计划产生的第一增量日志,对所述第一增量日志的数据进行哈希计算,得到第一哈希值;
接收每个所述从节点发送的第二哈希值,其中,所述第二哈希值是对所述从节点执行根据所述SQL语句生成的SQL执行计划产生的第二增量日志的数据进行哈希计算得到;
根据所述第一哈希值和所述第二哈希值确定同步结果;
根据所述同步结果发送操作结果信息给所述客户端。
7.根据权利要求6所述的数据同步处理方法,其特征在于,当将所述SQL语句发送给至少一个从节点,还执行:
启动计时器;
在所述计时器未超时的情况下,接收所述从节点发送的第一回复信息,其中,所述第一回复信息指示所述从节点接收所述SQL语句成功或者失败。
8.根据权利要求7所述的数据同步处理方法,其特征在于,所述执行所述SQL执行计划,包括:
在接收所述SQL语句成功的所述从节点数量满足第一预设阈值的情况下,执行所述SQL执行计划。
9.根据权利要求6所述的数据同步处理方法,其特征在于,当执行所述SQL执行计划,还接收所述从节点发送的第二回复信息,并根据接收到的第二回复信息确定执行所述SQL执行计划成功的从节点数量,其中,第二回复信息指示从节点执行所述SQL执行计划成功或者失败。
10.根据权利要求9所述的数据同步处理方法,其特征在于,所述获取所述主节点执行所述SQL执行计划产生的第一增量日志,包括:
在所述主节点执行所述SQL执行计划成功且执行所述SQL执行计划成功的所述节点数量满足第二预设阈值的情况下,获取所述主节点执行所述SQL执行计划产生的第一增量日志。
11.一种数据同步处理方法,应用于从节点,所述方法包括:
接收主节点发送的SQL执行计划;
执行所述SQL执行计划;
获取所述从节点执行所述SQL执行计划产生的第二增量日志,对所述第二增量日志的数据进行哈希计算,得到第二哈希值;
发送所述第二哈希值至所述主节点,以使所述主节点根据第一哈希值和所述第二哈希值确定同步结果,其中,所述第一哈希值对所述主节点执行所述SQL执行计划产生的增量日志的数据进行哈希计算得到。
12.根据权利要求11所述的数据同步处理方法,其特征在于,当接收主节点发送的SQL语句,还发送第一回复信息给所述主节点,其中,所述第一回复信息指示所述从节点接收所述SQL执行计划成功或者失败。
13.根据权利要求11所述的数据同步处理方法,其特征在于,当执行所述SQL语句,还发送第二回复信息给所述主节点,其中,所述第二回复信息指示所述从节点执行所述SQL执行计划成功或者失败。
14.一种数据同步处理方法,应用于从节点,所述方法包括:
接收主节点发送的SQL语句;
对所述SQL语句进行解析并生成SQL执行计划;
执行所述SQL执行计划;
获取所述从节点执行所述SQL执行计划产生的第二增量日志,对所述第二增量日志的数据进行哈希计算,得到第二哈希值;
发送所述第二哈希值至所述主节点,以使所述主节点根据第一哈希值和所述第二哈希值确定同步结果,其中,所述第一哈希值对所述主节点执行所述SQL执行计划产生的增量日志的数据进行哈希计算得到。
15.根据权利要求14所述的数据同步处理方法,其特征在于,当接收主节点发送的SQL语句,还发送第一回复信息给所述主节点,其中,所述第一回复信息指示所述从节点接收所述SQL语句成功或者失败。
16.根据权利要求14所述的数据同步处理方法,其特征在于,当执行所述SQL执行计划,还发送第二回复信息给所述主节点,其中,所述第二回复信息指示所述从节点执行所述SQL执行计划成功或者失败。
17.一种电子设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的程序,当所述处理器执行所述存储器存储的程序时,所述处理器用于执行:
如权利要求1至16中任一项所述的方法。
18.一种存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行:
如权利要求1至16中任一项所述的方法。
CN202010609672.8A 2020-06-29 2020-06-29 数据同步处理方法、电子设备以及存储介质 Pending CN113934745A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010609672.8A CN113934745A (zh) 2020-06-29 2020-06-29 数据同步处理方法、电子设备以及存储介质
PCT/CN2021/101542 WO2022001750A1 (zh) 2020-06-29 2021-06-22 数据同步处理方法、电子设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010609672.8A CN113934745A (zh) 2020-06-29 2020-06-29 数据同步处理方法、电子设备以及存储介质

Publications (1)

Publication Number Publication Date
CN113934745A true CN113934745A (zh) 2022-01-14

Family

ID=79272705

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010609672.8A Pending CN113934745A (zh) 2020-06-29 2020-06-29 数据同步处理方法、电子设备以及存储介质

Country Status (2)

Country Link
CN (1) CN113934745A (zh)
WO (1) WO2022001750A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116303791A (zh) * 2023-03-22 2023-06-23 合肥申威睿思信息科技有限公司 一种基于加速***的数据同步方法和装置
WO2024077802A1 (zh) * 2022-10-10 2024-04-18 上海商米科技集团股份有限公司 跨区域的数据同步方法、***及计算机可读介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115391457B (zh) * 2022-08-23 2023-09-12 昆仑数智科技有限责任公司 跨数据库的数据同步方法、装置及存储介质
CN116991635B (zh) * 2023-09-26 2024-01-19 武汉吧哒科技股份有限公司 数据同步方法和数据同步装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103268318A (zh) * 2013-04-16 2013-08-28 华中科技大学 一种强一致性的分布式键值数据库***及其读写方法
CN105447156A (zh) * 2015-11-30 2016-03-30 北京航空航天大学 资源描述框架分布式引擎及增量式更新方法
CN105608143A (zh) * 2015-12-17 2016-05-25 北京奇虎科技有限公司 多副本数据一致性的检测方法及装置
CN110851534A (zh) * 2019-11-15 2020-02-28 上海达梦数据库有限公司 一种数据处理方法、***及存储介质
CN111177255A (zh) * 2019-12-05 2020-05-19 中国铁道科学研究院集团有限公司电子计算技术研究所 一种数据一致性检测方法、装置、存储介质和服务器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2515501A (en) * 2013-06-25 2014-12-31 Ibm Replication for on-line hot-standby database
CN106776775B (zh) * 2016-11-11 2021-05-07 北京奇虎科技有限公司 并发主从同步方法及装置
US10762107B2 (en) * 2016-11-29 2020-09-01 Sap Se Synchronization mechanism for serialized data log replay in database systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103268318A (zh) * 2013-04-16 2013-08-28 华中科技大学 一种强一致性的分布式键值数据库***及其读写方法
CN105447156A (zh) * 2015-11-30 2016-03-30 北京航空航天大学 资源描述框架分布式引擎及增量式更新方法
CN105608143A (zh) * 2015-12-17 2016-05-25 北京奇虎科技有限公司 多副本数据一致性的检测方法及装置
CN110851534A (zh) * 2019-11-15 2020-02-28 上海达梦数据库有限公司 一种数据处理方法、***及存储介质
CN111177255A (zh) * 2019-12-05 2020-05-19 中国铁道科学研究院集团有限公司电子计算技术研究所 一种数据一致性检测方法、装置、存储介质和服务器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024077802A1 (zh) * 2022-10-10 2024-04-18 上海商米科技集团股份有限公司 跨区域的数据同步方法、***及计算机可读介质
CN116303791A (zh) * 2023-03-22 2023-06-23 合肥申威睿思信息科技有限公司 一种基于加速***的数据同步方法和装置

Also Published As

Publication number Publication date
WO2022001750A1 (zh) 2022-01-06

Similar Documents

Publication Publication Date Title
CN113934745A (zh) 数据同步处理方法、电子设备以及存储介质
US11288253B2 (en) Allocation method and device for a distributed lock
CN110045912B (zh) 数据处理方法和装置
US20170270176A1 (en) System and method for determining consensus within a distributed database
EP3623963B1 (en) Log entry duplication method and device, computer equipment, and storage medium
WO2021226905A1 (zh) 一种数据存储方法、***及存储介质
CN112988883B (zh) 数据库的数据同步方法、装置以及存储介质
WO2011120452A2 (zh) 更新数据的方法和控制装置
US20210072903A1 (en) Future write in distributed system maintaining data storage integrity
CN109388481A (zh) 一种事务信息的传输方法、***、装置、计算设备和介质
US20180024896A1 (en) Information processing system, information processing apparatus, and information processing method
CN113094430B (zh) 一种数据处理方法、装置、设备以及存储介质
CN113965578A (zh) 一种集群中主节点的选举方法、装置、设备及存储介质
CN108140035B (zh) 分布式***的数据库复制方法及装置
CN106815094B (zh) 一种用于实现主备同步模式下事务提交的方法与设备
CN111431952B (zh) 消息推送方法、装置及***,计算机存储介质和电子设备
US20230315713A1 (en) Operation request processing method, apparatus, device, readable storage medium, and system
CN114138833A (zh) 用于关系型数据库与缓存数据库数据同步的方法及***
CN108200157B (zh) 主节点触发回退的日志同步方法及装置
CN108460047B (zh) 数据同步方法及设备
CN111680106A (zh) 一种多应用***数据同步的方法及装置
CN111130896A (zh) 一种nfs故障的切换方法、***及双控存储***
CN116232893A (zh) 分布式***的共识方法、装置、电子设备及存储介质
CN111708780B (zh) 分布式表格***与分片选主方法、装置、服务器及介质
CN112948377A (zh) 数据的存储方法、装置、电子设备及计算机可读介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220114

Address after: 100176 floor 18, building 8, courtyard 10, KEGU 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing (Yizhuang group, high-end industrial area of Beijing Pilot Free Trade Zone)

Applicant after: Jinzhuan Xinke Co.,Ltd.

Address before: 518057 Zhongxing building, science and technology south road, Nanshan District hi tech Industrial Park, Guangdong, Shenzhen

Applicant before: ZTE Corp.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20220114