CN106817387A - 一种数据同步方法、装置和*** - Google Patents
一种数据同步方法、装置和*** Download PDFInfo
- Publication number
- CN106817387A CN106817387A CN201510854401.8A CN201510854401A CN106817387A CN 106817387 A CN106817387 A CN 106817387A CN 201510854401 A CN201510854401 A CN 201510854401A CN 106817387 A CN106817387 A CN 106817387A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- version number
- malfunctioning
- malfunctioning node
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种数据同步方法、装置和***,涉及计算机领域。所述方法包括:在故障节点恢复时,向所述故障节点传输第一节点的所有数据文件;在所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值小于第一阈值时,根据所述差值传输所述故障节点在故障期间未同步的日志;其中,所述故障节点的最大日志版本号为所述故障节点接收到的数据文件的最大数据版本号。本发明用于数据同步。
Description
技术领域
本发明涉及计算机领域,特别涉及一种数据同步方法、装置和***。
背景技术
分布式数据库(Distributed Database,DDB)主要应用于集群***。在集群内各个节点上分别存放相同数据,实现数据冗余,通过实时地或周期性地进行数据同步来保证各个节点间备份数据的一致性。
集群***中往往存在一个主节点和若干个从节点。相关技术中,当一个从节点故障一段时间后恢复正常时,主节点会补齐故障节点在故障期内引起的差异日志。故障节点可通过补齐的差异日志来补齐数据,并在补齐后向用户返回同步成功信息。但是,这种方式在涉及到的差异日志的量较多时需要的时间较长,同步效率较低。
发明内容
本发明实施例提供了一种数据同步方法、装置和***,能够缩短同步操作的时间,提高同步效率。
第一方面,提供一种数据同步方法,所述方法包括:
在故障节点恢复时,向所述故障节点传输第一节点的所有数据文件;
在所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值小于第一阈值时,根据所述差值传输所述故障节点在故障期间未同步的日志;
其中,所述故障节点的最大日志版本号为所述故障节点接收到的数据文件的最大数据版本号。
结合第一方面,在第一种可能的实现方式中,所述向所述故障节点传输第一节点的所有数据文件包括:
在所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值大于所述第二阈值时,向所述故障节点传输所述第一节点的所有数据文件。
结合第一方面的第一种可能实现方式,在第二种可能的实现方式中,所述第一阈值与所述第二阈值相同。
结合第一方面的任一种可能实现方式,在第三种可能的实现方式中,在所述向所述故障节点传输第一节点的所有数据文件之前,所述方法还包括:
为所述第一节点的数据文件设置数据版本号,所述数据版本号保持与所述第一节点的相应日志版本号一致;
当存在数据文件变动时,使所述数据版本号和所述日志版本号递增。
第二方面,提供一种数据同步方法,所述方法包括:
在故障节点恢复时,接收第一节点的所有数据文件,并将所述故障节点的最大日志版本号设置为所述数据文件的最大数据版本号;
在所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值小于第一阈值时,接收所述第一节点根据所述差值传输的、所述故障节点在故障期间未同步的日志;
根据接收到的所述故障节点在故障期间未同步的日志,进行数据同步。
结合第二方面,在第一种可能的实现方式中,所述接收来自第一节点的所有数据文件包括:
在所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值大于所述第二阈值时,接收来自第一节点的所有数据文件。
结合第二方面在第二种可能的实现方式中,所述第一阈值与所述第二阈值相等。
第三方面,提供一种数据同步方法,所述方法包括:
在故障节点恢复时,第一节点向所述故障节点传输所述第一节点的所有数据文件;
所述故障节点在接收到所述数据文件后,将所述故障节点的最大日志版本号设置为所述数据文件的最大数据版本号;
在所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值小于第一阈值时,所述第一节点根据所述差值传输所述故障节点在故障期间未同步的日志;
所述故障节点根据接收到的所述故障节点在故障期间未同步的日志,进行数据同步。
结合第三方面,在第一种可能的实现方式中,第一节点向所述故障节点传输所述第一节点的所有数据文件包括:
在所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值大于所述第二阈值时,所述第一节点向所述故障节点传输所述第一节点的所有数据文件;
所述故障节点接收来自第一节点的所有数据文件。
结合第三方面或第三方面的第一种可能实现方式,在第二种可能的实现方式中,在所述第一节点向所述故障节点传输所述第一节点的所有数据文件之前,所述方法还包括:
为所述第一节点的数据文件设置数据版本号,所述数据版本号保持与所述第一节点的相应日志版本号一致;
当存在数据文件变动时,使所述数据版本号和所述日志版本号递增。
结合第三方面的任一种可能实现方式,在第三种可能的实现方式中,所述第一节点为主节点,所述故障节点为从节点,所述方法应用于分布式数据库数据同步。
第四方面,提供一种数据同步装置,所述装置包括:
发送模块,用于在故障节点恢复时,向所述故障节点传输第一节点的所有数据文件;
所述发送模块还用于:在所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值小于第一阈值时,根据所述差值传输所述故障节点在故障期间未同步的日志;
其中,所述故障节点的最大日志版本号为所述故障节点接收到的数据文件的最大数据版本号。
结合第四方面,在第一种可能的实现方式中,所述发送模块具体用于:
在所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值大于所述第二阈值时,向所述故障节点传输所述第一节点的所有数据文件。
结合第四方面或第四方面的第一种可能实现方式,在第二种可能的实现方式中,所述装置还包括处理模块,
在所述发送模块将第一节点的所有数据文件传输到所述故障节点之前,所述处理模块用于:
为所述第一节点的数据文件设置数据版本号,所述数据版本号保持与所述第一节点的相应日志版本号一致;
当存在数据文件变动时,使所述数据版本号和所述日志版本号递增。
第五方面,提供一种数据同步装置,所述装置包括:
接收模块,用于在故障节点恢复时,接收第一节点的所有数据文件;
处理模块,用于将所述故障节点的最大日志版本号设置为所述数据文件的最大数据版本号;
所述接收模块还用于:在所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值小于第一阈值时,接收所述第一节点根据所述差值传输的、所述故障节点在故障期间未同步的日志;
所述处理模块还用于:根据接收到的所述故障节点在故障期间未同步的日志,进行数据同步。
结合第五方面,在第一种可能的实现方式中,所述接收模块具体用于:
在所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值大于所述第二阈值时,接收来自第一节点的所有数据文件。
第六方面,提供一种数据同步***,所述***包括第一节点和与所述第一节点通过网络连接的故障节点;其中:
所述第一节点用于:在故障节点恢复时,向所述故障节点传输所述第一节点的所有数据文件;
所述故障节点用于:在接收到所述数据文件后,将所述故障节点的最大日志版本号设置为所述数据文件的最大数据版本号;
所述第一节点还用于:在所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值小于第一阈值时,所述第一节点根据所述差值传输所述故障节点在故障期间未同步的日志;
所述故障节点还用于:根据接收到的所述故障节点在故障期间未同步的日志,进行数据同步。
结合第六方面,在第一种可能的实现方式中,所述第一节点具体用于:
在所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值大于所述第二阈值时,向所述故障节点传输所述第一节点的所有数据文件。
结合第六方面或第六方面的第一种可能实现方式,在第二种可能的实现方式中,所述第一节点还用于:
为所述第一节点的数据文件设置数据版本号,所述数据版本号保持与所述第一节点的相应日志版本号一致;
当存在数据文件变动时,使所述数据版本号和所述日志版本号递增。
结合第六方面的任一种可能实现方式,在第三种可能的实现方式中,所述第一节点可为主节点,所述故障节点可为从节点。其中,所述***可以为分布式数据同步***。
本发明实施例提供的数据同步方法、装置和***,在故障节点恢复时,向所述故障节点传输第一节点的所有数据文件,传输之后即可根据第一节点和故障节点间的最大日志版本号差值确定第一节点在传输数据文件的时刻到当前时刻间进行的变动所涉及的日志,并将差异日志同步到故障节点,由此完成故障节点的数据同步。由于传输的数据文件涵盖了要同步的全部或大部分数据且数据文件的传输耗时相对较少,因而这种数据同步的方式能够缩短同步操作的时间,提高同步效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据同步方法的流程图;
图2是本发明实施例提供的数据同步方法的流程图;
图3A是本发明实施例提供的一种数据同步方法的示意图;
图3B是本发明实施例提供的一种数据同步方法的示意图;
图4是本发明实施例提供的数据同步装置的结构框图;
图5是本发明实施例提供的数据同步装置的结构框图;
图6是本发明实施例提供的数据同步***的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供一种数据同步的方法、装置和***。本发明实施例提供的数据同步***可以为分布式数据同步***,可包括一个主节点和若干个从节点。其中,主节点和从节点可以为处于不同地理位置的节点,主节点和从节点之间通过网络(例如,因特网)连接。主节点和从节点均可以为例如阵列上的控制器等。
在正常情况下的数据同步过程中,用户的数据同步请求会先转到主节点处理,主节点进而与从节点进行协商,待主节点和从节点协商达成一致后,主节点和从节点完成数据同步操作。但是,当数据同步***中的一个节点出现故障时,该出现故障的节点即成为从节点。此时,出现故障的节点无法完成数据同步操作,而数据同步***中的其他节点能够正常完成数据的同步操作。这样一来,该出现故障的节点和其他正常节点之间会存在数据差异(即,故障节点遗漏了一些数据)。因而,当出现故障的节点恢复正常时,需要对出现故障的节点进行数据同步操作。
图1是本发明实施例提供的一种数据同步方法的流程图。参照图1,本发明实施例提供的数据同步方法可包括:
11、在故障节点恢复时,向所述故障节点传输第一节点的所有数据文件;
12、在所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值小于第一阈值时,根据所述差值传输所述故障节点在故障期间未同步的日志;
其中,所述故障节点的最大日志版本号为所述故障节点接收到的数据文件的最大数据版本号。
其中,所述第一阈值可根据所述故障节点自身同步数据的能力来确定。
可选地,在步骤11中所述向所述故障节点传输第一节点的所有数据文件之前,所述方法还包括:
为所述第一节点的数据文件设置数据版本号,所述数据版本号保持与所述第一节点的相应日志版本号一致;
当存在数据文件变动时,使所述数据版本号和所述日志版本号递增。
本发明实施例提供的数据同步方法,在故障节点恢复时,向所述故障节点传输第一节点的所有数据文件,传输之后即可根据第一节点和故障节点间的最大日志版本号差值确定第一节点在传输数据文件的时刻到当前时刻间进行的变动所涉及的日志,并将差异日志同步到故障节点,由此完成故障节点的数据同步。由于传输的数据文件涵盖了要同步的全部或大部分数据且数据文件的传输耗时相对较少,因而这种数据同步的方式能够缩短同步操作的时间,提高同步效率。
由于故障节点故障持续的时间可能是不可提前预知的,相应地,会造成故障节点与第一节点之间的差异数据可能较多,也可能较小。本发明实施例可通过引入第二阈值来初步判定故障节点在故障期间是否存在较多差异数据(故障持续的时间长短),进而可根据差异数据的量采取不同的同步方式。
在一个实施例中,本发明实施例提供的数据同步方法可以只在故障节点故障持续的时间相对较长时应用。此时,步骤11中所述向所述故障节点传输第一节点的所有数据文件可具体包括:
在所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值大于所述第二阈值时,向所述故障节点传输所述第一节点的所有数据文件。
其中,所述第二阈值可根据所述故障节点自身同步数据的能力来确定。且所述第一阈值与所述第二阈值可相同或不同。
通过将差值与第二阈值进行比较,可以保证故障节点在需要同步的数据较多时采用上述方式来进行数据同步,使得同步效率提高较为显著。
当然,若故障节点故障持续的时间较短,此时,涉及到的差异日志的量可能并不大,相应地,故障节点未同步的数据可能也不多,即所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值不大于所述第二阈值。因而,此时除了可采用上述方式来进行数据同步外,还可以可直接根据差异日志进行数据同步。
图2是本发明实施例提供的一种数据同步方法的流程图。参照图2,本发明实施例提供的数据同步方法可包括:
21、在故障节点恢复时,接收第一节点的所有数据文件,并将所述故障节点的最大日志版本号设置为所述数据文件的最大数据版本号;
22、在所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值小于第一阈值时,接收所述第一节点根据所述差值传输的、所述故障节点在故障期间未同步的日志;
23、根据接收到的所述故障节点在故障期间未同步的日志,进行数据同步。
本发明实施例提供的数据同步方法,在故障节点恢复时,向所述故障节点传输第一节点的所有数据文件,传输之后即可根据第一节点和故障节点间的最大日志版本号差值确定第一节点在传输数据文件的时刻到当前时刻间进行的变动所涉及的日志,并将差异日志同步到故障节点,由此完成故障节点的数据同步。由于传输的数据文件涵盖了要同步的全部或大部分数据且数据文件的传输耗时相对较少,因而这种数据同步的方式能够缩短同步操作的时间,提高同步效率。
可选地,在一个实施例中,步骤21中所述接收来自第一节点的所有数据文件包括:
在所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值大于所述第二阈值时,接收来自第一节点的所有数据文件。
其中,所述第一阈值与所述第二阈值可相同或不相同。所述第一阈值与所述第二阈值可根据所述故障节点自身同步数据的能力来确定。
图3A是本发明实施例提供的一种数据同步方法的示意图。参照图3A,所述方法包括:
31、用户向终端内的应用程序发起修改配置请求。
32、终端内的该应用程序将该请求转到集群中的第一节点处理。
33、集群中的故障节点在请求处理时恢复正常。
34、在故障节点恢复时,第一节点与故障节点进行数据版本差异比较。
35、第一节点确定所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值是否大于所述第二阈值。
36、在所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值大于所述第二阈值时,所述第一节点向所述故障节点传输所述第一节点的所有数据文件。
37、所述故障节点在接收到所述数据文件后,将所述故障节点的最大日志版本号设置为所述数据文件的最大数据版本号。
38、所述第一节点与故障节点进行日志版本差异比较。
39、所述第一节点确定所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值是否小于第一阈值。
310在所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值小于第一阈值时,所述第一节点根据所述差值传输所述故障节点在故障期间未同步的日志。
311、所述故障节点根据接收到的所述故障节点在故障期间未同步的日志,进行数据同步。
312、同步完成后响应第一节点。
313、第一节点响应终端内的应用程序。
314、应用程序响应用户操作成功。
其中,所述第一节点可以为主节点,所述故障节点可以为从节点,所述方法可应用于分布式数据库数据同步。
本发明实施例可在数据同步前预先对第一节点的数据文件设置版本号。相应地,所述方法还可包括:
为所述第一节点的数据文件设置数据版本号,所述数据版本号保持与所述第一节点的相应日志版本号一致;
当存在数据文件变动时,使所述数据版本号和所述日志版本号递增。
同时需要指出的是,步骤34-35可以是可选的,当步骤34-35不存在时,在步骤36中,所述第一节点直接向所述故障节点传输所述第一节点的所有数据文件,而不需要判断所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值是否大于所述第二阈值。
同时需要指出的是,步骤38-39也可以是可选的。在本发明实施例中,可以由云端来进行日志版本差异比较,进而由云端来完成确定所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值是否小于第一阈值,并将结果发送给第一节点即可。也就是说,第一节点可以只获取结果,而不必参与结果的运算处理。
另外,需要说明的是,在本发明实施例提供的数据同步的方法中,故障节点在恢复正常并完成与主节点之间的同步后,后续用户通过终端上的应用程序进行的任何数据变动,都会使主节点和恢复正常的从节点(即之前的故障节点)步调一致地进行正常的数据同步。
为更好地理解本发明实施例提供的数据同步的方法,参照图3B以第一节点为主节点,故障节点为从节点为例来进行进一步说明。假定第二阈值为10000,由图3B可知,主节点的当前数据版本为50000,从节点的当前数据版本为30000,二者的差值大于设定阈值10000,因而在从节点故障一段时间后恢复时,主节点会将当前数据文件传输到从节点,这样一来,从节点就具有了1-50000间的所有数据版本。之后比较主节点和从节点的最大日志版本号,由图3B可知,主节点的最大日志版本号为50100,从节点的日志版本号为50000,二者差值100小于设定阈值10000,因而,向从节点传输日志版本差异(即50000到50100的日志版本)。之后,从节点即可根据所述日志版本差异进行数据同步,这种数据同步可包括补齐50000到50100的数据版本以及之前的日志版本,如图3B所示。
本发明实施例提供的数据同步方法,在故障节点恢复时,向所述故障节点传输第一节点的所有数据文件,传输之后即可根据第一节点和故障节点间的最大日志版本号差值确定第一节点在传输数据文件的时刻到当前时刻间进行的变动所涉及的日志,并将差异日志同步到故障节点,由此完成故障节点的数据同步。由于传输的数据文件涵盖了要同步的全部或大部分数据且数据文件的传输耗时相对较少,因而这种数据同步的方式能够缩短同步操作的时间,提高同步效率。
而且,在相关技术中,为避免日志占用空间太大,主节点会定期删除版本较老的日志,这样在主节点和故障恢复后的从节点进行数据同步的过程中一旦涉及到已删除的较老日志,则可能导致故障节点数据恢复不完整。本发明实施例提供的数据同步方法,不仅能够缩短同步操作的时间,提高同步效率,而且还可以避免出现上述问题,这是因为本发明实施例中的数据同步方法可以保证主节点和从节点间同步的数据量较小,不会涉及到已删除的较老日志。
图4是本发明实施例提供的数据同步装置的结构框图。参照图4,本发明实施例提供的数据同步装置40可包括:
发送模块41,用于在故障节点恢复时,向所述故障节点传输第一节点的所有数据文件;
所述发送模块41还用于:在所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值小于第一阈值时,根据所述差值传输所述故障节点在故障期间未同步的日志;
其中,所述故障节点的最大日志版本号为所述故障节点接收到的数据文件的最大数据版本号。
本发明实施例提供的数据同步装置,在故障节点恢复时,向所述故障节点传输第一节点的所有数据文件,传输之后即可根据第一节点和故障节点间的最大日志版本号差值确定第一节点在传输数据文件的时刻到当前时刻间进行的变动所涉及的日志,并将差异日志同步到故障节点,由此完成故障节点的数据同步。由于传输的数据文件涵盖了要同步的全部或大部分数据且数据文件的传输耗时相对较少,因而这种数据同步的方式能够缩短同步操作的时间,提高同步效率。
可选地,所述发送模块41可具体用于:
在所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值大于所述第二阈值时,向所述故障节点传输所述第一节点的所有数据文件。
可选地,所述装置40还可包括处理模块42,
在所述发送模块41将第一节点的所有数据文件传输到所述故障节点之前,所述处理模块42用于:
为所述第一节点的数据文件设置数据版本号,所述数据版本号保持与所述第一节点的相应日志版本号一致;
当存在数据文件变动时,使所述数据版本号和所述日志版本号递增。
本发明实施例提出的数据同步装置可应用于存储***中分布式配置数据库,可处理节点故障导致的数据差异,对故障节点进行快速同步缩短响应业务时间。
图5是本发明实施例提供的数据同步的方法的结构框图。参照图5,本发明实施例提供的数据同步装置50可包括接收模块51和处理模块52。其中:
接收模块51,用于在故障节点恢复时,接收第一节点的所有数据文件;
处理模块52,用于将所述故障节点的最大日志版本号设置为所述数据文件的最大数据版本号;
所述接收模块51还用于:在所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值小于第一阈值时,接收所述第一节点根据所述差值传输的、所述故障节点在故障期间未同步的日志;
所述处理模块52还用于:根据接收到的所述故障节点在故障期间未同步的日志,进行数据同步。
本发明实施例提供的数据同步装置,在故障节点恢复时,向所述故障节点传输第一节点的所有数据文件,传输之后即可根据第一节点和故障节点间的最大日志版本号差值确定第一节点在传输数据文件的时刻到当前时刻间进行的变动所涉及的日志,并将差异日志同步到故障节点,由此完成故障节点的数据同步。由于传输的数据文件涵盖了要同步的全部或大部分数据且数据文件的传输耗时相对较少,因而这种数据同步的方式能够缩短同步操作的时间,提高同步效率。
可选地,所述接收模块51可具体用于:
在所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值大于所述第二阈值时,接收来自第一节点的所有数据文件。
本发明实施例提出的数据同步装置可应用于存储***中分布式配置数据库,可处理节点故障导致的数据差异,对故障节点进行快速同步缩短响应业务时间。
图6是本发明实施例提供的数据同步***的结构框图。参照图6,本发明实施例提供的数据同步***60可包括第一节点61和与所述第一节点通过网络连接的故障节点62。其中:
所述第一节点61用于:在故障节点恢复时,向所述故障节点62传输所述第一节点的所有数据文件;
所述故障节点62用于:在接收到所述数据文件后,将所述故障节点62的最大日志版本号设置为所述数据文件的最大数据版本号;
所述第一节点61还用于:在所述第一节点61的最大日志版本号与所述故障节点62的最大日志版本号之间的差值小于第一阈值时,所述第一节点61根据所述差值传输所述故障节点62在故障期间未同步的日志;
所述故障节点62还用于:根据接收到的所述故障节点62在故障期间未同步的日志,进行数据同步。
本发明实施例提供的数据同步***,在故障节点恢复时,向所述故障节点传输第一节点的所有数据文件,传输之后即可根据第一节点和故障节点间的最大日志版本号差值确定第一节点在传输数据文件的时刻到当前时刻间进行的变动所涉及的日志,并将差异日志同步到故障节点,由此完成故障节点的数据同步。由于传输的数据文件涵盖了要同步的全部或大部分数据且数据文件的传输耗时相对较少,因而这种数据同步的方式能够缩短同步操作的时间,提高同步效率。
可选地,所述第一节点61具体用于:
在所述第一节点61的最大数据版本号与所述故障节点62的最大数据版本号之间的差值大于所述第二阈值时,向所述故障节点62传输所述第一节点的所有数据文件。
可选地,所述第一节点61还用于:
为所述第一节点61的数据文件设置数据版本号,所述数据版本号保持与所述第一节点的相应日志版本号一致;
当存在数据文件变动时,使所述数据版本号和所述日志版本号递增。
可选地,所述第一节点为主节点,所述故障节点62为从节点,所述***60为分布式数据同步***。
本发明实施例提出的数据同步***可应用于存储***中分布式配置数据库,处理节点故障导致的数据差异,对故障节点进行快速同步缩短响应业务时间。而且,在相关技术中,为避免日志占用空间太大,主节点会定期删除版本较老的日志,这样在主节点和故障恢复后的从节点进行数据同步的过程中一旦涉及到已删除的较老日志,则可能导致故障节点数据恢复不完整。本发明实施例提供的数据同步***,不仅能够缩短同步操作的时间,提高同步效率,而且还可以避免出现上述问题,这是因为本发明实施例中的数据同步***可以保证主节点和从节点间同步的数据量较小,不会涉及到已删除的较老日志。
需要说明的是,本发明实施例提供的数据同步的方法、装置和网络***,可应用于其他特性的容灾备份、可应用于集群在线扩容进行的数据同步,还可应用于不同的产品架构,例如块存储产品和对象存储产品。
需要说明的是:上述实施例提供的数据同步的装置仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据同步的装置与数据同步的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种数据同步方法,其特征在于,所述方法包括:
在故障节点恢复时,向所述故障节点传输第一节点的所有数据文件;
在所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值小于第一阈值时,根据所述差值传输所述故障节点在故障期间未同步的日志;
其中,所述故障节点的最大日志版本号为所述故障节点接收到的数据文件的最大数据版本号。
2.根据权利要求1所述的方法,其特征在于,所述向所述故障节点传输第一节点的所有数据文件包括:
在所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值大于所述第二阈值时,向所述故障节点传输所述第一节点的所有数据文件。
3.根据权利要求2所述的方法,其特征在于,所述第一阈值与所述第二阈值相同。
4.根据权利要求1-3任一所述的方法,其特征在于,在所述向所述故障节点传输第一节点的所有数据文件之前,所述方法还包括:
为所述第一节点的数据文件设置数据版本号,所述数据版本号保持与所述第一节点的相应日志版本号一致;
当存在数据文件变动时,使所述数据版本号和所述日志版本号递增。
5.一种数据同步方法,其特征在于,所述方法包括:
在故障节点恢复时,接收第一节点的所有数据文件,并将所述故障节点的最大日志版本号设置为所述数据文件的最大数据版本号;
在所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值小于第一阈值时,接收所述第一节点根据所述差值传输的、所述故障节点在故障期间未同步的日志;
根据接收到的所述故障节点在故障期间未同步的日志,进行数据同步。
6.根据权利要求5所述的方法,其特征在于,所述接收来自第一节点的所有数据文件包括:
在所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值大于所述第二阈值时,接收来自第一节点的所有数据文件。
7.根据权利要求6所述的方法,其特征在于,所述第一阈值与所述第二阈值相等。
8.一种数据同步方法,其特征在于,所述方法包括:
在故障节点恢复时,第一节点向所述故障节点传输所述第一节点的所有数据文件;
所述故障节点在接收到所述数据文件后,将所述故障节点的最大日志版本号设置为所述数据文件的最大数据版本号;
在所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值小于第一阈值时,所述第一节点根据所述差值传输所述故障节点在故障期间未同步的日志;
所述故障节点根据接收到的所述故障节点在故障期间未同步的日志,进行数据同步。
9.根据权利要求8所述的方法,其特征在于,第一节点向所述故障节点传输所述第一节点的所有数据文件包括:
在所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值大于所述第二阈值时,所述第一节点向所述故障节点传输所述第一节点的所有数据文件;
所述故障节点接收来自第一节点的所有数据文件。
10.根据权利要求8或9所述的方法,其特征在于,在所述第一节点向所述故障节点传输所述第一节点的所有数据文件之前,所述方法还包括:
为所述第一节点的数据文件设置数据版本号,所述数据版本号保持与所述第一节点的相应日志版本号一致;
当存在数据文件变动时,使所述数据版本号和所述日志版本号递增。
11.根据权利要求7-10任一所述的方法,其特征在于,所述第一节点为主节点,所述故障节点为从节点,所述方法应用于分布式数据库数据同步。
12.一种数据同步装置,其特征在于,所述装置包括:
发送模块,用于在故障节点恢复时,向所述故障节点传输第一节点的所有数据文件;
所述发送模块还用于:在所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值小于第一阈值时,根据所述差值传输所述故障节点在故障期间未同步的日志;
其中,所述故障节点的最大日志版本号为所述故障节点接收到的数据文件的最大数据版本号。
13.根据权利要求12所述的装置,其特征在于,所述发送模块具体用于:
在所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值大于所述第二阈值时,向所述故障节点传输所述第一节点的所有数据文件。
14.根据权利要求12-13任一所述的装置,其特征在于,所述装置还包括处理模块,
在所述发送模块将第一节点的所有数据文件传输到所述故障节点之前,所述处理模块用于:
为所述第一节点的数据文件设置数据版本号,所述数据版本号保持与所述第一节点的相应日志版本号一致;
当存在数据文件变动时,使所述数据版本号和所述日志版本号递增。
15.一种数据同步装置,其特征在于,所述装置包括:
接收模块,用于在故障节点恢复时,接收第一节点的所有数据文件;
处理模块,用于将所述故障节点的最大日志版本号设置为所述数据文件的最大数据版本号;
所述接收模块还用于:在所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值小于第一阈值时,接收所述第一节点根据所述差值传输的、所述故障节点在故障期间未同步的日志;
所述处理模块还用于:根据接收到的所述故障节点在故障期间未同步的日志,进行数据同步。
16.根据权利要求15所述的装置,其特征在于,所述接收模块具体用于:
在所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值大于所述第二阈值时,接收来自第一节点的所有数据文件。
17.一种数据同步***,其特征在于,所述***包括第一节点和与所述第一节点通过网络连接的故障节点;其中:
所述第一节点用于:在故障节点恢复时,向所述故障节点传输所述第一节点的所有数据文件;
所述故障节点用于:在接收到所述数据文件后,将所述故障节点的最大日志版本号设置为所述数据文件的最大数据版本号;
所述第一节点还用于:在所述第一节点的最大日志版本号与所述故障节点的最大日志版本号之间的差值小于第一阈值时,所述第一节点根据所述差值传输所述故障节点在故障期间未同步的日志;
所述故障节点还用于:根据接收到的所述故障节点在故障期间未同步的日志,进行数据同步。
18.根据权利要求17所述的***,其特征在于,所述第一节点具体用于:
在所述第一节点的最大数据版本号与所述故障节点的最大数据版本号之间的差值大于所述第二阈值时,向所述故障节点传输所述第一节点的所有数据文件。
19.根据权利要求17或18所述的***,其特征在于,所述第一节点还用于:
为所述第一节点的数据文件设置数据版本号,所述数据版本号保持与所述第一节点的相应日志版本号一致;
当存在数据文件变动时,使所述数据版本号和所述日志版本号递增。
20.根据权利要求17-19任一所述的***,其特征在于,所述第一节点为主节点,所述故障节点为从节点,所述***为分布式数据同步***。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510854401.8A CN106817387B (zh) | 2015-11-28 | 2015-11-28 | 一种数据同步方法、装置和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510854401.8A CN106817387B (zh) | 2015-11-28 | 2015-11-28 | 一种数据同步方法、装置和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106817387A true CN106817387A (zh) | 2017-06-09 |
CN106817387B CN106817387B (zh) | 2021-01-29 |
Family
ID=59156286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510854401.8A Active CN106817387B (zh) | 2015-11-28 | 2015-11-28 | 一种数据同步方法、装置和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106817387B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108183965A (zh) * | 2018-01-15 | 2018-06-19 | 郑州云海信息技术有限公司 | 一种数据同步方法、装置、设备、***及可读存储介质 |
CN108416040A (zh) * | 2018-03-14 | 2018-08-17 | 上海达梦数据库有限公司 | 一种数据库修复方法、装置、终端设备及存储介质 |
CN110888790A (zh) * | 2019-11-29 | 2020-03-17 | 杭州迪普科技股份有限公司 | 日志管理方法及装置、电子设备、存储介质 |
CN111639132A (zh) * | 2020-05-29 | 2020-09-08 | 中国联合网络通信集团有限公司 | 日志同步方法及设备 |
CN112714149A (zh) * | 2020-11-27 | 2021-04-27 | 北京飞讯数码科技有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968486A (zh) * | 2012-11-26 | 2013-03-13 | 国电南瑞科技股份有限公司 | 一种基于变化日志的高可靠文件同步方法 |
CN103581231A (zh) * | 2012-07-25 | 2014-02-12 | 腾讯科技(北京)有限公司 | Ugc主备数据同步方法及其*** |
-
2015
- 2015-11-28 CN CN201510854401.8A patent/CN106817387B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103581231A (zh) * | 2012-07-25 | 2014-02-12 | 腾讯科技(北京)有限公司 | Ugc主备数据同步方法及其*** |
CN102968486A (zh) * | 2012-11-26 | 2013-03-13 | 国电南瑞科技股份有限公司 | 一种基于变化日志的高可靠文件同步方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108183965A (zh) * | 2018-01-15 | 2018-06-19 | 郑州云海信息技术有限公司 | 一种数据同步方法、装置、设备、***及可读存储介质 |
CN108416040A (zh) * | 2018-03-14 | 2018-08-17 | 上海达梦数据库有限公司 | 一种数据库修复方法、装置、终端设备及存储介质 |
CN108416040B (zh) * | 2018-03-14 | 2020-10-27 | 上海达梦数据库有限公司 | 一种数据库修复方法、装置、终端设备及存储介质 |
CN110888790A (zh) * | 2019-11-29 | 2020-03-17 | 杭州迪普科技股份有限公司 | 日志管理方法及装置、电子设备、存储介质 |
CN110888790B (zh) * | 2019-11-29 | 2024-02-27 | 杭州迪普科技股份有限公司 | 日志管理方法及装置、电子设备、存储介质 |
CN111639132A (zh) * | 2020-05-29 | 2020-09-08 | 中国联合网络通信集团有限公司 | 日志同步方法及设备 |
CN111639132B (zh) * | 2020-05-29 | 2023-06-06 | 中国联合网络通信集团有限公司 | 日志同步方法及设备 |
CN112714149A (zh) * | 2020-11-27 | 2021-04-27 | 北京飞讯数码科技有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106817387B (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106817387A (zh) | 一种数据同步方法、装置和*** | |
CN104301142B (zh) | 一种配置文件的备份方法和设备 | |
CN111090699A (zh) | 业务数据的同步方法和装置、存储介质、电子装置 | |
US20070094659A1 (en) | System and method for recovering from a failure of a virtual machine | |
CN102984501A (zh) | 一种网络视频录像集群*** | |
CN101808127B (zh) | 数据备份方法、***和服务器 | |
CN102394914A (zh) | 集群脑裂处理方法和装置 | |
US20190141098A1 (en) | Method and System for Writing Trajectory Synchronization Among Multiple Clients | |
US8775859B2 (en) | Method, apparatus and system for data disaster tolerance | |
CN104320401A (zh) | 一种基于分布式文件***的大数据存储访问***及方法 | |
CN102098342A (zh) | 一种基于事务级的数据同步方法、装置及*** | |
CN102143194A (zh) | 数据同步的方法、***、中间数据节点及终止数据节点 | |
CN105677673B (zh) | 业务处理方法、装置及*** | |
WO2016177231A1 (zh) | 基于双主控的主备倒换方法及装置 | |
WO2012145963A1 (zh) | 数据管理***及方法 | |
CN103581276A (zh) | 集群管理装置、***、业务客户端及相应方法 | |
CN105407117A (zh) | 分布式备份数据的方法、装置和*** | |
CN103607310A (zh) | 一种异地容灾的仲裁方法 | |
CN106850255A (zh) | 一种多机备份的实现方法 | |
CN105069152A (zh) | 数据处理方法及装置 | |
CN111865632A (zh) | 分布式数据存储集群的切换方法及切换指令发送方法和装置 | |
CN108259569A (zh) | 一种基于ipsan共享存储的无代理连续数据保护方法 | |
Gokulakrishnan et al. | Data integrity and recovery management in cloud systems | |
CN106776151A (zh) | Samba集群tdb数据库记录备份方法、装置及*** | |
CN106027313B (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 |