CN112307045A - 一种数据同步方法及系统 - Google Patents

一种数据同步方法及系统 Download PDF

Info

Publication number
CN112307045A
CN112307045A CN202011253450.3A CN202011253450A CN112307045A CN 112307045 A CN112307045 A CN 112307045A CN 202011253450 A CN202011253450 A CN 202011253450A CN 112307045 A CN112307045 A CN 112307045A
Authority
CN
China
Prior art keywords
node
data
updating
child
update
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
CN202011253450.3A
Other languages
English (en)
Inventor
韩富晟
肖金亮
罗一鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Oceanbase Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202011253450.3A priority Critical patent/CN112307045A/zh
Publication of CN112307045A publication Critical patent/CN112307045A/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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/2246Trees, e.g. B+trees
    • 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

Landscapes

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

Abstract

本说明书提出一种数据同步方法及系统,应用于包括一个主库和多个备库的系统,主库与所述多个备库以树形结构组网;树形结构具有至少三层结构,根节点为主库,中间节点或叶子节点为备库;方法包括:根节点响应数据更新事务,对本地数据进行更新,向子节点发送数据更新指示;任一中间节点,在接收到父节点发送的数据更新指示后,对本地数据进行更新,并将数据更新指示转发至子节点;任一叶子节点,在接收到父节点发送的数据更新指示,对本地数据进行更新后,向父节点返回更新完成的消息;任一中间节点,在对本地数据进行更新、且确定全部子节点更新完成后,向父节点返回更新完成的消息;根节点在确定全部子节点更新完成后,确定本次数据同步完成。

Description

一种数据同步方法及系统
技术领域
本说明书涉及数据库技术领域,尤其涉及一种数据同步方法及系统。
背景技术
目前,出于数据库灾备、读写分离等目的,业界往往会采用主库与备库的机制来存储数据,即设立一个主库与多个备库,主库需要将本地的数据同步至各个备库,令各个备库与主库的数据保存一致,进而使各个备库可以拥有灾备切换或处理读取事务等能力。
但是在每次数据同步过程中,主库均需要关注每个备库的同步更新状态,在备库的数量较多时,无疑会给主库造成较大的压力,进而会影响主库自身的主要业务处理能力。
发明内容
针对上述技术问题,本说明书提供一种数据同步方法及系统,技术方案如下:
根据本说明书的第一方面,提供一种数据同步方法,应用于包括一个主库和多个备库的系统,所述主库与所述多个备库以树形结构组网;所述树形结构具有至少三层结构,根节点为主库,中间节点或叶子节点为备库;所述方法包括:
根节点响应数据更新事务,对本地数据进行更新,向子节点发送数据更新指示;
任一中间节点,在接收到父节点发送的数据更新指示后,对本地数据进行更新,并将所述数据更新指示转发至子节点;
任一叶子节点,在对本地数据进行更新后,向父节点返回更新完成的消息;
任一中间节点,在对本地数据进行更新、且确定全部子节点更新完成后,向父节点返回更新完成的消息;
所述根节点在确定全部子节点更新完成后,确定本次数据同步完成。
根据本说明书的第二方面,提供一种数据同步系统,包括一个主库和多个备库,所述主库与所述多个备库以树形结构组网;所述树形结构具有至少三层结构,根节点为主库,中间节点或叶子节点为备库;所述系统包括,
根节点,用于响应数据更新事务,对本地数据进行更新,向子节点发送数据更新指示;
任一中间节点,用于在接收到父节点发送的数据更新指示后,对本地数据进行更新,并将所述数据更新指示转发至子节点;
任一叶子节点,用于在对本地数据进行更新后,向父节点返回更新完成的消息;
任一中间节点,用于在对本地数据进行更新、且确定全部子节点更新完成后,向父节点返回更新完成的消息;
所述根节点,用于在确定全部子节点更新完成后,确定本次数据同步完成。
本说明书的技术方案,采用分级管理的方式,即主数据库不需要与全部备数据库建立连接,不用关注全部备数据库的更新状态,只需要接收子节点数据库发送的更新状态,就可以保证系统中所有数据库与本机的数据保持一致,因此减轻了主数据库的压力。另外,在每次数据同步过程中,主库均是在系统中的备库全部更新完成后,才响应下一数据更新事务,因此可以保证各个备库中存储的数据与主库中存储数据的一致性,进而在数据读取方读取数据时,可以从任一备数据库进行读取,减小了主数据库的负担、提高了数据读取效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本说明书实施例的一种数据同步系统的树形结构组网示意图;
图2是本说明书实施例的一种根节点在数据同步过程中执行方法的流程示意图;
图3是本说明书实施例的一种中间节点在数据同步过程中执行方法的流程示意图;
图4是本说明书实施例的一种任意节点在数据同步过程中执行方法的流程示意图;
图5是本说明书实施例的另一种数据同步系统的树形结构组网示意图;
图6是本说明书实施例的又一种数据同步系统的树形结构组网示意图;
图7是本说明书实施例的一种数据同步装置的结构示意图;
图8是用于配置本说明书实施例装置的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
目前,出于数据库灾备、读写分离等目的,业界往往会采用主库与备库的机制来存储数据,即设立一个主库与多个备库,主库需要将本地的数据同步至各个备库,令各个备库与主库的数据保存一致,进而使各个备库可以拥有灾备切换或处理读取事务等能力。需要说明的是,在不同的业务场景中,数据库的名称可能并不统一,例如在某些业务场景中还会被称为主库和从库,为了方便说明,本说明书中将执行读写操作且首次执行数据更新的数据库称为主库,其他需要同步主数据库中数据、且只执行读操作的数据库称为备库。这里的主库和备库,可以是存储有整张表的数据库,也可以是存储分片数据的数据库,即存储整张表上的部分数据的数据库,本说明书对此不作限定。
在每一次主库中的数据发生更新时,即在对主库中的数据进行增、删、改、操作时,主库均需向每个备库进行数据同步,以保证各个备库存储的数据可以与主库存储的数据一致,主库需要与每个备库建立连接,同时需要依次向每个备库发送数据同步的消息,再发送数据同步消息后,还要关注每个备库的同步更新状态,在备库的数量较多时,数据同步过程无疑会给主库造成较大的压力,进而会影响主库自身的主要业务处理能力。
针对上述技术问题,本说明书提供的方案是:将主库与多个备库以树形结构组网,树形结构具有至少三层结构,根节点为主库,中间节点或叶子节点为备库,即主库不需要与全部备库建立连接,同时在数据同步时只需要向子节点备库发送更新指示,各个中间节点备库再向本地的子节点转发该更新指示,各个中间节点在确定本地更新完成且本地子节点更新完成后向父节点返回更新完成的消息,因此,根节点仅需要关注子节点的数据更新状态,就可以保证系统中所有数据库与本地的数据保持一致,因此减轻了根节点即主库的压力。
基于以上说明本说明书提出的一种数据同步系统,系统包括一个主库和多个备库,主库与多个备库以树形结构组网;树形结构具有至少三层结构,根节点为主库,中间节点或叶子节点为备库。
如图1所示,为本说明书提出的一种数据同步系统的网络拓扑示意图。该图中展示的为四层树形结构组网,图中的节点间的细线代表节点之间所建立的连接关系,101为根节点也为主库,用于根据用户的操作执行相应的读写事务,102~107为备库,用于同步101中的存储的数据和提供读服务,其中,102、103、104为中间节点(有子节点的节点),105、106、107为叶子节点(无子节点的节点);101为102和103的父节点,102和103为101的子节点;同理102为104和105的父节点,104和105为102的子节点,以此类推。
可以理解的是,图1所述的树形结构组网仅为示意性,可以根据实际需求设置任意形式的具有至少三层结构的树形结构组网,例如主库的子节点除了为中间节点,还可以为叶子节点,本说明书对此不做限定,只要可以满足避免主库与全部备库直连即可。
结合上述提出的数据同步系统可知,该树形结构组网中的节点可以分为三类节点:根节点、中间节点以及叶子节点。下面分别针对这三类节点在数据同步过程中执行的步骤进行说明:
如图2所示,为根节点在数据同步过程中主要执行的步骤:
S201,响应数据更新事务,对本地数据进行更新,向子节点发送数据更新指示;
根节点为主库,需要针对用户的操作执行相应的事务,事务可以是读事务也可以是写事务。进而在执行写事务时,即执行的事务会对本地存储的数据进行更新,为了方便说明将写事务称为数据更新事务,包括增删改中的任一种事务。根节点在根据数据更新事务对本地数据进行更新时,需要向各个子节点发送数据更新指示,以指示子节点可以同步本次更新的内容,即确保各个子节点可以与本地数据保持一致。其中,根节点可以是在本地数据更新完成后,再向子节点发送数据更新指示,以避免本地更新失败,子节点却更新成功,造成的数据不一致问题;还可以是在接收到数据更新事务后,在对本地数据更新的同时,就根据该数据更新事务生成数据更新指示,向子节点发送该数据更新指示,以提升数据同步的效率,本领域技术人员可以根据实际需求进行相应的设置,本说明书对此不作限定。
结合上述图1,根节点101,在响应数据更新事务,对本地数据进行更新时,可以向子节点即102以及103发送数据更新指示。
其中,更新指示可以是包含更新数据的消息,以使子节点在接收到消息后解析消息,并根据解析后的内容进行更新;
更新指示还可以是数据更新日志,由于根节点在更新时会生成数据更新日志,该数据更新日志用于描述该数据更新事务包括的数据更新内容,因此在同步时直接将更新日志发送至各个子节点,以使各个子节点解析该数据更新日志并对本地数据进行更新,由于不需要生成额外的指示信息,因此可以进一步节省根节点的处理资源。
S202,在确定全部子节点更新完成后,确定本次数据同步完成。
结合图1,根节点在确定接收到节点102以及节点103返回的更新完成的消息后,确定本次数据同步完成。其中,需要说明的是,中间节点102以及中间节点103并非是在确定本地更新完成后,就向根节点返回更新完成的消息,中间节点返回更新完成消息的触发机制,可以参照下文对于中间节点执行步骤的描述。
以上为根节点在一次数据同步过程中主要执行的步骤。
如图3所示,为中间节点在一次数据同步过程中主要执行的步骤:
S301,在接收到父节点发送的数据更新指示后,对本地数据进行更新,并将所述数据更新指示转发至子节点;
任一中间节点,在本方案中并非仅是根据父节点的更新指示进行更新,还要将该更新指示转发至各个子节点。
结合上述图1,中间节点102、103,在接收到根节点101发送的数据更新指示后,对本地数据进行更新,并将从根节点101接收到的数据更新指示转发至各自的子节点,即节点102将数据更新指示转发至节点104以及105;节点103将数据更新指示转发至节点106。同理,中间节点104在接收到父节点102发送的数据更新指示后,对本地数据进行更新,并将数据更新指示转发至子节点107。
S302,在对本地数据进行更新、且确定全部子节点更新完成后,向父节点返回更新完成的消息。
任一中间节点,在本方案中并非仅是在根据数据更新指示进行更新后,即向父节点返回本地更新完成的消息,而是需要确定本地的全部子节点是否更新完成,在确定全部子节点更新完成、且本地更新完成后,才向父节点返回更新完成的消息。从这个角度而言,任一中间节点均为一个“管理员”,负责管理本地子节点的数据更新,要关注本地全部子节点是否更新完成。
以上述图1为例,中间节点104在接收到107更新完成的消息、且本地更新完毕后,向父节点102返回更新完成的消息;中间节点102在接收到节点104以及105更新完成的消息、且本地更新完毕后,向父节点101返回更新完成的消息;中间节点103在接收到节点106更新完成的消息、且本地更新完毕后,向父节点101返回更新完成的消息。
以上为中间节点在数据同步过程中主要执行的步骤。
最后叶子节点在一次数据同步过程中主要执行的步骤为:
在接收到父节点发送的数据更新指示,对本地数据进行更新后,向父节点返回更新完成的消息。
结合上述图1,叶子节点105在根据更新指示对本地数据进行更新后,向父节点102返回更新完成的消息;叶子节点106在根据更新指示对本地数据进行更新后,向父节点103返回更新完成的消息,叶子节点107在根据更新指示对本地数据进行更新后,向父节点104返回更新完成的消息。
结合上述对于三类节点在同步过程中执行步骤的说明可知,由于每个中间节点会将从父节点接收到的更新指示转发至本地的全部子节点,且是在确定本地更新完成并且确定其全部子节点更新完成后,才向父节点返回更新完成的消息,因此根节点在确定其全部子节点更新完成后,即可以确定全局的节点均更新完成。即采用分级管理的方式,将主库的部分工作分配给各个中间节点来执行,从而减轻了主数据库的压力。
同时在每次数据同步过程中,主库均是在系统中的备库全部更新完成后,才响应下一数据更新事务,因此可以保证各个备库中存储的数据与主库中存储数据的一致性,进而在数据读取方读取数据时,可以从任一备数据库进行读取,减小了主数据库的负担,在实际应用中,不同数据库通常情况下会部署在不同的地区,数据读取方可以就近选择备库进行读取,不需要从主库进行读取,因此提高了数据读取方的读取效率。
综合上述对三类节点执行步骤的说明,可以进一步将每个节点所执行的步骤总结为图4所示的流程,具体包括:
S401,获得数据更新指示后,对本地数据进行更新;若本地存在子节点,则向子节点发送该更新指示;
在本步骤中,对于根节点而言,获得的更新指示可以理解为接收到初始的更新指示,对于其他节点而言,接收到的更新指示为从父节点接收到的更新指示;
对于叶子节点而言,由于不存在子节点,因此不需要执行向子节点发送更新指示的步骤。
S402,确定本地以及全部子节点更新完成后,确定本次同步完成。
对于叶子节点而言,可以理解的是由于其不存在子节点,因此叶子节点在确定本地更新完成后,即确定同步完成。对于根节点和中间节点而言,可以在确定本地更新完成、全部子节点更新完成后,则本次同步完成。
可见,上述三类节点均可以统一为一种数据同步流程,从这个角度而言,上述三类节点可以在需要的时候进行替换,也并不会影响整体系统数据同步过程。
考虑到在系统中的数据库较多时,难免会有数据库出现故障的情况,因此需要将故障的数据库筛选出来,禁止其提供服务,以避免数据读取方从该故障的数据库读取出错误的数据,和避免向故障的数据库持续的发送更新指示造成的资源浪费。
在本说明书提出的具有至少三层结构的树形结构组网的基础上,本说明书还提出了基于该树形结构组网的审核方式:
各个子节点在预设周期,例如每5秒向父节点发送一次租约请求,父节点可以是根节点或任一中间节点,在接收到租约请求后,对发送租约请求的子节点进行审核;针对任一子节点,若审核通过,则确定该数据库租约有效;若审核不通过,确定该节点租约失效,禁止该节点提供读服务。同时,父节点若确定达到预设时长的情况下,仍未收到某一子节点发送的租约请求,也可以直接确定该子节点租约失效,例如,1分钟内未收到某一子节点发送的租约请求,则可以直接确定该子节点租约失效。
结合图1,根节点101每5秒接收一次节点102和103发送的租约请求,并对102和103进行审核,审核可以是确定该节点是否故障,该节点中的数据是否有缺失等等。若审核通过,才确定其租约有效,即允许其继续提供读服务,如果不通过,在确定其租约失效,禁止其提供读服务。同理,中间节点102可以对104和105进行审核。采用上述方式可以有效避免数据读取方从故障的节点读取数据。
同时,在确定了某个子节点租约失效后,父节点可以直接将该子节点从组网中删除,避免在数据同步时继续向该子节点发送更新指示,浪费网络资源。即对于根节点和任一中间节点,其在数据更新时仅向租约有效的子节点发送数据更新指示。
另外,如果租约失效的节点为叶子节点,则直接将该节点从组网中删除即可,但是当租约失效的节点为中间节点时,如图1中的节点102、103或104时,如果直接将该节点从组网中删除,并且不做其他措施,则会导致出现该节点的子节点失去管理。以根节点确定节点102租约失效为例,如果直接将102从组网中删除,并且不做任何处理,则在每次数据同步过程中,节点104、105、107无法接收到更新指示,即无法完成数据同步。因此,可以是在确定审核不通过,且确定该节点为中间节点时,从该中间节点的子节点数据库中,选取一个子节点替代该中间节点执行相应的业务。
例如,在节点102租约失效后,可以从节点104、105中选一个节点替代102,例如选取的为104替代102则整体的组网结构如图5所示,即节点104转变为根节点101的子节点,105转变为104的子节点。在后续数据同步过程和审核过程中,以新的树形结构组网执行相应的步骤,即以图5所示的组网进行同步和审核过程。其中,在某个中间节点租约失效后,可以是从该中间节点的子节点中随机选取、按照性能选取、按照负载选取,等方式选择一个子节点替代该中间节点。
在任一中间节点租约失效后,除了从该中间节点的子节点中,选取一个子节点替代该中间节点执行相应的业务,还可以是直接将该中间节点的全部子节点归属到该中间节点的父节点管理。如图6所示,为图1中节点102租约失效后重新生成的树形结构组网,从图中可以看出节点104与节点105直接归属根节点101管理,在后续更新过程和审核过程中,以新的树形结构组网进行。
当然,在根节点出现故障时,即需要主备切换时,可以在主节点的各个子节点中任选一个节点作为新的主库和根节点,以替代该故障的主库执行相应的业务。
采用上述方式,在任意节点租约时,可以将其快速从组网中删除,并且在中间节点租约失效时,还可以避免其子节点失去管理。
与前述一种数据同步方法相对应,本说明书还提供了一种数据同步系统,包括一个主库和多个备库,所述主库与所述多个备库以树形结构组网;所述树形结构具有至少三层结构,根节点为主库,中间节点或叶子节点为备库;所述系统包括:
根节点,用于响应数据更新事务,对本地数据进行更新,向子节点发送数据更新指示;
任一中间节点,用于在接收到父节点发送的数据更新指示后,对本地数据进行更新,并将所述数据更新指示转发至子节点;
任一叶子节点,用于在接收到父节点发送的数据更新指示,对本地数据进行更新后,向父节点返回更新完成的消息;
任一中间节点,用于在对本地数据进行更新、且确定全部子节点更新完成后,向父节点返回更新完成的消息;
所述根节点,用于在确定全部子节点更新完成后,确定本次数据同步完成。
在一个实施例中,所述根节点,具体用于响应数据更新事务,对本地数据进行更新,向子节点发送数据更新日志,以使子节点利用所述数据更新日志对本地数据进行更新;
所述数据更新日志用于描述所述数据更新事务包括的数据更新内容。
在一个实施例中,所述根节点或任一中间节点,还用于在预设周期接收子节点发送的租约请求,并对发送租约请求的子节点进行审核;
针对任一子节点,若审核通过,则确定该数据库租约有效;
若审核不通过,确定该节点租约失效,禁止该节点提供读服务。
在本实施例中,所述根节点或任一中间节点,还用于针对任一子节点,若审核不通过,且确定该节点为中间节点,则从该中间节点的子节点数据库中,选取一个子节点替代该中间节点执行相应的业务。
在本实施例中,所述根节点,具体用于响应数据更新事务,对本地数据进行更新,向租约有效的子节点发送数据更新指示。
如图7所示,与前述一种数据同步方法相对应,本说明书还提供了一种数据同步装置,应用于系统的任一中间节点,所述系统包括主库和多个备库,所述主库与所述多个备库以树形结构组网;所述树形结构具有至少三层结构,根节点为主库,中间节点或叶子节点为备库;所述装置包括:
同步数据更新模块710,用于在获得数据更新指示后,对本地数据进行更新;若本地存在子节点,则向子节点发送该更新指示;
同步完成确定模块720,用于在确定本地以及全部子节点更新完成后,确定本次同步完成。
上述设备中各个部件的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的方法。该方法至少包括:
在获得数据更新指示后,对本地数据进行更新;若本地存在子节点,则向子节点发送该更新指示;
在确定本地以及全部子节点更新完成后,确定本次同步完成。
图8示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的方法。该方法至少包括:
在获得数据更新指示后,对本地数据进行更新;若本地存在子节点,则向子节点发送该更新指示;
在确定本地以及全部子节点更新完成后,确定本次同步完成。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

Claims (13)

1.一种数据同步方法,应用于包括一个主库和多个备库的系统,所述主库与所述多个备库以树形结构组网;所述树形结构具有至少三层结构,根节点为主库,中间节点或叶子节点为备库;所述方法包括:
根节点响应数据更新事务,对本地数据进行更新,向子节点发送数据更新指示;
任一中间节点,在接收到父节点发送的数据更新指示后,对本地数据进行更新,并将所述数据更新指示转发至子节点;
任一叶子节点,在接收到父节点发送的数据更新指示,对本地数据进行更新后,向父节点返回更新完成的消息;
任一中间节点,在对本地数据进行更新、且确定全部子节点更新完成后,向父节点返回更新完成的消息;
所述根节点在确定全部子节点更新完成后,确定本次数据同步完成。
2.根据权利要求1所述的方法,所述根节点响应数据更新事务,对本地数据进行更新,向子节点发送数据更新指示,包括:
根节点响应数据更新事务,对本地数据进行更新,向子节点发送数据更新日志,以使子节点利用所述数据更新日志对本地数据进行更新;
所述数据更新日志用于描述所述数据更新事务包括的数据更新内容。
3.根据权利要求1所述的方法,还包括:
根节点或任一中间节点,在预设周期接收子节点发送的租约请求,并对发送租约请求的子节点进行审核;
针对任一子节点,若审核通过,则确定该数据库租约有效;
若审核不通过,确定该节点租约失效,禁止该节点提供读服务。
4.根据权利要求3所述的方法,还包括:
若审核不通过,且确定该节点为中间节点,则从该中间节点的子节点数据库中,选取一个子节点替代该中间节点执行相应的业务。
5.根据权利要求1所述的方法,所述根节点响应数据更新事务,对本地数据进行更新,向子节点发送数据更新指示,包括:
根节点响应数据更新事务,对本地数据进行更新,向租约有效的子节点发送数据更新指示。
6.一种数据同步方法,应用于系统中的任一节点,所述系统包括主库和多个备库,所述主库与所述多个备库以树形结构组网;所述树形结构具有至少三层结构,根节点为主库,中间节点或叶子节点为备库;所述方法包括:
获得数据更新指示后,对本地数据进行更新;若本地存在子节点,则向子节点发送该更新指示;
确定本地以及全部子节点更新完成后,确定本次同步完成。
7.一种数据同步系统,包括一个主库和多个备库,所述主库与所述多个备库以树形结构组网;所述树形结构具有至少三层结构,根节点为主库,中间节点或叶子节点为备库;所述系统包括:
根节点,用于响应数据更新事务,对本地数据进行更新,向子节点发送数据更新指示;
任一中间节点,用于在接收到父节点发送的数据更新指示后,对本地数据进行更新,并将所述数据更新指示转发至子节点;
任一叶子节点,用于在接收到父节点发送的数据更新指示,对本地数据进行更新后,向父节点返回更新完成的消息;
任一中间节点,用于在对本地数据进行更新、且确定全部子节点更新完成后,向父节点返回更新完成的消息;
所述根节点,用于在确定全部子节点更新完成后,确定本次数据同步完成。
8.根据权利要求7所述的系统,
所述根节点,具体用于响应数据更新事务,对本地数据进行更新,向子节点发送数据更新日志,以使子节点利用所述数据更新日志对本地数据进行更新;
所述数据更新日志用于描述所述数据更新事务包括的数据更新内容。
9.根据权利要求7所述的系统,
所述根节点或任一中间节点,还用于在预设周期接收子节点发送的租约请求,并对发送租约请求的子节点进行审核;
针对任一子节点,若审核通过,则确定该数据库租约有效;
若审核不通过,确定该节点租约失效,禁止该节点提供读服务。
10.根据权利要求9所述的系统,
所述根节点或任一中间节点,还用于针对任一子节点,若审核不通过,且确定该节点为中间节点,则从该中间节点的子节点数据库中,选取一个子节点替代该中间节点执行相应的业务。
11.根据权利要求9所述的系统,
所述根节点,具体用于响应数据更新事务,对本地数据进行更新,向租约有效的子节点发送数据更新指示。
12.一种数据同步装置,应用于系统的任一节点,所述系统包括主库和多个备库,所述主库与所述多个备库以树形结构组网;所述树形结构具有至少三层结构,根节点为主库,中间节点或叶子节点为备库;所述装置包括:
同步数据更新模块,用于在获得数据更新指示后,对本地数据进行更新;若本地存在子节点,则向子节点发送该更新指示;
同步完成确定模块,用于确定本地以及全部子节点更新完成后,确定本次同步完成。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求6所述的方法。
CN202011253450.3A 2020-11-11 2020-11-11 一种数据同步方法及系统 Pending CN112307045A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011253450.3A CN112307045A (zh) 2020-11-11 2020-11-11 一种数据同步方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011253450.3A CN112307045A (zh) 2020-11-11 2020-11-11 一种数据同步方法及系统

Publications (1)

Publication Number Publication Date
CN112307045A true CN112307045A (zh) 2021-02-02

Family

ID=74325702

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011253450.3A Pending CN112307045A (zh) 2020-11-11 2020-11-11 一种数据同步方法及系统

Country Status (1)

Country Link
CN (1) CN112307045A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113064881A (zh) * 2021-04-15 2021-07-02 深信服科技股份有限公司 一种数据库管理方法、装置、设备及可读存储介质
CN113157980A (zh) * 2021-03-24 2021-07-23 浙江数链科技有限公司 数据同步方法、装置、设备和存储介质
CN113780902A (zh) * 2021-11-12 2021-12-10 江西省国土空间调查规划研究院 一种基于云计算的灾害风险预警管理系统
CN114691690A (zh) * 2022-03-31 2022-07-01 烽台科技(北京)有限公司 一种数据同步方法、装置、计算机设备及介质
CN115242812A (zh) * 2022-07-25 2022-10-25 济南浪潮数据技术有限公司 一种节点数据同步方法、装置及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7664125B1 (en) * 2006-01-03 2010-02-16 Emc Corporation Indication forwarding in a distributed environment
CN102081619A (zh) * 2009-11-26 2011-06-01 中国移动通信集团公司 数据更新方法、分发节点及海量存储集群系统
CN107800738A (zh) * 2016-09-05 2018-03-13 华为数字技术(苏州)有限公司 数据更新的方法与装置
CN107817951A (zh) * 2017-10-31 2018-03-20 新华三技术有限公司 一种实现Ceph集群融合的方法及装置
CN110169040A (zh) * 2018-07-10 2019-08-23 深圳花儿数据技术有限公司 基于多层一致性哈希的分布式数据存储方法与系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7664125B1 (en) * 2006-01-03 2010-02-16 Emc Corporation Indication forwarding in a distributed environment
CN102081619A (zh) * 2009-11-26 2011-06-01 中国移动通信集团公司 数据更新方法、分发节点及海量存储集群系统
CN107800738A (zh) * 2016-09-05 2018-03-13 华为数字技术(苏州)有限公司 数据更新的方法与装置
CN107817951A (zh) * 2017-10-31 2018-03-20 新华三技术有限公司 一种实现Ceph集群融合的方法及装置
CN110169040A (zh) * 2018-07-10 2019-08-23 深圳花儿数据技术有限公司 基于多层一致性哈希的分布式数据存储方法与系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157980A (zh) * 2021-03-24 2021-07-23 浙江数链科技有限公司 数据同步方法、装置、设备和存储介质
CN113064881A (zh) * 2021-04-15 2021-07-02 深信服科技股份有限公司 一种数据库管理方法、装置、设备及可读存储介质
CN113064881B (zh) * 2021-04-15 2024-05-24 深信服科技股份有限公司 一种数据库管理方法、装置、设备及可读存储介质
CN113780902A (zh) * 2021-11-12 2021-12-10 江西省国土空间调查规划研究院 一种基于云计算的灾害风险预警管理系统
CN113780902B (zh) * 2021-11-12 2022-08-05 江西省国土空间调查规划研究院 一种基于云计算的灾害风险预警管理系统
CN114691690A (zh) * 2022-03-31 2022-07-01 烽台科技(北京)有限公司 一种数据同步方法、装置、计算机设备及介质
CN115242812A (zh) * 2022-07-25 2022-10-25 济南浪潮数据技术有限公司 一种节点数据同步方法、装置及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN112307045A (zh) 一种数据同步方法及系统
US11379461B2 (en) Multi-master architectures for distributed databases
Abadi Consistency tradeoffs in modern distributed database system design: CAP is only part of the story
KR102013004B1 (ko) 확장 가능한 환경에서의 동적 로드 밸런싱 기법
CN106933843B (zh) 数据库心跳检测方法以及装置
KR101871383B1 (ko) 계층적 데이터 구조의 노드 상에서 재귀적 이벤트 리스너를 사용하기 위한 방법 및 시스템
CN102158540A (zh) 分布式数据库实现系统及方法
CN110968603B (zh) 一种数据访问方法及装置
CN107861691B (zh) 一种多控存储系统的负载均衡方法和装置
CN111064626B (zh) 配置更新方法、装置、服务器及可读存储介质
US11102284B2 (en) Service processing methods and systems based on a consortium blockchain network
CN111880956A (zh) 一种数据同步方法和装置
JP2019527883A (ja) データベースのデータ変更要求処理方法及び装置
CN114443768A (zh) 分布式数据库的主备切换方法、装置及可读存储介质
CN111488247B (zh) 一种管控节点多次容错的高可用方法及设备
CN108681558B (zh) 一种数据回滚方法、装置、及终端
CN115470303B (zh) 一种数据库访问方法、装置、系统、设备及可读存储介质
CN110502460B (zh) 数据处理的方法和节点
CN110413686B (zh) 一种数据写入方法、装置、设备及存储介质
CN113179332A (zh) 用于获取配置信息的方法、电子设备和存储介质
CN113157392A (zh) 镜像仓库高可用方法及设备
CN108717384B (zh) 一种数据备份方法及装置
CN112099879A (zh) 配置信息管理方法、装置、计算机设备及存储介质
CN112084171A (zh) 基于Cassandra数据库的操作日志写入方法、装置、设备及介质
CN112118294B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210207

Address after: 801-10, Section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province 310000

Applicant after: Ant financial (Hangzhou) Network Technology Co.,Ltd.

Address before: 310000 801-11 section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province

Applicant before: Alipay (Hangzhou) Information Technology Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210910

Address after: 100020 unit 02, 901, floor 9, unit 1, building 1, No.1, East Third Ring Middle Road, Chaoyang District, Beijing

Applicant after: Beijing Aoxing Beisi Technology Co., Ltd

Address before: 801-10, Section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province 310000

Applicant before: Ant financial (Hangzhou) Network Technology Co.,Ltd.

REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40045470

Country of ref document: HK