CN112134887A - 一种分布式集群中节点的数据同步方法及装置 - Google Patents
一种分布式集群中节点的数据同步方法及装置 Download PDFInfo
- Publication number
- CN112134887A CN112134887A CN202011008049.3A CN202011008049A CN112134887A CN 112134887 A CN112134887 A CN 112134887A CN 202011008049 A CN202011008049 A CN 202011008049A CN 112134887 A CN112134887 A CN 112134887A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- master
- main
- cluster
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种分布式集群中节点的数据同步方法及装置,其中方法应用于分布式集群的任意一个节点,并且,方法包括:在该节点为主节点的情况下,该节点提供数据写入服务;在该节点从主节点转变为从节点的情况下,停止数据写入服务;向当前所属集群的主节点发送合并信息;合并信息用于指示当前所属集群的主节点从数据副本获取合并数据;合并数据为该节点作为主节点提供数据写入服务期间被写入的数据;以当前所属集群的主节点的主数据实体为基准,控制该节点的主数据实体与当前所属集群的主节点的主数据实体保持同步。采用本申请的方案,该节点最终的主数据实体中的数据与恢复后集群的主节点的主数据实体中的数据是一致的,并且是准确的。
Description
技术领域
本申请涉及通信领域,尤其涉及一种分布式集群中节点的数据同步方法及装置。
背景技术
根据分布式系统的CAP理论:C一致性(Consistency)、A可用性(Availablity)、P分区容忍性(Partition-torlerance),至多只能保证两者,无法三者同时保证。而在分布式系统中分区P是常态,因此只能从A和C中做出选择,也就是CP型或AP型。
目前,当分布式系统发生集群分裂时,如果选择可用性,在分布式集群分裂期间,每个分裂后集群的主节点继续提供服务,同时支持数据写入服务,当集群分裂恢复后,从恢复后的集群中确定新的主节点,恢复后的集群中的从节点,以新的主节点为基准,与新的主节点保持数据一致。
采用图1所示的分布式集群作为示例,在图1中,分布式集群包括三个集群节点,分别是集群节点A、集群节点B和集群节点C。其中,集群节点A是主节点,集群节点B和集群节点C分别是从节点。当分布式集群发生集群分裂时,即集群节点A和集群节点B组成一个新集群,集群节点C组成一个集群,其中,集群节点A支持数据写入服务,同时,集群节点C也支持数据写入服务,因此,两个新集群都会有新的数据生成,并且,两个新集群生成的新数据会出现不一致的情况,在集群状态恢复后,如果恢复后集群的主节点为集群节点A,则集群节点C通过选择直接与主节点A进行数据同步,与集群节点A的数据保持一致。
但是,在集群恢复后会存在部分数据缺失或不准确的情况,还以图1为例,由于两个新集群生成的新数据会出现不一致的情况,因此,在集群恢复后,可能会导致集群节点C的数据缺失,或者,分裂恢复后的各集群节点中的数据不准确。
发明内容
本申请提供了一种分布式集群中节点的数据同步方法及装置,目的在于解决集群分裂恢复后会出现部分数据缺失或不准确的问题。
为了实现上述目的,本申请提供了以下技术方案:
本申请提供了一种分布式集群中节点的数据同步方法,应用于分布式集群中的任一节点;包括:
在该节点为主节点的情况下,该节点提供数据写入服务;
在该节点从主节点转变为从节点的情况下,停止数据写入服务;
向当前所属集群的主节点发送合并信息;所述合并信息用于指示当前所属集群的主节点从数据副本获取合并数据;所述数据副本为该节点的主数据实体的数据副本;该节点的主数据实体为该节点存储的数据;所述合并数据为该节点作为主节点提供数据写入服务期间被写入的数据;
以当前所属集群的主节点的主数据实体为基准,控制该节点的主数据实体与当前所属集群的主节点的主数据实体保持同步。
可选的,所述数据副本的生成方法包括:
在该节点从主节点转变为从节点之后,并且,在向当前所属集群的主节点发送合并信息之前,创建该节点的主数据实体的数据副本。
可选的,所述数据副本的生成方法包括:
在该节点的初始节点角色为主节点,或者,该节点由从节点转变为主节点的情况下,创建该节点的主数据实体的数据副本;该节点在为主节点期间,控制创建的数据副本与该节点的主数据实体保持同步。
可选的,在所述以当前所属集群的主节点的主数据实体为基准,控制该节点的主数据实体与当前所属集群的主节点的主数据实体保持同步之前,还包括:
控制该节点的主数据实体与创建的数据副本停止同步。
可选的,所述方法还包括:
在该节点为从节点的情况下,控制该节点的主数据实体与所属集群的主节点的主数据实体保持同步。
可选的,所述方法还包括:
在该节点为主节点,并且,接收到合并消息的情况下,获取合并消息指示的合并数据;
将合并消息指示的合并数据写入该节点的主数据实体。
本申请还提供了一种分布式集群中节点的数据同步装置,应用于所述分布式集群中的任意一个节点,包括:
第一执行模块,用于在该节点为主节点的情况下,该节点提供数据写入服务;
第二执行模块,用于在该节点从主节点转变为从节点的情况下,停止数据写入服务;
发送模块,用于向当前所属集群的主节点发送合并信息;所述合并信息用于指示当前所属集群的主节点从数据副本获取合并数据;所述数据副本为该节点的主数据实体的数据副本;该节点的主数据实体为该节点存储的数据;所述合并数据为该节点作为主节点提供数据写入服务期间被写入的数据;
同步模块,用于以当前所属集群的主节点的主数据实体为基准,控制该节点的主数据实体与当前所属集群的主节点的主数据实体保持同步。
可选的,该装置还包括:第一生成模块,用于生成所述数据副本;
所述第一生成模块,用于生成所述数据副本,包括:
所述第一生成模块,具体用于在该节点从主节点转变为从节点之后,并且,在向当前所属集群的主节点发送合并信息之前,创建该节点的主数据实体的数据副本。
本申请还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序执行上述任意一种所述的分布式集群中节点的数据同步方法。
本申请还提供了一种设备,所述设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述任一种所述的分布式集群中节点的数据同步方法。
本申请所述的分布式集群中节点的数据同步方法及装置中,应用于分布式集群中的任一节点,在该节点为主节点(例如,分裂后所在新集群的主节点)的情况下,该节点提供数据写入服务,在该节点从主节点(例如,分裂后所在新集群的主节点)转变为从节点(例如,恢复后集群的从节点)的情况下,停止数据写入服务,并向当前所属集群的主节点(例如,恢复后集群的主节点)发送合并信息,其中,合并信息用于指示当前所属集群的主节点(例如,恢复后集群的主节点)从数据副本获取合并数据,以便当前所属集群的主节点(恢复后集群的主节点)写入合并数据。
由于数据副本为该节点的主数据实体的数据副本,其中,该节点的主数据实体为该节点存储的数据,使得数据副本为该节点存储的数据。其中,合并数据为该节点作为主节点提供数据写入服务期间被写入的数据,因此,当前所属集群的主节点(恢复后集群的主节点)从数据副本中获取合并数据,并写入合并数据,使得当前所属集群的主节点(恢复后集群的主节点)写入了该节点作为主节点提供数据服务期间被写入的数据,从而保证当前所属集群的主节点(恢复后集群的主节点)的主数据实体中的数据是完整且准确的。
又由于当前所属集群的主节点(恢复后集群的主节点)从数据副本中获取合并数据的过程,并不影响该节点的主数据实体中的数据,因此,本申请以当前所属集群的主节点(恢复后集群的主节点)的主数据实体为基准,控制该节点的主数据实体与当前所属集群的主节点(恢复后集群的主节点)的主数据实体保持同步,可以保证最终该节点的主数据实体中的数据与当前所属集群的主节点(恢复后集群的主节点)的主数据实体中的数据是一致的,并且是准确的。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的分裂状态的分布式集群的示意图;
图2为本申请实施例公开的一种分布式集群中节点的数据同步方法的流程图;
图3为本申请实施例公开的正常连接状态的分布式集群的示意图;
图4为本申请实施例公开的恢复后集群的示意图;
图5为本申请实施例公开的又一种分布式集群中节点的数据同步方法的流程图;
图6为本申请实施例公开的又一种分布式集群中节点的数据同步方法的流程图;
图7为本申请实施例公开的一种分布式集群中节点的数据同步装置的结构示意图;
图8为本申请实施例公开的一种设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图2为本申请实施例提供的一种分布式集群中节点的数据同步方法,本实施例适用于分布式集群中的任意一个节点,即分布式集群中的任意一个节点都按照以下步骤执行,以图3所示的分布式集群为例,在图3中的分布式集群包括节点A,节点B和节点C,在本实施例中,以图3中的节点C为例,介绍该节点所执行的步骤,具体执行步骤包括:
S201、在检测到满足任一预设的判选条件的情况下,该节点与分布式集群中的其他节点判选该分布式集群的主节点。
在本实施例中,预设的判选条件可以为该节点与其他相连节点的通信连接状态为初始的通信连接状态,或者,该节点与其他任一节点的通信连接状态由连接变为断开,或者,接收到用于表示判选的指令或信息。当然,在实际中,预设的判选条件还可以为其他内容,本实施例不对判选条件的具体内容作限定。
在本步骤中,该节点与分布式集群中的其他节点,可以通过仲裁的方式,判选分布式集群的主节点。其中,通过仲裁的方式判选分布式集群的主节点的具体实现方式为现有技术。当然,在实际中,除了通过仲裁的方式判选分布式集群的主节点之外,还可以通过其他方式判选分布式集群的主节点,本实施例不对分布式集群的主节点具体判选方式作限定。
例如,在本步骤中,预设的判选条件为该节点与其他相连节点的通信连接状态为初始的通信连接状态。节点C与节点A,节点B判选图3所示的分布式集群的主节点,假设判选得到图3所示的分布式集群的主节点为节点A,即节点A为分布式集群的主节点,节点B和节点C为分布式集群的从节点。
S202、该节点获取判选后的节点角色。
在本实施例中,节点角色为主节点或从节点。
在本实施例中,在判选集群的主节点后,集群中的每个节点会获取到其节点角色,其中,具体的获取方式为现有技术,这里不再赘述。
以节点C为例,假设节点C在本步骤获取到的节点角色为从节点。
S203、该节点判断获取的节点角色是否为主节点,如果否,则执行S204,如果是,则执行S207。
在本实施例中,每个节点都依据自己的节点角色,执行对应的操作,因此,在本步骤中,该节点判断获取的节点角色是否为主节点,如果获取的节点角色为从节点,则执行S204。如果获取的节点角色为主节点,则执行S207。
还以节点C为例,由于节点C的节点角色为从节点,则节点C需执行S204。
S204、该节点控制主数据实体与当前所属集群主节点的主数据实体保持一致。
在该节点为分布式集群的从节点的情况下,控制该节点的主数据实体与分布式集群的主节点的主数据实体保持一致。
在本实施例中,分布式集群中的每个节点都存在一个主数据实体,其中,任意一个节点的主数据实体,用于存储该节点的数据。
还以图3所示的分布式集群为例,在本步骤中,节点C的主数据实体,与节点A的主数据实体中的数据保持一致,即节点C以节点A的主数据实体为基准,节点C控制节点C的主数据实体与节点A的主数据实体中的数据保持一致。
S205、在检测到满足任一预设的判选条件的情况下,该节点获取在当前所属集群中的节点角色。
还以图3所示的分布式集群为例,在节点C检测到与节点A的通信连接状态由连接变为断开的情况下,假设节点C获取的节点角色为主节点,表示节点C获取到在所属的分裂新集群中的节点角色为主节点。
S206、判断该节点为当前所属集群的主节点,如果是,则执行S207,如果否,则执行S204。
还以图3所示的分布式集群为例,在本步骤中,节点C判断获取的节点角色为主节点,即节点C由从节点转变为主节点,则节点C执行S207。
S207、该节点创建该节点的主数据实体的数据副本。
在本实施例中,在S203的判断结果表示该节点的初始节点角色为主节点的情况下,或者,在S206的判断结果表示该节点由从节点转变为主节点的情况下,执行本步骤的操作。
即在本实施例中,在该节点为主节点的情况下,该节点创建该节点的主数据实体的数据副本,在本步骤中,创建的数据副本中的数据为在创建数据副本时刻该节点的主数据实体中的数据。
在本步骤中,节点C创建节点C的主数据实体的数据副本。并且,在本步骤中,节点C创建的主数据实体的数据副本为节点C创建时刻下的主数据实体的数据副本。
S208、该节点控制数据副本与该节点的主数据实体保持一致。
在本实施例中,由于该节点作为主节点,提供数据写入服务,使得该节点的主数据实体中的数据逐渐增多,而创建的数据副本为创建数据副本时刻下,该节点的主数据实体中的数据,为了使得数据副本中的数据与该节点的主数据实体中的数据保持一致,因此,在本步骤中,该节点控制数据副本与该节点的主数据实体保持一致。
在本步骤中,节点C控制创建的数据副本与节点C的主数据实体中的数据保持一致。
S209、该节点提供数据写入服务。
在本步骤中,该节点在提供数据写入服务期间,会向该节点的主数据实体中写入数据。
在本步骤中,节点C提供数据写入服务。
需要说明的是,本实施例对上述S207~S209间的执行顺序不作限定。
S210、该节点在检测到满足任一预设的判选条件的情况下,该节点获取在当前所属集群中的节点角色。
本步骤表示的含义为:在该节点为主节点期间检测到满足任一预设的判选条件的情况下,获取在当前所属集群中的节点角色。
以判选条件为该节点与该其他任一相连节点的通信连接状态由断开变为连接为例,在该情况下,为了描述方便,将该节点当前所属集群称为恢复后集群。假设恢复后集群如图4所示,在图4中,节点A、节点B和节点C组成一个分布式集群。在本步骤中,节点C与节点A、节点B判选图4所示的恢复后集群的主节点,假设判选得到节点A为恢复后集群的主节点,节点C为恢复后集群的从节点。
S211、该节点判断是否仍然为主节点,如果否,则执行S212,如果是,则执行S210。
在本步骤中,如果判断结果表示该节点从主节点转变为从节点,则执行S212,如果判断结果表示该节点仍然为主节点,则执行S210。
还以恢复后集群为图4所示的集群为例,在本步骤中,节点C判断节点C是否为主节点,假设恢复后集群的主节点为图4中的节点A,即节点C由主节点转变为从节点,则在本步骤中,节点C执行S212。
S212、该节点停止数据写入服务,并向当前所属集群的主节点发送合并消息。
在本步骤中,合并消息用于指示当前所属集群的主节点从该节点的数据副本获取合并数据,其中,合并数据为该节点作为主节点提供数据写入服务期间,向该节点的主数据实体写入的数据。
在本实施例中,还以节点C为例,由于节点C作为所属的分裂新集群的主节点提供数据写入服务,使得节点C的主数据实体和数据副本中可能存储有其他分裂新集群的主节点未存储的数据,为了使得恢复后集群中的各节点的数据保持一致性,并且保持数据正确性,因此,在本步骤中,节点C向恢复后集群的主节点发送合并消息,即节点C向节点A发送合并消息。
S213、该节点控制数据副本与该节点的主数据实体间的同步停止。
还以图4所示的恢复后集群为例,在本步骤中,节点C控制其数据副本与节点C的主数据实体之间的同步停止。
S214、在该节点控制数据副本与该节点的主数据实体间的同步停止后,该节点控制该节点的主数据实体与当前所属集群的主节点的主数据实体开始同步。
在本实施例中,为了防止被该节点的主数据实体与当前所属集群的主节点的主数据实体开始同步后,将该节点的数据副本中的数据覆盖,在本实施例中,先将该节点的数据副本与主数据实体之间所进行的同步停止后,再控制该节点的主数据实体与当前所属集群的主节点的主数据实体间的数据保持同步。
还以节点C当前所属集群为图4所示的恢复后集群为例,在本步骤中,节点C控制数据副本与节点C的主数据实体间的同步停止后,节点C控制节点C的主数据实体与节点A的主数据实体开始同步,使得节点C以节点A的主数据实体为基准,将节点C的主数据实体中数据与节点A的主数据实体中的数据保持一致。
在本实施例中,在该节点为主节点的情况下,该节点还可以执行以下S215~S216。
S215、该节点在接收到当前所属集群中的任一从节点发送的合并消息的情况下,从该从节点的数据副本中获取合并数据。
例如,在该节点与其他任一相连节点的连接状态由断开变为连接后,该节点为恢复后集群的主节点的情况下,执行本步骤的操作,具体的,该节点在接收到恢复后集群的任一从节点发送的合并消息的情况下,从该从节点的数据副本获取合并数据。
还以图4所示的恢复后集群为例,在本步骤中,假设节点A为图4所示的恢复后集群的主节点,则在本步骤中,节点A在接收到节点C发送的合并消息的情况下,从节点C的数据副本获取合并数据。
S216、该节点将获取的合并数据写入该节点的主数据实体。
还以图4所示的恢复后集群为例,并且,恢复后集群的主节点为图4所示的恢复后集群中的节点A,则在本步骤中,节点A将从节点C获取的合并数据写入节点A的主数据实体。
以图4所示的恢复后集群为例,其中,节点A为主节点,节点C和节点B是从节点,并且,节点C向节点A发送合并消息,需要说明的是,在实际中,节点C向节点A发送合并消息后,节点A从节点C的数据副本中获取合并数据的过程,与节点C的主数据实体与节点A的主数据实体同步的过程,这两个过程可以同时进行,以提高整个集群的同步效率。
图5为本申请实施例提供的又一种分布式集群中节点的数据同步方法,本实施例适用于分布式集群中的任意一个节点,即分布式集群中的任意一个节点都执行以下步骤,以图3所示的分布式集群为例,在图3中的分布式集群包括节点A,节点B和节点C,在本实施例中,以图3中的节点C为例,介绍该节点所执行的步骤,具体执行步骤包括:
S501、在检测到满足任一预设的判选条件的情况下,该节点与分布式集群中的其他节点判选该分布式集群的主节点。
本步骤的具体内容,可以参考S201,这里不再赘述。
S502、该节点获取判选后的节点角色。
本步骤的具体内容,可以参考S202,这里不再赘述。
S503、该节点判断获取的节点角色是否为主节点,如果否,则执行S504,如果是,则执行S507。
本步骤的具体内容,可以参考S203,这里不再赘述。
S504、该节点控制主数据实体与当前所属集群主节点的主数据实体保持一致。
本步骤的具体内容,可以参考S204,这里不再赘述。
S505、在检测到满足任一预设的判选条件的情况下,该节点获取在当前所属集群中的节点角色。
本步骤的具体内容,可以参考S205,这里不再赘述。
S506、判断该节点是否为当前所属集群的主节点,如果是,则执行S507,如果否,则执行S504。
本步骤的具体内容,可以参考S206,这里不再赘述。
S507、该节点提供数据写入服务。
本步骤的具体内容,可以参考S209,这里不再赘述。
S508、该节点在检测到满足任一预设的判选条件的情况下,该节点获取在当前所属集群中的节点角色。
本步骤的具体内容,可以参考S210,这里不再赘述。
S509、判断该节点是否从仍然为主节点,如果否,则执行S510,如果是,则执行S508。
本步骤的具体内容,可以参考S211,这里不再赘述。
S510、该节点创建该节点的主数据实体的数据副本。
在本步骤中,该节点创建的数据副本为创建时刻下,该节点的主数据实体的数据副本。
例如,本步骤中,该节点在检测到与该其他任一相连节点的连接状态由断开变为连接,并且该节点是恢复后集群的从节点的情况下,在向恢复后集群的主节点发送合并消息之前,创建数据副本,该情况下,创建的数据副本包含了分布式集群分裂前该节点的主数据实体的数据,同时也包含了该节点作为所属的分裂新集群的主节点提供数据写入服务期间主数据实体被写入的数据。
S511、该节点停止数据写入服务,并向当前所属集群的主节点发送合并消息。
本步骤的具体内容,可以参考S212,这里不再赘述。
S512、该节点控制该节点的主数据实体与当前所属集群的主节点的主数据实体开始同步。
本步骤的具体内容,可以参考S214,这里不再赘述。
在本实施例中,在该节点为主节点的情况下,该节点还可以执行以下S513~S514。
S513、该节点在接收到当前所属集群中的任一从节点发送的合并消息的情况下,从该从节点的数据副本中获取合并数据。
本步骤的具体内容,可以参考S215,这里不再赘述。
S514、该节点将获取的合并数据写入该节点的主数据实体。
本步骤的具体内容,可以参考S216,这里不再赘述。
图6为本申请实施例提供的又一种分布式集群中节点的数据同步方法,应用于分布式集群中的任意一个节点,包括以下步骤:
S601、在检测到满足任一预设的判选条件的情况下,该节点获取在当前所属集群中的节点角色。
S602、判断该节点是否为当前所属集群的主节点,如果是,则执行S603。
S603、提供数据写入服务。
S604、在检测到满足任一预设的判选条件的情况下,该节点获取在当前所属集群中的节点角色。
S605、判断该节点是否为当前所属集群的从节点,如果是,则执行S606。
S606、停止数据写入服务,并向当前所属集群的主节点发送合并信息。
在本步骤中,合并信息用于指示当前所属集群的主节点从数据副本获取合并数据。其中,数据副本为该节点的主数据实体的数据副本,其中,该节点的主数据实体为该节点存储的数据。其中,合并数据为该节点作为主节点提供服务期间被写入的数据。
S607、以当前所属集群的主节点的主数据实体为基准,控制该节点的主数据实体与当前所属集群的主节点的主数据实体保持同步。
图7为本申请实施例提供的一种分布式集群中节点的数据同步装置的结构示意图,包括:第一执行模块701、第二执行模块702、发送模块703和同步模块704,其中,
第一执行模块701,用于在该节点为主节点的情况下,该节点提供数据写入服务。第二执行模块702,用于在该节点从主节点转变为从节点的情况下,停止数据写入服务。发送模块703,用于向当前所属集群的主节点发送合并信息;合并信息用于指示当前所属集群的主节点从数据副本获取合并数据;数据副本为该节点的主数据实体的数据副本;该节点的主数据实体为该节点存储的数据;合并数据为该节点作为主节点提供数据写入服务期间被写入的数据。同步模块704,用于以当前所属集群的主节点的主数据实体为基准,控制该节点的主数据实体与当前所属集群的主节点的主数据实体保持同步。
可选的,该装置还可以包括:第一生成模块,用于生成数据副本,包括:
第一生成模块,具体用于在该节点从主节点转变为从节点之后,并且,在发送模块703向当前所属集群的主节点发送合并信息之前,创建该节点的主数据实体的数据副本。
可选的,该装置还可以包括第二生成模块,用于生成数据副本,包括:
第二生成模块,具体用于在该节点的初始节点角色为主节点,或者,该节点由从节点转变为主节点的情况下,创建该节点的主数据实体的数据副本;该节点在为主节点期间,控制创建的数据副本与该节点的主数据实体保持同步。
可选的,该装置还可以包括第三执行模块,用于在同步模块704以当前所属集群的主节点的主数据实体为基准,控制该节点的主数据实体与当前所属集群的主节点的主数据实体保持同步之前,控制该节点的主数据实体与创建的数据副本停止同步。
可选的,该装置还可以包括:
第四执行模块,用于在该节点为从节点的情况下,控制该节点的主数据实体与所属集群的主节点的主数据实体保持同步。
可选的,该装置还可以包括:
第五执行模块,用于在在该节点为主节点,并且,接收到合并消息的情况下,获取合并消息指示的合并数据;将合并消息指示的合并数据写入该节点的主数据实体。
分布式集群中节点的数据同步装置包括处理器和存储器,上述第一执行模块701、第二执行模块702、发送模块703和同步模块704等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决集群分裂恢复后会出现部分数据缺失或不准确的问题。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述分布式集群中节点的数据同步方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述分布式集群中节点的数据同步方法。
本发明实施例提供了一种设备,如图8所示,设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述的分布式集群中节点的数据同步方法。本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
在该节点为主节点的情况下,该节点提供数据写入服务;
在该节点从主节点转变为从节点的情况下,停止数据写入服务;
向当前所属集群的主节点发送合并信息;所述合并信息用于指示当前所属集群的主节点从数据副本获取合并数据;所述数据副本为该节点的主数据实体的数据副本;该节点的主数据实体为该节点存储的数据;所述合并数据为该节点作为主节点提供数据写入服务期间被写入的数据;
以当前所属集群的主节点的主数据实体为基准,控制该节点的主数据实体与当前所属集群的主节点的主数据实体保持同步。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书的各个实施例中记载的特征可以相互替换或者组合,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种分布式集群中节点的数据同步方法,其特征在于,应用于分布式集群中的任一节点;包括:
在该节点为主节点的情况下,该节点提供数据写入服务;
在该节点从主节点转变为从节点的情况下,停止数据写入服务;
向当前所属集群的主节点发送合并信息;所述合并信息用于指示当前所属集群的主节点从数据副本获取合并数据;所述数据副本为该节点的主数据实体的数据副本;该节点的主数据实体为该节点存储的数据;所述合并数据为该节点作为主节点提供数据写入服务期间被写入的数据;
以当前所属集群的主节点的主数据实体为基准,控制该节点的主数据实体与当前所属集群的主节点的主数据实体保持同步。
2.根据权利要求1所述的方法,其特征在于,所述数据副本的生成方法包括:
在该节点从主节点转变为从节点之后,并且,在向当前所属集群的主节点发送合并信息之前,创建该节点的主数据实体的数据副本。
3.根据权利要求1所述的方法,其特征在于,所述数据副本的生成方法包括:
在该节点的初始节点角色为主节点,或者,该节点由从节点转变为主节点的情况下,创建该节点的主数据实体的数据副本;该节点在为主节点期间,控制创建的数据副本与该节点的主数据实体保持同步。
4.根据权利要求3所述的方法,其特征在于,在所述以当前所属集群的主节点的主数据实体为基准,控制该节点的主数据实体与当前所属集群的主节点的主数据实体保持同步之前,还包括:
控制该节点的主数据实体与创建的数据副本停止同步。
5.根据权利要求1所述的方法,其特征在于,还包括:
在该节点为从节点的情况下,控制该节点的主数据实体与所属集群的主节点的主数据实体保持同步。
6.根据权利要求1~5任一项所述的方法,其特征在于,还包括:
在该节点为主节点,并且,接收到合并消息的情况下,获取合并消息指示的合并数据;
将合并消息指示的合并数据写入该节点的主数据实体。
7.一种分布式集群中节点的数据同步装置,其特征在于,应用于所述分布式集群中的任意一个节点,包括:
第一执行模块,用于在该节点为主节点的情况下,该节点提供数据写入服务;
第二执行模块,用于在该节点从主节点转变为从节点的情况下,停止数据写入服务;
发送模块,用于向当前所属集群的主节点发送合并信息;所述合并信息用于指示当前所属集群的主节点从数据副本获取合并数据;所述数据副本为该节点的主数据实体的数据副本;该节点的主数据实体为该节点存储的数据;所述合并数据为该节点作为主节点提供数据写入服务期间被写入的数据;
同步模块,用于以当前所属集群的主节点的主数据实体为基准,控制该节点的主数据实体与当前所属集群的主节点的主数据实体保持同步。
8.根据权利要求7所述的装置,其特征在于,还包括:第一生成模块,用于生成所述数据副本;
所述第一生成模块,用于生成所述数据副本,包括:
所述第一生成模块,具体用于在该节点从主节点转变为从节点之后,并且,在向当前所属集群的主节点发送合并信息之前,创建该节点的主数据实体的数据副本。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序执行权利要求1~6任意一项所述的分布式集群中节点的数据同步方法。
10.一种设备,其特征在于,所述设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如权利要求1~6中任一项所述的分布式集群中节点的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011008049.3A CN112134887B (zh) | 2020-09-23 | 2020-09-23 | 一种分布式集群中节点的数据同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011008049.3A CN112134887B (zh) | 2020-09-23 | 2020-09-23 | 一种分布式集群中节点的数据同步方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112134887A true CN112134887A (zh) | 2020-12-25 |
CN112134887B CN112134887B (zh) | 2022-08-09 |
Family
ID=73842801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011008049.3A Active CN112134887B (zh) | 2020-09-23 | 2020-09-23 | 一种分布式集群中节点的数据同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112134887B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778331A (zh) * | 2021-08-12 | 2021-12-10 | 联想凌拓科技有限公司 | 一种数据处理方法、主节点及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150066848A1 (en) * | 2013-08-29 | 2015-03-05 | Oracle International Corporation | System and method for supporting partition level journaling for synchronizing data in a distributed data grid |
CN106301938A (zh) * | 2016-08-25 | 2017-01-04 | 成都索贝数码科技股份有限公司 | 一种高可用性和强一致性的数据库集群系统及其节点管理方法 |
CN106850260A (zh) * | 2016-12-23 | 2017-06-13 | 曙光云计算技术有限公司 | 一种虚拟化资源管理平台的部署方法和装置 |
US20180341691A1 (en) * | 2015-11-24 | 2018-11-29 | T2 Data Ab | Data synchronization in a distributed data storage system |
CN109710586A (zh) * | 2018-12-28 | 2019-05-03 | 北京谷数科技有限公司 | 一种集群节点配置文件同步方法及装置 |
CN110263093A (zh) * | 2019-05-27 | 2019-09-20 | 东软集团股份有限公司 | 数据同步方法、装置、节点、集群及存储介质 |
CN111049928A (zh) * | 2019-12-24 | 2020-04-21 | 北京奇艺世纪科技有限公司 | 数据同步方法、系统、电子设备及计算机可读存储介质 |
CN111352959A (zh) * | 2020-02-28 | 2020-06-30 | 中国工商银行股份有限公司 | 数据同步补救、存储方法及集群装置 |
-
2020
- 2020-09-23 CN CN202011008049.3A patent/CN112134887B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150066848A1 (en) * | 2013-08-29 | 2015-03-05 | Oracle International Corporation | System and method for supporting partition level journaling for synchronizing data in a distributed data grid |
US20180341691A1 (en) * | 2015-11-24 | 2018-11-29 | T2 Data Ab | Data synchronization in a distributed data storage system |
CN106301938A (zh) * | 2016-08-25 | 2017-01-04 | 成都索贝数码科技股份有限公司 | 一种高可用性和强一致性的数据库集群系统及其节点管理方法 |
CN106850260A (zh) * | 2016-12-23 | 2017-06-13 | 曙光云计算技术有限公司 | 一种虚拟化资源管理平台的部署方法和装置 |
CN109710586A (zh) * | 2018-12-28 | 2019-05-03 | 北京谷数科技有限公司 | 一种集群节点配置文件同步方法及装置 |
CN110263093A (zh) * | 2019-05-27 | 2019-09-20 | 东软集团股份有限公司 | 数据同步方法、装置、节点、集群及存储介质 |
CN111049928A (zh) * | 2019-12-24 | 2020-04-21 | 北京奇艺世纪科技有限公司 | 数据同步方法、系统、电子设备及计算机可读存储介质 |
CN111352959A (zh) * | 2020-02-28 | 2020-06-30 | 中国工商银行股份有限公司 | 数据同步补救、存储方法及集群装置 |
Non-Patent Citations (1)
Title |
---|
米向荣: "高可用MySQL同步集群的研究与设计", 《忻州师范学院学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778331A (zh) * | 2021-08-12 | 2021-12-10 | 联想凌拓科技有限公司 | 一种数据处理方法、主节点及存储介质 |
CN113778331B (zh) * | 2021-08-12 | 2024-06-07 | 联想凌拓科技有限公司 | 一种数据处理方法、主节点及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112134887B (zh) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2714098C1 (ru) | Способ и устройство обработки данных | |
CN109032507B (zh) | 一种生成源卷存储快照的方法、系统及相关组件 | |
CN106874328B (zh) | 一种数据处理方法和设备 | |
CN111209090B (zh) | 一种云平台中虚拟机的创建方法、组件及服务器 | |
CN107657027B (zh) | 数据存储方法及装置 | |
CN104239156A (zh) | 一种外部服务的调用方法及系统 | |
CN108234551B (zh) | 一种数据处理方法及装置 | |
CN108810127A (zh) | 基于区块链的灾备方法及装置 | |
JP2019527883A (ja) | データベースのデータ変更要求処理方法及び装置 | |
CN109672752A (zh) | 数据同步的方法及节点 | |
CN111666266A (zh) | 一种数据迁移方法及相关设备 | |
CN105404547A (zh) | 一种操作系统的融合方法及装置 | |
CN107729515A (zh) | 一种数据同步的方法、装置及存储介质 | |
CN112134887B (zh) | 一种分布式集群中节点的数据同步方法及装置 | |
CN107621994B (zh) | 一种数据快照创建的方法及装置 | |
CN112181724B (zh) | 大数据容灾方法、装置和电子设备 | |
CN117435569A (zh) | 缓存系统动态扩容方法、装置、设备、介质和程序产品 | |
CN109783272B (zh) | 磁盘快照处理方法、装置和设备 | |
CN113138717B (zh) | 节点部署方法、设备及存储介质 | |
CN116069792A (zh) | 一种数据库容灾系统、方法、装置、存储介质及电子设备 | |
CN115174596A (zh) | 一种设备远程复制方法、装置以及介质 | |
CN114281600A (zh) | 一种容灾备份和容灾恢复方法、装置、设备及存储介质 | |
CN108664353A (zh) | 数据恢复的方法、装置及副本管理服务器 | |
CN113656496A (zh) | 数据处理方法及系统 | |
CN110968888B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |