CN111930849A - 数据同步方法、装置及存储介质 - Google Patents
数据同步方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111930849A CN111930849A CN202011009330.9A CN202011009330A CN111930849A CN 111930849 A CN111930849 A CN 111930849A CN 202011009330 A CN202011009330 A CN 202011009330A CN 111930849 A CN111930849 A CN 111930849A
- Authority
- CN
- China
- Prior art keywords
- data synchronization
- data
- storage node
- node
- path
- 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
-
- 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
-
- 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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据同步方法、装置及存储介质,属于计算机技术领域。该方法包括:接收相邻存储节点发送的数据同步消息,数据同步消息用于指示对目标数据进行同步;获取数据同步消息的数据同步路径,数据同步路径用于指示已按照数据同步消息处理过目标数据的存储节点;根据数据同步路径确定是否处理目标数据;在确定出处理目标数据时,根据数据同步消息对目标数据进行处理;可以解决数据同步无法保证数据一致性的问题;根据数据同步路径可以确定出未按照数据同步消息处理过目标数据的存储节点,使该存储节点按照数据同步消息对目标数据进行处理,从而保证不同存储节点之间的数据一致性。
Description
技术领域
本申请涉及一种数据同步方法、装置及存储介质,属于计算机技术领域。
背景技术
在分布式系统中,通常使用多个存储节点存储数据,此时,保持数据一致性是至关重要的问题。数据一致性可以理解为分布式系统中的多个存储节点中同一数据的值是一致的。目前,通常使用数据同步技术实现分布式系统中各个存储节点的数据一致性。
现有的数据同步技术包括双向数据同步模式,即两两节点间可以进行数据的双向同步。例如,存储节点S1和存储节点S2为相邻存储节点,那么,存储节点S1中的数据可以同步到存储节点S2中,存储节点S2中的数据也可以同步到存储节点S1中。
但是,在使用双向数据同步模式同步数据的过程中,多个存储节点可能同时对同一数据进行处理后进行同步,此时,可能无法保证不同存储节点之间的数据一致性。
发明内容
本申请提供了一种数据同步方法、装置及存储介质,可以解决在使用双向数据同步模式同步数据的过程中,多个存储节点可能同时对同一数据进行处理后进行同步,无法保证不同存储节点之间的数据一致性的问题。本申请提供如下技术方案:
第一方面,提供了一种数据同步方法,用于数据存储系统包括的多个存储节点中的任意一个存储节点中,当前所述存储节点具有至少一个相邻存储节点,所述方法包括:
接收所述相邻存储节点发送的数据同步消息,所述数据同步消息用于指示对目标数据进行同步;
获取所述数据同步消息的数据同步路径,所述数据同步路径用于指示已按照所述数据同步消息处理过所述目标数据的存储节点;
根据所述数据同步路径确定是否处理所述目标数据;
在确定出处理所述目标数据时,根据所述数据同步消息对所述目标数据进行处理。
可选地,在当前所述存储节点为其它存储节点的相邻存储节点时,所述在确定出所处理所述目标数据时,根据所述数据同步消息对所述目标数据进行处理之后,还包括:
在所述数据同步路径中添加当前所述存储节点的节点信息,得到更新后的数据同步路径;
将所述数据同步消息发送至所述其它存储节点,所述数据同步消息携带有所述更新后的数据同步路径。
可选地,所述多个存储节点包括主存储节点和所述主存储节点连接的至少一个从存储节点,所述从存储节点用于向所述主存储节点转发数据同步消息,所述主存储节点用于根据接收到的数据同步消息依次进行数据同步;所述主存储节点与各个从存储节点互为相邻存储节点。
可选地,所述根据所述数据同步路径确定是否处理所述目标数据,包括:
确定所述数据同步路径是否存在所述主存储节点的节点信息;
在所述数据同步路径存在所述主存储节点的节点信息时,确定所述主存储节点的节点信息之后的数据同步路径中是否存在当前所述存储节点的节点信息;
在所述主存储节点的节点信息之后的数据同步路径中不存在当前所述存储节点的节点信息时,确定对所述目标数据进行处理。
可选地,所述方法还包括:
在所述数据同步路径不存在所述主存储节点的节点信息时,确定所述数据同步路径中是否存在当前所述存储节点的节点信息;
在所述数据同步路径中不存在当前所述存储节点的节点信息时,确定对所述目标数据进行处理。
可选地,所述方法还包括:
在所述数据同步路径存在所述主存储节点的节点信息、且所述主存储节点的节点信息之后的数据同步路径存在当前所述存储节点的节点信息时,或者,在所述数据同步路径不存在所述主存储节点的节点信息、且所述数据同步路径中存在当前所述存储节点的节点信息时,不对所述目标数据进行处理。
可选地,所述方法还包括:
接收数据操作指示,所述数据操作指示用于对所述目标数据进行处理;
根据所述数据操作指示对所述目标数据进行处理;
生成所述数据操作指示对应的数据同步消息和所述数据同步消息的初始数据同步路径,所述初始数据同步路径以当前所述存储节点的节点信息为起始节点;
向以当前所述存储节点为相邻存储节点的其它存储节点发送携带所述初始同步路径的数据同步消息。
第二方面,提供了一种数据同步装置,用于数据存储系统包括的多个存储节点中的任意一个存储节点中,当前所述存储节点具有至少一个相邻存储节点;所述装置包括:
消息接收模块,用于接收所述相邻存储节点发送的数据同步消息,所述数据同步消息用于指示对目标数据进行同步;
路径获取模块,用于获取所述数据同步消息的数据同步路径,所述数据同步路径用于指示已按照所述数据同步消息处理过所述目标数据的存储节点;
路径判断模块,用于根据所述数据同步路径确定是否处理所述目标数据;
数据处理模块,用于在确定出处理所述目标数据时,根据所述数据同步消息对所述目标数据进行处理。
第三方面,提供一种数据同步装置,所述装置包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现第一方面所述的数据同步方法。
第四方面,提供一种计算机可读存储介质,所述存储介质中存储有程序,所述程序由所述处理器加载并执行以实现第一方面所述的数据同步方法。
本申请的有益效果在于:通过接收相邻存储节点发送的数据同步消息,数据同步消息用于指示对目标数据进行同步;获取数据同步消息的数据同步路径,数据同步路径用于指示已按照数据同步消息处理过目标数据的存储节点;根据数据同步路径确定是否处理目标数据;在确定出处理目标数据时,根据数据同步消息对目标数据进行处理;可以解决数据同步无法保证数据一致性的问题;由于根据数据同步路径可以确定出已经按照数据同步消息处理过目标数据的存储节点,从而可以确定出未按照数据同步消息处理过目标数据的存储节点,使该存储节点按照数据同步消息对目标数据进行处理,从而保证不同存储节点之间的数据一致性。
另外,在对目标数据进行处理之后,将存储节点的节点信息添加到数据同步路径中,并将数据同步消息发送至其它存储节点,可以保证当前存储节点在处理完目标数据之后,继续向其它存储节点发送数据同步消息,保证目标数据能够在其它存储节点中同步。
另外,多个存储节点包括主存储节点和主存储节点连接的至少一个从存储节点,通过主存储节点对各个从存储节点的数据同步消息依次进行处理,防止多个存储节点同时生成对同一目标数据的数据同步消息时出现数据不一致的情况;保证目标数据在所有存储节点中的一致性。
另外,在主存储节点的节点信息之后的数据同步路径中不存在当前存储节点的节点信息时,对目标数据进行处理,可以保证即使目标数据经过主存储节点之后存在修改,该修改也能够同步至各个存储节点,从而保证目标数据在所有存储节点中的一致性。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。
附图说明
图1是本申请一个实施例提供的数据存储系统的结构示意图;
图2是本申请一个实施例提供的数据同步方法的流程图;
图3是本申请一个实施例提供的数据同步方法的流程图;
图4是本申请一个实施例提供的数据同步方法的流程图;
图5是本申请一个实施例提供的数据同步方法的流程图;
图6是本申请一个实施例提供的数据同步装置的框图;
图7是本申请一个实施例提供的数据同步装置的框图。
具体实施方式
下面结合附图和实施例,对本申请的具体实施方式作进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
图1是本申请一个实施例提供的数据存储系统的结构示意图,该数据存储系统用于存储数据。本实施例中,数据存储系统包括多个存储节点,对于多个存储节点中的任意一个存储节点101,该当前存储节点101具有至少一个相邻存储节点102。
多个存储节点是指数据存储系统中用于进行数据存储的节点,比如:多个存储服务器、或者多个存储介质。多个存储节点包括至少一个当前存储节点101具有相邻存储节点102。其中,相邻存储节点102也为多个存储节点中的一个存储节点。
当前存储节点101与相邻存储节点102之间的相邻关系是预先配置的。当前存储节点101与相邻存储节点102相邻是指当前存储节点101具有接收相邻存储节点102发送的消息和/或数据的能力。若当前存储节点101与相邻存储节点102互为相邻,则当前存储节点101既具有接收相邻存储节点102发送的消息和/或数据的能力,还具有向相邻存储节点102发送消息和/或数据的能力,即可以实现数据的双向同步。
参考图2所示的存储节点S1、S2、M、S3和S4之间的拓扑关系示意图。存储节点S1与存储节点S2互为相邻存储节点,存储节点S2与存储节点M互为相邻存储节点、存储节点M与存储节点S3互为相邻存储节点、存储节点S4为存储节点S2的相邻存储节点。根据图2所示的拓扑关系可知,多个存储节点按照链式结构进行配置。
本实施例中,当前存储节点101用于接收相邻存储节点102发送的数据同步消息;获取数据同步消息的数据同步路径;根据数据同步路径确定是否处理目标数据;在确定出处理目标数据时,根据数据同步消息对目标数据进行处理。
其中,数据同步消息用于指示对目标数据进行同步。数据同步消息包括目标数据的数据标识和数据同步方式。可选地,数据标识可以为目标数据的唯一识别码(Universally Unique Identifier,UUID)、或者为目标数据的数据摘要、或者为目标数据的存储地址,本实施例不对数据标识的实现方式作限定。可选地,数据同步方式包括增加目标数据,此时,数据同步消息还包括目标数据的数据内容;或者包括修改目标数据,此时,数据同步消息还包括修改后的目标数据的数据内容;或者包括删除目标数据。
数据同步路径用于指示已按照数据同步消息处理过目标数据的存储节点。在一个示例中,数据同步路径包括处理过目标数据的存储节点的节点信息,且各个节点信息按照处理顺序排列。其中,节点信息可以为节点标识,该节点标识可以为设备号、IP地址、节点编码等,本实施例不对节点标识的实现方式作限定。比如:数据同步路径为:S1,S2,M;则说明已按照数据同步消息处理过目标数据的存储节点依次为存储节点S1、存储节点S2和存储节点M。可选地,本实施例中,每个当前存储节点101还可以根据客户端的数据更新操作(如写操作)对存储的数据进行更新,并根据客户端的读操作读取数据。
由于数据同步路径可以指示处理过目标数据的存储节点,因此,可以根据数据同步路径确定出未处理过目标数据的存储节点,使该存储节点按照数据同步消息对目标数据进行处理,从而保证数据的一致性。
另外,为了防止多个存储节点同时生成的对同一目标数据的数据同步消息出现数据冲突,本实施例中,多个存储节点的工作模式为主从模式。即,多个存储节点中存在一个存储节点被配置为主存储节点103、其它存储节点均被配置为从存储节点104。各个从存储节点104与主存储节点103通信相连。主存储节点103与各个从存储节点104互为相邻存储节点。
各个从存储节点104用于向主存储节点103转发数据同步消息,主存储节点103用于根据接收到的数据同步消息依次进行数据同步。参考图3,假设主存储节点M依次接收到从存储节点S1和从存储节点S2发送的数据同步消息,该数据同步消息均用于对同一目标数据进行处理,则主存储节点M根据数据同步消息的接收顺序,按照从存储节点S1发送的数据同步消息1对目标数据进行处理后,将该数据同步消息转发至各个从存储节点S1、S2、S3和S4,然后,更新该数据同步消息1的数据同步路径;之后,按照从存储节点S2发送的数据同步消息2对目标数据进行处理后,将该数据同步消息2转发至各个从存储节点S1、S2、S3和S4,然后,更新该数据同步消息2的数据同步路径。这样,可以保证对同一目标数据处理的时序性,避免数据冲突。
需要补充说明的是,本实施例中,多个存储节点中的每个存储节点,若该存储节点发送的数据同步消息的数据同步路径的路径起点和路径终点均为该存储节点、且该数据同步路径未经过主存储节点,则存储节点会忽略该数据同步消息,以避免出现数据同步消息的死循环。
本申请提供的数据同步系统,通过在数据同步消息中携带数据同步路径,通过该数据同步路径指示已按照数据同步消息处理过目标数据的存储节点;因此,可以根据数据同步路径确定出未处理过目标数据的存储节点,使该存储节点按照数据同步消息对目标数据进行处理,从而保证数据的一致性。
图4是本申请一个实施例提供的数据同步方法的流程图,本实施例以该方法用于图1所示的数据存储系统中,且各个步骤的执行主体为当前存储节点101为例进行说明,该方法至少包括以下几个步骤:
步骤401、接收相邻存储节点发送的数据同步消息,数据同步消息用于指示对目标数据进行同步。
相邻存储节点是指能够向当前存储节点发送数据同步消息的存储节点。在一个示例中,存储节点S1是存储节点S2的相邻存储节点,那么,存储节点S1具有向存储节点S2发送数据同步消息的能力;或者,存储节点S1与存储节点S2互为相邻存储节点,那么,存储节点S1既具有接收相邻存储节点S2发送的数据同步消息的能力,还具有向相邻存储节点S2发送数据同步消息的能力。存储节点之间的相邻关系是预先配置的。
可选地,数据同步消息包括目标数据的数据标识和数据同步方式。可选地,数据标识可以为目标数据的唯一识别码、或者为目标数据的数据摘要、或者为目标数据的存储地址,本实施例不对数据标识的实现方式作限定。可选地,数据同步方式包括增加目标数据,此时,数据同步消息还包括目标数据的数据内容;或者包括修改目标数据,此时,数据同步消息还包括修改后的目标数据的数据内容;或者包括删除目标数据。
可选地,数据同步消息是相邻存储节点处理完目标数据后转发的,或者,数据同步消息也可以是相邻存储节点接收到该数据同步消息后未处理目标数据直接转发的。
步骤402、获取数据同步消息的数据同步路径,数据同步路径用于指示已按照数据同步消息处理过目标数据的存储节点。
数据同步路径携带在数据同步消息中,存储节点读取数据同步消息中的数据同步路径。
可选地,数据同步路径包括处理过目标数据的存储节点的节点信息,且各个节点信息按照处理顺序排列。其中,节点信息可以为节点标识,该节点标识可以为设备号、IP地址、节点编码等,本实施例不对节点标识的实现方式作限定。比如:数据同步路径为:S1,S2,M;则说明已按照数据同步消息处理过目标数据的存储节点依次为存储节点S1、存储节点S2和存储节点M。
步骤403、根据数据同步路径确定是否处理目标数据。
通常,当一个存储节点S1对目标数据进行处理1,将数据同步消息发送至存储节点S2之后,若存储节点S2同时对目标数据进行处理2,将数据同步消息发送至存储节点S1,此时,由于存储节点S1会接收到存储节点S2发送的同一目标数据的数据同步消息,基于存储节点的消息处理机制,会忽略掉存储节点S2的数据同步消息,此时,由于处理1和处理2不同,两个存储节点存储的数据不一致。基于此,为了保证存储节点1和存储节点2对目标数据的处理操作都能够同步到各个存储节点,多个存储节点包括主存储节点和主存储节点连接的至少一个从存储节点,从存储节点用于向主存储节点转发数据同步消息,主存储节点用于根据接收到的数据同步消息依次进行数据同步;主存储节点与各个从存储节点互为相邻存储节点。此时,根据数据同步路径确定是否处理目标数据,包括:确定数据同步路径是否存在主存储节点的节点信息;在数据同步路径存在主存储节点的节点信息时,确定主存储节点的节点信息之后的数据同步路径中是否存在当前的存储节点的节点信息;在主存储节点的节点信息之后的数据同步路径中不存在该存储节点的节点信息时,确定对目标数据进行处理;在主存储节点的节点信息之后的数据同步路径中存在该存储节点的节点信息时,不对目标数据进行处理。
其中,存储节点的消息处理机制为:若该存储节点发送的数据同步消息的数据同步路径的路径起点和路径终点均为该存储节点、且该数据同步路径未经过主存储节点,则存储节点会忽略该数据同步消息,以避免出现数据同步消息的死循环。
可选地,在数据同步路径不存在主存储节点的节点信息时,确定数据同步路径中是否存在存储节点的节点信息;在数据同步路径中不存在存储节点的节点信息时,确定对目标数据进行处理;在数据同步路径中存在存储节点的节点信息时,不对目标数据进行处理。
由于某个存储节点发送的一条数据同步消息经过主存储节点之后,对应的目标数据可能经过其它从存储节点处理,此时,主存储节点会结合各个从存储节点的数据同步消息对目标数据依次进行同步,并将同步后的目标数据同步至各个从存储节点。基于此,即使数据同步消息的数据同步路径中存在某个存储节点的节点信息,但是若该节点信息位于主存储节点的节点信息之前,则该数据同步消息指示的目标数据可能在经过主存储节点之后存在修改,因此,为了保证该修改能够同步至该存储节点,存储节点仅检测主存储节点之后的数据同步路径中是否存在该存储节点的节点信息,若主存储节点之后的数据同步路径存在该存储节点的节点信息,说明存储节点处理过该目标数据,且该目标数据不会被其它存储节点修改,此时,忽略该数据同步消息。
在数据同步消息的数据同步路径中不存在主存储节点的节点信息时,若数据同步路径存在该存储节点的节点信息,说明存储节点处理过该目标数据,且该目标数据不会被其它存储节点修改,此时,忽略该数据同步消息。
比如,存储节点S1接收到相邻存储节点S2发送的数据同步消息,数据同步路径为:S2,M,S3,S4,确定数据同步路径中存在主存储节点M的节点信息且主存储节点M的节点信息之后的数据同步路径中不存在存储节点S1的节点信息,说明存储节点S1未根据数据同步消息对存储节点中的目标数据进行处理,存储节点S1根据数据同步消息对存储节点中的目标数据进行处理。
再比如,存储节点S1接收到相邻存储节点S2发送的数据同步消息,数据同步路径为:S2,M,S3,S1,确定数据同步路径中存在主存储节点M的节点信息且主存储节点M的节点信息之后的数据同步路径中存在存储节点S1的节点信息,说明存储节点S1已经根据数据同步消息对存储节点中的目标数据进行处理,存储节点S1忽略此数据同步消息,并在存储节点S1为其它存储节点的相邻存储节点时,将此数据同步消息转发给该其它存储节点,存储节点S1继续处理下一条数据同步消息。
再比如,存储节点S1接收到相邻存储节点S2发送的数据同步消息,数据同步路径为:S2,S3,S4,确定数据同步路径中不存在主存储节点M的节点信息且不存在存储节点S1的节点信息,说明存储节点S1未根据数据同步消息对节点中的目标数据进行处理,存储节点S1根据数据同步消息对节点中的目标数据进行处理。
再比如,存储节点S1接收到相邻存储节点S2发送的数据同步消息,数据同步路径为:S2,S3,S1,确定数据同步路径中不存在主存储节点M的节点信息且存在存储节点S1的节点信息,说明存储节点S1已经根据数据同步消息对节点中的目标数据进行处理,存储节点S1忽略此数据同步消息,并在存储节点S1为其它存储节点的相邻存储节点时,将此数据同步消息转发给该其它存储节点,继续处理下一条数据同步消息。
步骤404、在确定出处理目标数据时,根据数据同步消息对目标数据进行处理。
可选地,数据同步消息包括数据同步方式。相应地,根据数据同步消息对目标数据进行处理,包括:根据数据同步消息中的数据同步方式对目标数据进行处理。比如:当数据同步方式为增加目标数据时,数据同步消息还包括目标数据的数据内容,此时,按照该数据同步方式在当前的存储节点中增加目标数据。又比如:当数据同步方式为修改目标数据,此时,数据同步消息还包括修改后的目标数据的数据内容,此时,按照该数据同步方式在当前的存储节点中使用修改后的目标数据的数据内容覆盖原始的目标数据的数据内容。
在存储节点为其它存储节点的相邻存储节点时,为了保证当前存储节点在处理完目标数据之后,继续向该其它存储节点发送数据同步消息,在确定出处理目标数据时,根据数据同步消息对目标数据进行处理之后,还包括:在数据同步路径中添加存储节点的节点信息,得到更新后的数据同步路径;将数据同步消息发送至其它存储节点,数据同步消息携带有更新后的数据同步路径。
通过该数据同步路径指示已按照数据同步消息处理过目标数据的存储节点,可以根据数据同步路径确定出未处理过目标数据的存储节点,使该存储节点按照数据同步消息对目标数据进行处理。
为了更清楚地理解本申请提供的数据同步流程,图5以一个实例对该数据同步流程进行示意。图5以该方法应用于图1所示的数据存储系统中,且各个步骤的执行主体为该系统中的任意一个当前存储节点101为例进行说明。该方法至少包括以下几个步骤:
步骤501,存储节点接收相邻存储节点发送的数据同步消息;
步骤502,获取数据同步消息的数据同步路径;
步骤503,确定数据同步路径是否存在主存储节点的节点信息,如果存在,转到步骤504,如果不存在,转到步骤505;
步骤504,确定主存储节点的节点信息之后的数据同步路径中是否存在存储节点的节点信息,如果存在,转到步骤506,如果不存在,转到步骤507;
步骤505,确定不存在主存储节点的节点信息之后的数据同步路径中是否存在存储节点的节点信息,如果存在,转到步骤506,如果不存在,转到步骤507;
步骤506,存储节点中的目标数据已经根据数据同步消息被处理过,忽略此数据同步消息,将此同步消息转发给其它存储节点,继续处理下一条数据同步消息,其中,当前存储节点为其它存储节点的相邻存储节点;
步骤507,根据数据同步消息对存储节点中的目标数据进行处理;
步骤508,在当前存储节点为其它存储节点的相邻存储节点时,在数据同步路径中添加当前存储节点的节点信息,得到更新后的数据同步路径,并将数据同步消息发送至其它存储节点,数据同步消息携带有更新后的数据同步路径。
在步骤401之前当前的存储节点可能自行生成该数据同步消息。此时,在步骤的401之前还包括:接收数据操作指示,数据操作指示用于对目标数据进行处理;根据数据操作指示对目标数据进行处理;生成数据操作指示对应的数据同步消息和数据同步消息的初始数据同步路径,初始数据同步路径以存储节点的节点信息为起始节点;向以存储节点为相邻存储节点的其它存储节点发送携带初始同步路径的数据同步消息。
本申请中,其它存储节点可以包括当前的存储节点的相邻存储节点,此时,该存储节点与该相邻存储节点互为相邻;或者,其它存储节点可以不包括当前的存储节点的相邻存储节点。
可选地,数据操作指示可以是与当前的存储节点通信相连的客户端生成的写操作。写操作携带有目标数据的数据操作方式。可选地,写操作还携带有目标数据的数据内容。
综上所述,本实施例提供的数据同步方法,通过接收相邻存储节点发送的数据同步消息,数据同步消息用于指示对目标数据进行同步;获取数据同步消息的数据同步路径,数据同步路径用于指示已按照数据同步消息处理过目标数据的存储节点;根据数据同步路径确定是否处理目标数据;在确定出处理目标数据时,根据数据同步消息对目标数据进行处理;可以解决数据同步无法保证数据一致性的问题;由于根据数据同步路径可以确定出已经按照数据同步消息处理过目标数据的存储节点,从而可以确定出未按照数据同步消息处理过目标数据的存储节点,使该存储节点按照数据同步消息对目标数据进行处理,从而保证不同存储节点之间的数据一致性。
另外,在对目标数据进行处理之后,将存储节点的节点信息添加到数据同步路径中,并将数据同步消息发送至其它存储节点,可以保证当前存储节点在处理完目标数据之后,继续向其它存储节点发送数据同步消息,保证目标数据能够在其它存储节点中同步。
另外,多个存储节点包括主存储节点和主存储节点连接的至少一个从存储节点,通过主存储节点对各个从存储节点的数据同步消息依次进行处理,防止多个存储节点同时生成对同一目标数据的数据同步消息时出现数据不一致的情况;保证目标数据在所有存储节点中的一致性。
另外,在主存储节点的节点信息之后的数据同步路径中不存在当前存储节点的节点信息时,对目标数据进行处理,可以保证即使目标数据经过主存储节点之后存在修改,该修改也能够同步至各个存储节点;保证目标数据在所有存储节点中的一致性。
图6是本申请一个实施例提供的数据同步装置的框图,该装置至少包括以下几个模块:消息接收模块610、路径获取模块620、路径判断模块630、数据处理模块640。
消息接收模块610,用于接收相邻存储节点发送的数据同步消息,数据同步消息用于指示对目标数据进行同步。
路径获取模块620,用于获取数据同步消息的数据同步路径,数据同步路径用于指示已按照数据同步消息处理过目标数据的存储节点。
路径判断模块630,用于根据数据同步路径确定是否处理目标数据。
数据处理模块640,用于在确定出处理目标数据时,根据数据同步消息对目标数据进行处理。
相关细节参考上述方法实施例。
需要说明的是:上述实施例中提供的数据同步装置在进行数据同步时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将数据同步装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据同步装置与数据同步方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图7是本申请一个实施例提供的数据同步装置的框图,该装置至少包括处理器701和存储器702。
处理器701可以包括一个或多个处理核心,比如:4核心处理器、6核心处理器等。处理器701可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器701可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器701还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器702中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器701所执行以实现本申请中方法实施例提供的数据同步方法。
在一些实施例中,数据同步装置还可选包括有:外围设备接口和至少一个外围设备。处理器701、存储器702和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。示意性地,外围设备包括但不限于:射频电路、触摸显示屏、音频电路、和电源等。
当然,数据同步装置还可以包括更少或更多的组件,本实施例对此不作限定。
可选地,本申请还提供有一种计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的数据同步方法。
可选地,本申请还提供有一种计算机产品,该计算机产品包括计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述方法实施例的数据同步方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据同步方法,其特征在于,用于数据存储系统包括的多个存储节点中的任意一个存储节点中,当前所述存储节点具有至少一个相邻存储节点;所述方法包括:
接收所述相邻存储节点发送的数据同步消息,所述数据同步消息用于指示对目标数据进行同步;
获取所述数据同步消息的数据同步路径,所述数据同步路径用于指示已按照所述数据同步消息处理过所述目标数据的存储节点;
根据所述数据同步路径确定是否处理所述目标数据;
在确定出处理所述目标数据时,根据所述数据同步消息对所述目标数据进行处理。
2.根据权利要求1所述的方法,其特征在于,在当前所述存储节点为其它存储节点的相邻存储节点时,所述在确定出处理所述目标数据时,根据所述数据同步消息对所述目标数据进行处理之后,还包括:
在所述数据同步路径中添加当前所述存储节点的节点信息,得到更新后的数据同步路径;
将所述数据同步消息发送至所述其它存储节点,所述数据同步消息携带有所述更新后的数据同步路径。
3.根据权利要求1所述的方法,其特征在于,所述多个存储节点包括主存储节点和所述主存储节点连接的至少一个从存储节点,所述从存储节点用于向所述主存储节点转发数据同步消息,所述主存储节点用于根据接收到的数据同步消息依次进行数据同步;所述主存储节点与各个从存储节点互为相邻存储节点。
4.根据权利要求3所述的方法,其特征在于,所述根据所述数据同步路径确定是否处理所述目标数据,包括:
确定所述数据同步路径是否存在所述主存储节点的节点信息;
在所述数据同步路径存在所述主存储节点的节点信息时,确定所述主存储节点的节点信息之后的数据同步路径中是否存在当前所述存储节点的节点信息;
在所述主存储节点的节点信息之后的数据同步路径中不存在当前所述存储节点的节点信息时,确定对所述目标数据进行处理。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述数据同步路径不存在所述主存储节点的节点信息时,确定所述数据同步路径中是否存在当前所述存储节点的节点信息;
在所述数据同步路径中不存在当前所述存储节点的节点信息时,确定对所述目标数据进行处理。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述数据同步路径存在所述主存储节点的节点信息、且所述主存储节点的节点信息之后的数据同步路径存在当前所述存储节点的节点信息时,或者,在所述数据同步路径不存在所述主存储节点的节点信息、且所述数据同步路径中存在当前所述存储节点的节点信息时,不对所述目标数据进行处理。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收数据操作指示,所述数据操作指示用于对所述目标数据进行处理;
根据所述数据操作指示对所述目标数据进行处理;
生成所述数据操作指示对应的数据同步消息和所述数据同步消息的初始数据同步路径,所述初始数据同步路径以当前所述存储节点的节点信息为起始节点;
向以当前所述存储节点为相邻存储节点的其它存储节点发送携带所述初始同步路径的数据同步消息。
8.一种数据同步装置,其特征在于,用于数据存储系统包括的多个存储节点中的任意一个存储节点中,当前所述存储节点具有至少一个相邻存储节点;所述装置包括:
消息接收模块,用于接收所述相邻存储节点发送的数据同步消息,所述数据同步消息用于指示对目标数据进行同步;
路径获取模块,用于获取所述数据同步消息的数据同步路径,所述数据同步路径用于指示已按照所述数据同步消息处理过所述目标数据的存储节点;
路径判断模块,用于根据所述数据同步路径确定是否处理所述目标数据;
数据处理模块,用于在确定出处理所述目标数据时,根据所述数据同步消息对所述目标数据进行处理。
9.一种数据同步装置,其特征在于,所述装置包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现如权利要求1至7任一项所述的数据同步方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有程序,所述程序被处理器执行时用于实现如权利要求1至7任一项所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011009330.9A CN111930849B (zh) | 2020-09-23 | 2020-09-23 | 数据同步方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011009330.9A CN111930849B (zh) | 2020-09-23 | 2020-09-23 | 数据同步方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111930849A true CN111930849A (zh) | 2020-11-13 |
CN111930849B CN111930849B (zh) | 2022-08-02 |
Family
ID=73335034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011009330.9A Active CN111930849B (zh) | 2020-09-23 | 2020-09-23 | 数据同步方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111930849B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104980519A (zh) * | 2015-06-29 | 2015-10-14 | 北京奇虎科技有限公司 | 多机房存储系统 |
CN106656387A (zh) * | 2015-10-30 | 2017-05-10 | 华为技术有限公司 | 用于检测时钟同步路径的方法、节点及系统 |
CN106713487A (zh) * | 2017-01-16 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 数据的同步方法和装置 |
CN111352994A (zh) * | 2020-02-04 | 2020-06-30 | 浙江大华技术股份有限公司 | 数据同步方法以及相关设备、装置 |
-
2020
- 2020-09-23 CN CN202011009330.9A patent/CN111930849B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104980519A (zh) * | 2015-06-29 | 2015-10-14 | 北京奇虎科技有限公司 | 多机房存储系统 |
CN106656387A (zh) * | 2015-10-30 | 2017-05-10 | 华为技术有限公司 | 用于检测时钟同步路径的方法、节点及系统 |
CN106713487A (zh) * | 2017-01-16 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 数据的同步方法和装置 |
CN111352994A (zh) * | 2020-02-04 | 2020-06-30 | 浙江大华技术股份有限公司 | 数据同步方法以及相关设备、装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111930849B (zh) | 2022-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111131399B (zh) | 一种区块链中共识节点动态增加方法及装置 | |
WO2021184177A1 (zh) | 主节点选取方法、装置、电子设备以及存储介质 | |
CN111198662B (zh) | 一种数据存储方法、装置和计算机可读存储介质 | |
US20220091780A1 (en) | Memory access method and intelligent processing apparatus | |
KR20220080198A (ko) | 오디오 데이터 프로세싱 방법, 서버, 및 저장 매체 | |
CN110941665A (zh) | 节点间的数据同步方法、数据同步装置及数据同步设备 | |
CN109902056A (zh) | 一种串行传输的方法、装置、设备及计算机可读存储介质 | |
CN107547593B (zh) | 一种实现日志同步的方法、装置及分布式系统 | |
CN111698337B (zh) | 建立通信连接的方法、装置及设备 | |
CN111930849B (zh) | 数据同步方法、装置及存储介质 | |
CN111427689B (zh) | 集群保活方法、装置及存储介质 | |
CN117435569A (zh) | 缓存系统动态扩容方法、装置、设备、介质和程序产品 | |
CN111352959A (zh) | 数据同步补救、存储方法及集群装置 | |
CN107577822A (zh) | 一种数据同步方法、数据同步装置及移动终端 | |
CN108881452B (zh) | 一种数据同步的方法、装置及存储介质 | |
CN111857985A (zh) | 浏览器插件的调用方法、装置、存储介质及终端 | |
CN111935337B (zh) | 聚合链路的mac地址保活方法、设备和存储介质 | |
CN111447267B (zh) | 信息同步方法、装置、计算机可读存储介质及设备 | |
CN111026810B (zh) | 数据同步方法、装置及存储介质 | |
CN114564458A (zh) | 集群间数据同步的方法、装置、设备和存储介质 | |
CN114253870A (zh) | 一种更新l2p表的方法、系统、设备以及介质 | |
CN111600958A (zh) | 服务发现系统、服务数据管理方法、服务器及存储介质 | |
CN117369951B (zh) | 虚拟机通信方法、装置、存储介质及电子设备 | |
CN116827966B (zh) | 一种数据处理方法与系统 | |
CN112699184B (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: 20201119 Address after: Room 708, Ruiqi building, building 11, no.668, Fengting Avenue, Suzhou Industrial Park, Suzhou, Jiangsu Province, 215000 Applicant after: Ruishi (Suzhou) video technology Co.,Ltd. Applicant after: SUZHOU KEDA TECHNOLOGY Co.,Ltd. Address before: 215011 No. 131 Jin Shan Road, hi tech Zone, Jiangsu, Suzhou Applicant before: SUZHOU KEDA TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |