CN106293996B - 数据同步方法、主设备、备份设备和系统 - Google Patents
数据同步方法、主设备、备份设备和系统 Download PDFInfo
- Publication number
- CN106293996B CN106293996B CN201510259312.9A CN201510259312A CN106293996B CN 106293996 B CN106293996 B CN 106293996B CN 201510259312 A CN201510259312 A CN 201510259312A CN 106293996 B CN106293996 B CN 106293996B
- Authority
- CN
- China
- Prior art keywords
- data
- alternate device
- main equipment
- fragment
- hash
- 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.)
- Active
Links
Abstract
本申请公开了一种该方法应用于备份设备,该备份设备和主设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应数据分片的备份;该备份设备和该主设备中分别配置有候选的多种哈希算法;当对该备份设备中一本地数据分片进行同步时,该方法包括:从所述候选的多种哈希算法中选择一种哈希算法,并使用所选择的哈希算法进行该本地数据分片与主设备中保存的对应数据分片之间的同步处理。根据本申请公开的技术方案,可以提高数据同步的准确性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据同步方法、主设备、备份设备和系统。
背景技术
为了应付数据丢失或损坏等可能出现的意外情况,用户可以将主设备中保存的某块数据复制到备份设备上进行备份,即制作一个保存在备份设备上的数据备份。这样,当此主设备中的数据出现丢失或损坏,可以从备份设备中恢复该数据,进而保证了数据存储的安全。当数据分别保存在主设备和一个或多个备份设备上时,需要保证主设备与备份设备中存储的数据之间的同步。
发明内容
本发明实施例提供一种数据同步方法、主设备、备份设备和系统,以提高数据同步的准确性。
一种数据同步方法,该方法应用于备份设备,该备份设备和主设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应数据分片的备份;该备份设备和该主设备中分别配置有候选的多种哈希算法;
当对该备份设备中一本地数据分片进行同步时,该方法包括:
从所述候选的多种哈希算法中选择一种哈希算法,并使用所选择的哈希算法进行该本地数据分片与主设备中保存的对应数据分片之间的同步处理。
一种数据同步方法,该方法应用于主设备,该主设备和备份设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应的数据分片的备份;该主设备和该备份设备中分别配置有候选的多种哈希算法;
当针对该备份设备中一本地数据分片进行同步时,该方法包括:
使用该备份设备所选择的哈希算法进行该本地数据分片与该备份设备中保存的对应数据分片之间的同步处理。
一种备份设备,该备份设备和主设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应数据分片的备份;该备份设备和该主设备中分别配置有候选的多种哈希算法,当对该备份设备中一本地数据分片进行同步时,所述备份设备包括:
选择模块,用于从所述候选的多种哈希算法中选择一种哈希算法;
同步模块,用于使用所选择的哈希算法进行该本地数据分片与主设备中保存的对应数据分片之间的同步处理。
一种主设备,该主设备和备份设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应的数据分片的备份;该主设备和该备份设备中分别配置有候选的多种哈希算法;当针对该备份设备中一本地数据分片进行同步时,所述主设备包括:
同步模块,用于使用该备份设备所选择的哈希算法进行该本地数据分片与该备份设备中保存的对应数据分片之间的同步处理。
一种数据同步系统,包括主设备和备份设备,该备份设备和主设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应数据分片的备份;该备份设备和该主设备中分别配置有候选的多种哈希算法;
所述备份设备用于当对一本地数据分片进行同步时,从所述候选的多种哈希算法中选择一种哈希算法,并将所选择的哈希算法通知给所述主设备;
所述备份设备和所述主设备使用所选择的哈希算法并通过网络交互进行该备份设备中该数据分片与主设备中对应数据分片之间的同步处理。
根据本发明实施例的移动支付数据的传输方法,该备份设备和主设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应数据分片的备份;该备份设备和该主设备中分别配置有候选的多种哈希算法;当对该备份设备中一本地数据分片进行同步时,从候选的多种哈希算法中选择一种哈希算法,并使用所选择的哈希算法进行该本地数据分片与主设备中保存的对应数据分片之间的同步处理。从而,当主设备中的数据分片和备份设备中对应数据分片不同步时,由于后续的一次或多次数据同步中都会选择哈希算法而不是采用固定的哈希算法,这样可以使备份设备中的数据分片在后续的数据同步中得以基于其它哈希算法与主设备中对应的数据分片实现同步,提高了数据同步的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个实施例中数据同步系统的结构图。
图2为本发明一个实施例中数据同步方法的流程图。
图3为本发明另一个实施例中数据同步方法的流程图。
图4为本发明另一个实施例中数据同步方法的流程图。
图5为本发明一实施例中备份设备的结构示意图。
图6为本发明一实施例中主设备的结构示意图。
图7为本发明一个实施例中数据同步系统的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的发明人在研究过程中发现,在数据同步的过程中,一个数据文件可被划分为多个数据分片(data segment)(也称为“数据块”)。主设备将备份设备中保存的数据分片与该主设备中保存的对应数据分片进行逐一比较。如果备份设备中保存的数据分片与主设备中保存的对应的数据分片不相同,主设备针对该数据分片与备份设备进行数据同步。在一个实例中,采用哈希(Hash)算法来进行数据同步,其中,主设备比较本地数据分片的哈希值与保存在备份设备中的对应数据分片的哈希值,如果不相同,则判定这两个数据分片不同,主设备再针对该数据分片与备份设备进行数据同步。这里,数据分片的哈希值是利用哈希算法计算得到的,由于哈希算法存在误判率,即:即使两个数据分片的哈希值相同,这两个数据分片也可能不相同。因此,当主设备中的数据分片和备份设备中对应数据分片不同步时,如果多次数据同步都采用固定的哈希算法,并且使用该算法计算得到的主设备中的数据分片的哈希值和备份设备中的对应数据分片的哈希值相同,那么,上述对该数据分片进行的多次同步处理都无法使备份设备中的数据分片与主设备中对应的数据分片同步,使得备份设备和主设备之间的数据同步还不够准确。
有鉴于此,本发明实施例提出了一种数据同步方法。根据本发明实施例提供的方法,该备份设备和主设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应数据分片的备份;该备份设备和该主设备中分别配置有候选的多种哈希算法;当对该备份设备中一本地数据分片进行同步时,从所述候选的多种哈希算法中选择一种哈希算法,并使用所选择的哈希算法进行该本地数据分片与主设备中保存的对应数据分片之间的同步处理。从而,提高了数据同步的准确性。
图1是本发明一个实施例中数据同步系统的结构图。如图1所示,系统100包括主设备110、以及至少一个备份设备120。每个备份设备120和主设备110分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应数据分片的备份。该备份设备和该主设备中分别配置有候选的多种哈希算法。
每个备份设备120用于当对该备份设备120中一本地数据分片进行同步时,从所述候选的多种哈希算法中选择一种哈希算法,并使用所选择的哈希算法进行该本地数据分片与主设备中保存的对应数据分片之间的同步处理。
在本发明一个实施例中,备份设备120可以是具有数据计算处理及存储功能的计算设备,包括但不限于个人计算机、服务器等。例如,如图1所示,备份设备120可以包括处理器122、非易失性计算机可读存储器124、I/O接口126、网络通信接口128、和另一个非易失性计算机可读存储器129。这些组件通过总线125进行通信。
在本发明一个实施例中,非易失性计算机可读存储器124中存储有多个程序模块:操作系统132、I/O模块134、通信模块136和应用程序138。处理器122可以读取存储器中的程序模块来实现本发明实施例提供的方案。
在本发明一个实施例中,非易失性计算机可读存储器129,用于存储待同步的数据。该非易失性存储器129可以包括纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。
在本发明一个实施例中,I/O接口126可以与输入/输出设备连接,例如触摸屏、麦克风、扬声器等。I/O接口126将从输入设备接收到的输入数据发送给I/O模块134进行处理,并将I/O模块134输出的数据发送给输出设备。
在本发明一个实施例中,网络通信接口128可以将从通信网络140接收到的数据发送给通信模块136,并将从通信模块136接收到的数据通过通信网络140发送出去。
存储在存储器124中的应用程序138中可以包含数据同步应用139。备份设备120可以通过该数据同步应用139实现与备份设备终端之间的数据同步。如图1所示,该数据同步应用139可以包括选择模块501,同步模块502,本文后续会对模块501-502的具体功能和工作原理做详述。处理器122可以通过执行数据同步应用139来从所述候选的多种哈希算法中选择一种哈希算法,并使用所选择的哈希算法进行该本地数据分片与主设备中保存的对应数据分片之间的同步处理。
该主设备110用于使用该备份设备120所选择的哈希算法进行该本地数据分片与该备份设备120中保存的对应数据分片之间的同步处理。
在本发明一个实施例中,主设备110可以是具有数据计算处理及存储功能的计算设备,包括但不限于个人计算机、服务器等。例如,如图1所示,主设备110可以包括处理器102、非易失性计算机可读存储器104、I/O接口106、网络通信接口108、和另一个非易失性计算机可读存储器109。这些组件通过总线105进行通信。
在本发明一个实施例中,非易失性计算机可读存储器104中存储有多个程序模块:操作系统112、I/O模块114、通信模块116和应用程序118。处理器102可以读取存储器中的程序模块来实现本发明实施例提供的方案。
在本发明一个实施例中,非易失性计算机可读存储器109,用于存储待同步的数据。该非易失性计算机可读存储器109可以包括纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。
在本发明一个实施例中,I/O接口106可以与输入/输出设备连接,例如触摸屏、麦克风、扬声器等。I/O接口106将从输入设备接收到的输入数据发送给I/O模块114进行处理,并将I/O模块114输出的数据发送给输出设备。
在本发明一个实施例中,网络通信接口108可以将从通信网络140接收到的数据发送给通信模块116,并将从通信模块116接收到的数据通过通信网络140发送出去。
存储在存储器104中的应用程序118中可以包含数据同步应用119。主设备可以通过该数据同步应用119实现与备份设备终端之间的数据同步。如图1所示,该数据同步应用119可以包括同步模块601,本文后续会对模块901-906的具体功能和工作原理做详述。处理器102可以通过执行数据同步应用119来与当针对该备份设备中一本地数据分片进行同步时,使用该备份设备所选择的哈希算法进行该本地数据分片与该备份设备中保存的对应数据分片之间的同步处理。
通信网络140可以是无线或者有线通信网络,例如IP网络、蜂窝移动通信网络等。
根据本发明实施例的移动支付数据的传输方法,该备份设备和主设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应数据分片的备份;该备份设备和该主设备中分别配置有候选的多种哈希算法;当对该备份设备中一本地数据分片进行同步时,从候选的多种哈希算法中选择一种哈希算法,并使用所选择的哈希算法进行该本地数据分片与主设备中保存的对应数据分片之间的同步处理。从而,当主设备中的数据分片和备份设备中对应数据分片不同步时,由于后续的一次或多次数据同步中都会选择哈希算法而不是采用固定的哈希算法,这样可以使备份设备中的数据分片在后续的数据同步中得以基于其它哈希算法与主设备中对应的数据分片实现同步,提高了数据同步的准确性。
图2是本发明实施例的一种数据同步方法的流程图。该方法应用于备份设备,该备份设备和主设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应数据分片的备份;该备份设备和该主设备中分别配置有候选的多种哈希算法。如图2所示,当对该备份设备中一本地数据分片进行同步时,该方法包括以下步骤。
步骤201,从所述候选的多种哈希算法中选择一种哈希算法。
每一数据分片具有位置信息,用于指示该数据分片在其所属数据文件中的位置。在本发明一个实施例中,该数据文件中各个数据分片的大小相同,每一数据分片的位置信息为该数据分片的索引;或者,该数据文件中的各个数据分片大小不完全相同,每一数据分片的位置信息为该数据分片中第一个基本数据单元的索引和所述数据分片中基本数据单元的数目,其中,所述数据文件由多个基本数据单元构成,且各基本数据单元具有各自的索引,每一数据分片包括一个或多个基本数据单元。
在本发明一个实施例中,确定之前对该数据分片进行同步处理时曾使用过的一种或多种哈希算法;从所述候选的多种哈希算法中选择一种与所确定的一种或多种哈希算法不同的哈希算法。例如,根据之前计算该数据分片的哈希值时曾使用过的一种或多种哈希算法的索引,按预先设定的选择算法,计算得到一索引;选择计算得到的索引所对应的哈希算法。再如,从除所确定的一种或多种哈希算法之外的候选哈希算法中,随机地选择一种哈希算法。
在本发明一个实施例中,从所述多种候选哈希算法中随机选择一种哈希算法。
步骤202,使用所选择的哈希算法进行该本地数据分片与主设备中保存的对应数据分片之间的同步处理。
在本发明一个实施例中,根据选择的所述哈希算法,计算该数据分片的哈希值;将该数据分片的位置信息、选择的所述哈希算法的索引和该数据分片的哈希值发送至主设备;其中,主设备根据接收到的哈希算法的索引确定当前使用的哈希算法,根据接收到的数据分片的位置信息确定当前同步的本地数据分片,根据当前使用的哈希算法计算当前同步的本地数据分片的哈希值,根据计算得到的哈希值和接收到的哈希值判断当前同步的本地数据分片是否与备份设备中对应的数据分片相同,若不同,将当前同步的本地数据分片及其位置信息发送至备份设备;当接收到来自主设备的数据分片及其位置信息时,备份设备使用接收到的数据分片替换接收到的索引所对应的本地保存的数据分片。
图3是本发明实施例的一种数据同步方法的流程图。该方法应用于主设备,该主设备和备份设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应的数据分片的备份;该主设备和该备份设备中分别配置有候选的多种哈希算法。如图3所示,当针对该备份设备中一本地数据分片进行同步时,该方法包括以下步骤。
步骤301,使用该备份设备所选择的哈希算法进行该本地数据分片与该备份设备中保存的对应数据分片之间的同步处理。
每一数据分片具有位置信息,用于指示该数据分片在其所属数据文件中的位置。在本发明一个实施例中,该数据文件中各个数据分片的大小相同,每一数据分片的位置信息为该数据分片的索引;或者,该数据文件中的各个数据分片大小不完全相同,每一数据分片的位置信息为该数据分片中第一个基本数据单元的索引和所述数据分片中基本数据单元的数目,其中,所述数据文件由多个基本数据单元构成,且各基本数据单元具有各自的索引,每一数据分片包括一个或多个基本数据单元。
在本发明一个实施例中,根据来自备份设备的哈希算法的索引,确定当前使用的哈希算法;根据来自备份设备的数据分片的位置信息,确定当前同步的本地数据分片;根据当前使用的哈希算法,计算当前同步的本地数据分片的哈希值;根据计算得到的哈希值和接收到的哈希值,判断当前同步的本地数据分片是否与备份设备中对应的数据分片相同,若不同,将当前同步的本地数据分片及其位置信息发送至该备份设备。
图4是本发明实施例的一种数据同步方法的流程图。该方法应用于主设备和备份设备。该方法应用于主设备和备份设备。数据同步的基本单位是数据分片。每个待同步的数据文件包括多个数据分片。每个数据分片可以包括至少一个基本数据单元。例如,每个互联网的社交号码(例如,QQ号码等即时通信号码、微博号码、微信号码等)具有特征信息,例如,号码的起始使用时间、昵称、用户性别等。可以将全部社交号码的所有特征信息都保存在一个数据文件。每个社交号码的特征信息可以是一个存储的基本数据单元。每个数据分片可以包括至少一个基本数据单元,也就是可以包括至少一个社交号码的特征信息。这样,本发明实施例可以用于社交号码相关的信息同步,这样,备份设备和主设备之间可以实现社交号码的特征信息的同步。该备份设备和主设备分别保存有多个数据分片。并且该备份设备中的任一数据分片是该主设备中一对应数据分片的备份。每个数据分片具有位置信息,用于指示数据分片在其所属的数据文件中的位置。如图4所示,该方法包括以下步骤。
步骤401,当针对该备份设备中一本地数据分片进行同步时,备份设备从候选的多种哈希算法中选择一种哈希算法。
在本发明一个实施例中,可以确定之前计算该数据分片的哈希值时曾使用过的一种或多种哈希算法。从候选的多种哈希算法中选择与所确定的一种或多种哈希算法不同的哈希算法。在本发明一个实施例中,可以从候选的多种哈希算法中随机选择与所确定的一种或多种哈希算法不同的哈希算法。在本发明另一个实施例中,可以根据之前计算该数据分片的哈希值时曾使用过的一种或多种哈希算法的索引,按预先设定的选择算法,计算得到本次计算该数据分片的哈希算法的索引,从候选的多种哈希算法中选择该哈希算法索引对应的哈希算法。例如,将前一次计算该数据分片的哈希值时曾使用过的哈希算法的索引加一,并除以候选哈希算法的数目,以获得余数,将该余数作为本次计算该数据分片的哈希值的哈希算法的索引。再如,将之前多种哈希算法的索引中的最大索引加一,并除以候选哈希算法的数目,以获得余数,将该余数作为本次计算该数据分片的哈希值的哈希算法的索引。再如,将之前多种哈希算法的索引中的最小索引减一,并除以候选哈希算法的数目,以获得余数,将该余数作为本次计算该数据分片的哈希值的哈希算法的索引。
在本发明一个实施例中,可以从多种候选哈希算法中随机选择一种哈希算法,作为本次计算该数据分片的哈希值的哈希算法。
步骤402,根据选择的哈希算法,备份设备计算该数据分片的哈希值。
步骤403,备份设备将该数据分片的位置信息、选择的哈希算法的索引和该数据分片的哈希值发送至主设备。
当数据文件中每个数据分片的大小相同,数据分片的位置信息为数据分片的索引。当数据文件中包括不同大小的数据分片时,数据分片的位置信息为数据分片中第一个基本数据单元的索引和数据分片中的基本数据单元的数目。例如,一个数据文件包括5个数据分片,各个数据分片的大小相同,每个数据分片包括100个基本数据单元。那么,该数据文件中第二个数据分片的位置信息为该数据分片的索引2。再如,另一个数据文件包括5个数据分片,各个数据分片的大小不完全相同。各个数据分片包括的基本数据单元数目分别为50、20、50、100和20。那么,该数据文件中第二个数据分片的位置信息为该数据分片中第一个基本数据单元的索引51和该数据分片中包括的基本数据单元数目20的组合,比如表达为“5120”,第三个数据分片的位置信息为该数据分片中第一个基本数据单元的索引71和该数据分片中包括的基本数据单元数目50,比如表达为“7150”。总之,本发明实施例并不限制数据分片位置信息的具体表达方式,只要这种位置信息能使主设备提取到指定的数据分片就属于本发明范畴的位置信息。
步骤404,根据来自备份设备的哈希算法的索引,主设备确定当前使用的哈希算法。
步骤405,根据来自备份设备的数据分片的位置信息,主设备确定当前同步的本地数据分片。
步骤406,根据当前使用的哈希算法,主设备计算当前同步的本地数据分片的哈希值。
步骤407,根据计算得到的哈希值和接收到的哈希值,主设备判断当前同步的本地数据分片是否与备份设备中对应的数据分片相同,若不同,将当前同步的本地数据分片及其位置信息发送至该备份设备。
在本发明一个实施例中,如果判断出前同步的本地数据分片是否与备份设备中对应的数据分片相同,则表示主设备保存的该数据分片与该备份设备保存的对应的数据分片同步。如果判断出前同步的本地数据分片是否与备份设备中对应的数据分片相同,则表示主设备保存的该数据分片与该备份设备保存的对应的数据分片同步,那么,可以将当前同步的本地数据分片及其位置信息发送至该备份设备。
步骤408,当接收到来自主设备的数据分片及其位置信息时,备份设备使用接收到的数据分片替换接收到的索引所对应的本地保存的数据分片。
在本发明一个实施例中,在步骤401之前,还可以进一步包括:备份设备将保存的数据文件进行分片,获得多个数据分片及每个数据分片的位置信息。
在本发明一个实施例中,备份设备可以根据当前通信网的链路传输状况确定数据分片的大小,这样可以在网络传输状态发生变化时,及时调整传输数据分片的大小,提高网络传输的效率。例如,如果当前通信网的链路传输状况良好并且稳定,备份设备可以根据预设的数据分片大小,例如,网络中预设的数据分片的大小(例如,网络中允许传输数据包大小的最大值),对本地存储的数据进行分片,获得的多个大小相同的数据分片。每个数据分片的位置信息为数据分片的索引。当主设备接收到的数据分片的位置信息由数据分片的索引构成时,主设备中对应的需要进行数据同步的数据分片的数据分片索引为接收到的索引,该数据分片大小为预设的数据分片大小。再如,如果当前通信网的链路传输状况不稳定,在对数据文件进行分片的过程中,可以根据当前网络的传输状态,对本地存储的数据进行分片,获得的多个数据分片的大小可能不同。每个数据分片的位置信息为该数据分片中第一个基本数据单元的索引和数据分片中的基本数据单元的数目。当主设备接收到的数据分片的位置信息由数据分片中第一个基本数据单元的索引和数据分片中的基本数据单元的数目构成,主设备中对应的需要进行数据同步的数据分片所包括的第一个基本数据单元索引为接收到的索引,该数据分片所包括的基本数据单元的数目为接收到的基本数据单元的数目。
图5为本发明实施例提供的一种备份设备的结构示意图。该备份设备500和其对应的主设备保存有多个数据分片,并且该备份设备500中的任一数据分片是主设备中一对应数据分片的备份;该备份设备500和该主设备中分别配置有候选的多种哈希算法。如图5所示,当对该备份设备中一本地数据分片进行同步时,该备份设备500包括以下模块:
选择模块501,用于从候选的多种哈希算法中选择一种哈希算法;
同步模块502,用于使用所选择的哈希算法进行该本地数据分片与主设备中保存的对应数据分片之间的同步处理。
在本发明一个实施例中,数据分片具有位置信息,用于指示数据分片在存储其的数据文件中的位置。
同步模块501包括:
计算单元5011,用于根据选择的哈希算法,计算该数据分片的哈希值;
发送单元5012,用于将该数据分片的位置信息、选择的哈希算法的索引和该数据分片的哈希值发送至主设备;其中,主设备根据接收到的哈希算法的索引确定当前使用的哈希算法,根据接收到的数据分片的位置信息确定当前同步的本地数据分片,根据当前使用的哈希算法计算当前同步的本地数据分片的哈希值,根据计算得到的哈希值和接收到的哈希值判断当前同步的本地数据分片是否与备份设备中对应的数据分片相同,若不同,将当前同步的本地数据分片及其位置信息发送至备份设备;
接收单元5013,用于接收到来自主设备的数据分片及其位置信息;
更新单元5014,用于当该接收单元接收到来自主设备的数据分片及其位置信息时,使用接收到的数据分片替换接收到的索引所对应的本地保存的数据分片。
在本发明一个实施例中,选择模块501用于确定之前对该数据分片进行同步处理时曾使用过的一种或多种哈希算法;从候选的多种哈希算法中选择一种与所确定的一种或多种哈希算法不同的哈希算法。
在本发明一个实施例中,选择模块501用于根据之前计算该数据分片的哈希值时曾使用过的一种或多种哈希算法的索引,按预先设定的选择算法,计算得到本次计算该数据分片使用的哈希算法的索引,从候选的多种哈希算法中选择该哈希算法索引对应的哈希算法。
在本发明一个实施例中,选择模块501用于从除确定的一种或多种哈希算法之外的候选哈希算法中,随机地选择一种哈希算法。
在本发明一个实施例中,选择模块501用于从多种候选哈希算法中随机选择一种哈希算法。
在本发明一个实施例中,当数据文件中每个数据分片的大小相同,该数据分片的位置信息为数据分片的索引,当数据文件中包括不同大小的数据分片时,数据分片的位置信息为数据分片中第一个基本数据单元的索引和数据分片中的基本数据单元的数目。
图6为本发明实施例提供的一种主设备的结构示意图。该主设备600和其对应的备份设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备600中一对应的数据分片的备份;该主设备600和该备份设备中分别配置有候选的多种哈希算法。如图6所示,当针对该备份设备中一本地数据分片进行同步时,该主设备600包括以下模块:
同步模块601,用于使用该备份设备所选择的哈希算法进行该本地数据分片与该备份设备中保存的对应数据分片之间的同步处理。
在本发明一个实施例中,数据分片具有位置信息,用于指示数据分片在存储其的数据文件中的位置。
该同步模块601包括:
接收单元6011,用于接收来自备份设备的哈希算法的索引、该数据分片的位置信息、该数据分片的哈希值;
第一确定单元6012,用于根据接收到的哈希算法的索引,确定当前使用的哈希算法;
第二确定单元6013,用于根据接收到的数据分片的位置信息,确定当前同步的本地数据分片;
计算单元6014,用于根据当前使用的哈希算法,计算当前同步的本地数据分片的哈希值;
判断单元6015,用于根据计算得到的哈希值和接收到的哈希值,判断当前同步的本地数据分片是否与备份设备中对应的数据分片相同;
发送单元6016,用于如果判断出当前同步的本地数据分片是否与备份设备中对应的数据分片相同,将当前同步的本地数据分片及其位置信息发送至该备份设备。
本发明实施例还提供了一种数据同步系统,如图7所示。该系统包括:主设备600和至少一个备份设备500。其中,每个备份设备500和主设备600分别保存有多个数据分片,并且该备份设备500中的任一数据分片是该主设备600中一对应数据分片的备份。该备份设备500和该主设备600中分别配置有候选的多种哈希算法其中,
备份设备500用于从候选的多种哈希算法中选择一种哈希算法,并将所选择的哈希算法通知给所述主设备600;
备份设备500和主设备600用于使用所选择的哈希算法并通过网络交互进行该备份设备500中该数据分片与该备份设备600中对应数据分片之间的同步处理。
在本发明一个实施例中,数据分片具有位置信息,用于指示数据分片在存储其的数据文件中的位置。
备份设备500用于根据选择的哈希算法,计算该数据分片的哈希值,将该数据分片的位置信息、选择的哈希算法的索引和该数据分片的哈希值发送至主设备;
主设备600用于根据接收到的哈希算法的索引确定当前使用的哈希算法,根据接收到的数据分片的位置信息确定当前同步的本地数据分片,根据当前使用的哈希算法计算当前同步的本地数据分片的哈希值,根据计算得到的哈希值和接收到的哈希值判断当前同步的本地数据分片是否与备份设备中对应的数据分片相同,若不同,将当前同步的本地数据分片及其位置信息发送至备份设备;
备份设备500用于当接收到来自主设备的数据分片及其位置信息时,使用接收到的数据分片替换接收到的索引所对应的本地保存的数据分片。
上述实施例提供的主设备、备份设备以及数据同步系统与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
下面给出本发明提供的数据同步方法、主设备、备份设备和系统具体使用场景举例。在一个使用场景中,即时通信号码(例如,QQ号码)共有几十亿个。每个号码具有各自的特征信息(例如,号码的起始使用时间、昵称、用户性别等)。全部即时通信号码的特征信息可以保存在主设备中,同时可以在至少一个备份设备中进行备份,即在每个备份设备中,制作一个保存在该备份设备上的数据备份。可以采用上述方法,对保存在主设备和每个备份设备之间的全量即时通信号码的特征信息进行数据同步。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。各实施例的功能模块可以位于一个终端或网络节点,或者也可以分布到多个终端或网络节点上。
另外,本发明的每一个实施例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本发明。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。
因此本发明还提供了一种存储介质,其中存储有数据处理程序,该数据处理程序用于执行本发明上述方法的任何一种实施例。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (15)
1.一种数据同步方法,其特征在于,该方法应用于备份设备,该备份设备和主设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应数据分片的备份;该备份设备和该主设备中分别配置有候选的多种哈希算法;
当对该备份设备中一本地数据分片进行同步时,该方法包括:
从所述候选的多种哈希算法中随机选择一种哈希算法,并使用所选择的哈希算法进行该备份设备中的本地数据分片与主设备中保存的对应数据分片之间的同步处理。
2.根据权利要求1所述的方法,其中,每一数据分片具有位置信息,用于指示该数据分片在其所属数据文件中的位置;所述使用所选择的哈希算法进行该备份设备中的本地数据分片与主设备中保存的对应数据分片之间的同步处理,包括:
根据选择的所述哈希算法,计算该数据分片的哈希值;
将该数据分片的位置信息、选择的所述哈希算法的索引和该数据分片的哈希值发送至主设备;其中,主设备根据接收到的哈希算法的索引确定当前使用的哈希算法,根据接收到的数据分片的位置信息确定当前同步的该主设备中的本地数据分片,根据当前使用的哈希算法计算当前同步的该主设备中的本地数据分片的哈希值,根据计算得到的哈希值和接收到的哈希值判断当前同步的该主设备中的本地数据分片是否与备份设备中对应的数据分片相同,若不同,将当前同步的该主设备中的本地数据分片及其位置信息发送至备份设备;
当接收到来自主设备的数据分片及其位置信息时,使用接收到的数据分片替换接收到的位置信息所对应的该备份设备本地保存的数据分片。
3.根据权利要求2所述的方法,其特征在于,所述数据文件中各个数据分片的大小相同,每一数据分片的位置信息为该数据分片的索引;或者,
所述数据文件中的各个数据分片大小不完全相同,每一数据分片的位置信息为该数据分片中第一个基本数据单元的索引和所述数据分片中基本数据单元的数目,其中,所述数据文件由多个基本数据单元构成,且各基本数据单元具有各自的索引,每一数据分片包括一个或多个基本数据单元。
4.一种数据同步方法,其特征在于,该方法应用于备份设备,该备份设备和主设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应数据分片的备份;该备份设备和该主设备中分别配置有候选的多种哈希算法;
当对该备份设备中一本地数据分片进行同步时,该方法包括:
确定之前对该数据分片进行同步处理时曾使用过的一种或多种哈希算法;
从除所确定的一种或多种哈希算法之外的候选哈希算法中,随机地选择一种哈希算法,并使用所选择的哈希算法进行该备份设备中的本地数据分片与主设备中保存的对应数据分片之间的同步处理。
5.一种数据同步方法,其特征在于,该方法应用于主设备,该主设备和备份设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应的数据分片的备份;该主设备和该备份设备中分别配置有候选的多种哈希算法;
当针对该备份设备中一本地数据分片进行同步时,该方法包括:
使用该备份设备所选择的哈希算法进行该主设备中的本地数据分片与该备份设备中保存的对应数据分片之间的同步处理,其中,当对该备份设备中一本地数据分片进行同步时,该备份设备从所述候选的多种哈希算法中随机选择一种哈希算法。
6.根据权利要求5所述的方法,其特征在于,每一数据分片具有位置信息,用于指示所述数据分片在其所属的数据文件中的位置;所述使用该备份设备所选择的哈希算法进行该主设备中的本地数据分片与该备份设备中保存的对应数据分片之间的同步处理,包括:
根据来自备份设备的哈希算法的索引,确定当前使用的哈希算法;
根据来自备份设备的数据分片的位置信息,确定当前同步的该主设备中的本地数据分片;
根据当前使用的哈希算法,计算当前同步的该主设备中的本地数据分片的哈希值;
根据计算得到的哈希值和从备份设备接收到的哈希值,判断当前同步的该主设备中的本地数据分片是否与备份设备中对应的数据分片相同,若不同,将当前同步的该主设备中的本地数据分片及其位置信息发送至该备份设备。
7.一种备份设备,其特征在于,该备份设备和主设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应数据分片的备份;该备份设备和该主设备中分别配置有候选的多种哈希算法,当对该备份设备中一本地数据分片进行同步时,所述备份设备包括:
选择模块,用于从所述候选的多种哈希算法中随机选择一种哈希算法;
同步模块,用于使用所选择的哈希算法进行该备份设备中的本地数据分片与主设备中保存的对应数据分片之间的同步处理。
8.根据权利要求7所述的备份设备,其中,所述数据分片具有位置信息,用于指示所述数据分片在存储其的数据文件中的位置;所述同步模块包括:
计算单元,用于根据选择的所述哈希算法,计算该数据分片的哈希值;
发送单元,用于将该数据分片的位置信息、选择的所述哈希算法的索引和该数据分片的哈希值发送至主设备;其中,主设备根据接收到的哈希算法的索引确定当前使用的哈希算法,根据接收到的数据分片的位置信息确定当前同步的该主设备中的本地数据分片,根据当前使用的哈希算法计算当前同步的该主设备中的本地数据分片的哈希值,根据计算得到的哈希值和接收到的哈希值判断当前同步的该主设备中的本地数据分片是否与备份设备中对应的数据分片相同,若不同,将当前同步的该主设备中的本地数据分片及其位置信息发送至备份设备;
接收单元,用于接收到来自主设备的数据分片及其位置信息;
更新单元,用于当该接收单元接收到来自主设备的数据分片及其位置信息时,使用接收到的数据分片替换接收到的位置信息所对应的该备份设备本地保存的数据分片。
9.根据权利要求8所述的备份设备,其特征在于,当所述数据文件中各个数据分片的大小相同,每个数据分片的位置信息为该数据分片的索引;或者,
当所述数据文件中各个数据分片的大小不完全相同,每个数据分片的位置信息为所述数据分片中第一个基本数据单元的索引和所述数据分片中基本数据单元的数目,其中,所述数据文件由多个基本数据单元构成,且各基本数据单元具有各自的索引,每个数据分片包括一个或多个基本数据单元。
10.一种备份设备,其特征在于,该备份设备和主设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应数据分片的备份;该备份设备和该主设备中分别配置有候选的多种哈希算法,当对该备份设备中一本地数据分片进行同步时,所述备份设备包括:
选择模块,用于确定之前对该数据分片进行同步处理时曾使用过的一种或多种哈希算法;
所述选择模块,用于从除所确定的一种或多种哈希算法之外的候选哈希算法中,随机地选择一种哈希算法;
同步模块,用于使用所选择的哈希算法进行该备份设备中的本地数据分片与主设备中保存的对应数据分片之间的同步处理。
11.一种主设备,其特征在于,该主设备和备份设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应的数据分片的备份;该主设备和该备份设备中分别配置有候选的多种哈希算法;当针对该备份设备中一本地数据分片进行同步时,所述主设备包括:
同步模块,用于使用该备份设备所选择的哈希算法进行该主设备中的本地数据分片与该备份设备中保存的对应数据分片之间的同步处理,其中,当对该备份设备中一本地数据分片进行同步时,该备份设备从所述候选的多种哈希算法中随机选择一种哈希算法。
12.根据权利要求11所述的主设备,其特征在于,每个数据分片具有位置信息,用于指示所述数据分片在其所属的数据文件中的位置;所述同步模块包括:
接收单元,用于接收来自备份设备的哈希算法的索引、该数据分片的位置信息、该数据分片的哈希值;
第一确定单元,用于根据接收到的哈希算法的索引,确定当前使用的哈希算法;
第二确定单元,用于根据接收到的数据分片的位置信息,确定当前同步的该主设备中的本地数据分片;
计算单元,用于根据当前使用的哈希算法,计算当前同步的该主设备中的本地数据分片的哈希值;
判断单元,用于根据计算得到的哈希值和从备份设备接收到的哈希值,判断当前同步的该主设备中的本地数据分片是否与备份设备中对应的数据分片相同;
发送单元,用于如果判断出当前同步的该主设备中的本地数据分片与备份设备中对应的数据分片不相同,将当前同步的该主设备中的本地数据分片及其位置信息发送至该备份设备。
13.一种数据同步系统,其特征在于,包括主设备和备份设备,该备份设备和主设备分别保存有多个数据分片,并且该备份设备中的任一数据分片是该主设备中一对应数据分片的备份;该备份设备和该主设备中分别配置有候选的多种哈希算法;
所述备份设备用于当对该备份设备中一本地数据分片进行同步时,从所述候选的多种哈希算法中随机选择一种哈希算法,并将所选择的哈希算法通知给所述主设备;
所述备份设备和所述主设备使用所选择的哈希算法并通过网络交互进行该备份设备中该数据分片与主设备中对应数据分片之间的同步处理。
14.根据权利要求13所述的系统,其特征在于,每个数据分片具有位置信息,用于指示该数据分片在其所属的数据文件中的位置;
所述备份设备用于根据选择的所述哈希算法,计算该数据分片的哈希值,将该数据分片的位置信息、选择的所述哈希算法的索引和该数据分片的哈希值发送至主设备;
所述主设备用于根据接收到的哈希算法的索引确定当前使用的哈希算法,根据接收到的数据分片的位置信息确定当前同步的该主设备中的本地数据分片,根据当前使用的哈希算法计算当前同步的该主设备中的本地数据分片的哈希值,根据计算得到的哈希值和接收到的哈希值判断当前同步的该主设备中的本地数据分片是否与备份设备中对应的数据分片相同,若不同,将当前同步的该主设备中的本地数据分片及其位置信息发送至备份设备;
所述备份设备用于当接收到来自主设备的数据分片及其位置信息时,使用接收到的数据分片替换接收到的位置信息所对应的该备份设备本地保存的数据分片。
15.一种计算机可读存储介质,其特征在于,存储有机器可读指令,可以使至少一个处理器执行如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510259312.9A CN106293996B (zh) | 2015-05-20 | 2015-05-20 | 数据同步方法、主设备、备份设备和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510259312.9A CN106293996B (zh) | 2015-05-20 | 2015-05-20 | 数据同步方法、主设备、备份设备和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106293996A CN106293996A (zh) | 2017-01-04 |
CN106293996B true CN106293996B (zh) | 2019-11-08 |
Family
ID=57632549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510259312.9A Active CN106293996B (zh) | 2015-05-20 | 2015-05-20 | 数据同步方法、主设备、备份设备和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106293996B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491565B (zh) * | 2017-10-10 | 2020-01-14 | 语联网(武汉)信息技术有限公司 | 一种数据同步方法 |
CN110958171A (zh) * | 2019-11-29 | 2020-04-03 | 盛科网络(苏州)有限公司 | 基于主备设备的数据同步方法及系统 |
CN113872996A (zh) * | 2020-06-30 | 2021-12-31 | 华为技术有限公司 | 数据对账方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156727A (zh) * | 2011-04-01 | 2011-08-17 | 华中科技大学 | 一种采用双指纹哈希校验的重复数据删除方法 |
CN103077242A (zh) * | 2013-01-11 | 2013-05-01 | 北京佳讯飞鸿电气股份有限公司 | 一种实现数据库服务器双机热备的方法 |
CN103838645A (zh) * | 2014-01-02 | 2014-06-04 | 上海爱数软件有限公司 | 一种基于哈希的远程差异合成备份实现方法 |
CN104468548A (zh) * | 2014-11-28 | 2015-03-25 | 华为技术有限公司 | 一种数据验证的方法、灾备存储器和生产存储器 |
-
2015
- 2015-05-20 CN CN201510259312.9A patent/CN106293996B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156727A (zh) * | 2011-04-01 | 2011-08-17 | 华中科技大学 | 一种采用双指纹哈希校验的重复数据删除方法 |
CN103077242A (zh) * | 2013-01-11 | 2013-05-01 | 北京佳讯飞鸿电气股份有限公司 | 一种实现数据库服务器双机热备的方法 |
CN103838645A (zh) * | 2014-01-02 | 2014-06-04 | 上海爱数软件有限公司 | 一种基于哈希的远程差异合成备份实现方法 |
CN104468548A (zh) * | 2014-11-28 | 2015-03-25 | 华为技术有限公司 | 一种数据验证的方法、灾备存储器和生产存储器 |
Also Published As
Publication number | Publication date |
---|---|
CN106293996A (zh) | 2017-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112769897B (zh) | 边缘计算消息的同步方法、装置、电子设备及存储介质 | |
CN111008075B (zh) | 一种负载均衡系统、方法、装置、设备及介质 | |
CN106815254B (zh) | 一种数据处理方法和装置 | |
CN110276060B (zh) | 数据处理的方法以及装置 | |
CN108681900A (zh) | 轻节点验证交易的方法 | |
CN106293996B (zh) | 数据同步方法、主设备、备份设备和系统 | |
CN106330788B (zh) | 报文分片传输方法和装置 | |
CN110502572A (zh) | 一种数据同步的方法及服务器 | |
CN108875035B (zh) | 分布式文件系统的数据存储方法及相关设备 | |
CN107295412B (zh) | 数据处理方法、装置及系统 | |
CN113596107A (zh) | 一种基于区块链的数据同步方法和装置 | |
CN109101306A (zh) | 一种共享方法、装置、终端及计算机可读存储介质 | |
CN109688176B (zh) | 一种文件同步方法及终端、网络设备、存储介质 | |
CN111555984A (zh) | 用于数据传输的方法及装置、智能家居设备、存储介质 | |
CN108989311A (zh) | 生成输入参数的方法及设备 | |
CN112650710B (zh) | 数据迁移的发送方法及装置、存储介质、电子装置 | |
US20170346753A1 (en) | Method and device for forwarding data messages | |
WO2021077862A1 (zh) | 文件同步方法及装置 | |
CN103220349A (zh) | 源用户与目标用户之间通信数据恢复的方法、装置及设备 | |
CN110489568B (zh) | 生成事件图的方法、装置、存储介质和电子设备 | |
CN110134547B (zh) | 一种基于中间件的重复数据删除方法和相关装置 | |
CN106385322A (zh) | 一种数据组呼方法、装置及系统 | |
CN106682511B (zh) | 疑似病毒文件的收集方法及装置 | |
US20150365365A1 (en) | Method and apparatus for modifying message | |
CN107690166B (zh) | 一种vmi平台的接入方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |