CN105554081A - 一种文件差量的传输方法以及装置 - Google Patents
一种文件差量的传输方法以及装置 Download PDFInfo
- Publication number
- CN105554081A CN105554081A CN201510909294.4A CN201510909294A CN105554081A CN 105554081 A CN105554081 A CN 105554081A CN 201510909294 A CN201510909294 A CN 201510909294A CN 105554081 A CN105554081 A CN 105554081A
- Authority
- CN
- China
- Prior art keywords
- file
- block
- data
- match
- match block
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000005540 biological transmission Effects 0.000 title claims abstract description 19
- 238000004891 communication Methods 0.000 claims abstract description 16
- 230000008569 process Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000000903 blocking effect Effects 0.000 description 5
- 230000007423 decrease Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 241000931705 Cicada Species 0.000 description 1
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种文件差量的传输方法以及装置,涉及通信领域,用以解决客户端对于每部分差量数据均需要向服务器发送一次上传请求的技术问题。该方法包括:客户端确定第二文件中,该第二文件相比第一文件的N份差量数据以及L个匹配块;将所述N份差量数据合并为M个差量块;M是小于N的正整数;将所述M个差量块以及所述L个匹配块的属性信息发送至所述服务器;其中,所述L个匹配块的属性信息被用于将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的数据块,合并为所述第二文件。本发明实施例用于差量数据传输。
Description
技术领域
本发明涉及通信领域,尤其涉及一种文件差量的传输方法以及装置。
背景技术
随着云存储服务的普及,越来越多的人选择将个人的文件上传到网盘中进行备份,人们对文件上传速度的要求也越来越高,于是发展出了利用文件特征码,实现“忽略式”上传的技术。在有限的网络带宽条件下,“忽略式”上传技术提升了文件上传效率。
具体地,“忽略式”上传技术是指,客户端在确定待上传的文件A后,计算该文件A的特征码,并将该特征码发送至服务器。其中,该特征码可以是信息-摘要算法第五版(英文全称:Message-DigestAlgorithm5,简称MD5),也可以是安全哈希算法第一版(英文全称:SecureHashAlgorithm,简称:SHA1)。这样,若该服务器上存在与文件A具有相同特征码的文件B,则该服务器可以直接向该客户端返回上传成功消息,不需要客户端再上传文件A;若该服务器上不存在与该文件A具有相同特征码的文件,但存在与该文件A具有相同文件名的文件C,在此情况下,该客户端还可以通过Rsync算法计算出该文件A相比该文件C的差量数据,并将该差量数据发送至该服务器,由该服务器利用该文件C与该差量数据相结合,在该服务器上生成与该文件A相一致的文件,从而无需客户端将整个文件A上传至服务器。
并且,现有技术中,为了便于服务器能够正确合并文件C与差量数据,客户端是按照差量数据以及匹配数据在文件A中的顺序,依次发送差量数据和匹配数据的标识至服务器,该服务器按照接收顺序,合并该差量数据以及文件C中对应该匹配数据标识的数据。也就是说,客户端在上传差量数据时,对于每部分差量数据均需要向服务器发送一次上传请求,上传过程复杂,在文件A与文件C之间的差量数据较多,且分散在文件A的多个不同位置时,客户端的多次上传会增加客户端以及服务器的负载。
发明内容
本发明的目的是提供一种文件差量的传输方法以及装置,用于解决现有技术中,客户端对于每部分差量数据均需要向服务器发送一次上传请求的技术问题。
上述目的将通过独立权利要求中的特征来达成。进一步的实现方式在从属权利要求、说明书和附图中体现。
第一方面,提供一种文件差量的传输方法,服务器保存第一文件,所述方法用于将第二文件保存到所述服务器,所述方法包括:客户端确定所述第二文件中,所述第二文件相比所述第一文件的N份差量数据以及L个匹配块;所述第一文件中存在与每个所述匹配块相一致的数据块,所述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于0的正整数;将所述N份差量数据合并为M个差量块;M是小于N的正整数;将所述M个差量块以及所述L个匹配块的属性信息发送至所述服务器;其中,所述L个匹配块的属性信息被用于将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的数据块,合并为所述第二文件。
也就是说,客户端在上传差量数据时,并非对分布在不同位置的每一份差量数据均向服务器请求一次上传,而是先将差量数据合并为数据量更大的差量块,并以差量块为最小单位进行上传,减少了客户端向服务器发送请求的数量,进而减轻了服务器的负载。
在结合第一方面的第一种可能的实现方式中,所述L个匹配块的属性信息包括所述第一文件中与每个所述匹配块相一致的数据块的标识,以及每个所述匹配块在所述第二文件中的偏移量;其中,所述数据块的标识被用于确定所述第一文件中与所述L个匹配块相一致的L个数据块,所述偏移量是每个所述匹配块在所述第二文件中的起始地址与所述第二文件的首地址之间的差值,所述L个匹配块的偏移量被用于将所述M个差量块与所述L个数据块合并为所述第二文件。也就是说,为了确保服务器在接收到差量块后,能够将差量块与第一文件中的数据块正确合并为第二文件,需要该匹配块的属性信息能够正确表明匹配块与差量数据之间的位置,上述方案提供了一种优选的实现方式,即匹配块的属性信息包括第一文件中与该匹配块相一致的数据块的标识以及该匹配块在第二文件中的偏移量。
结合第一方面,或者第一方面的第二种可能的实现方式,所述客户端确定所述第二文件中,所述第二文件相比所述第一文件的N份差量数据以及L个匹配块包括:接收服务器发送的所述第一文件的文件分块信息;根据所述文件分块信息通过Rsync算法确定所述第二文件中,与所述第一文件中的数据块相一致的所述匹配块。其中,所述文件分块信息包括第一文件中的数据块的标识,所述客户端确定出所述第二文件中,与所述第一文件中的数据块相一致的匹配块后,可以记录与所述匹配块相一致的数据块的标识,这样,所述服务器在接收到与所述匹配块相一致的数据块的标识后,即可在所述第一文件中确定出与所述匹配块相一致的数据块。
第二方面,提供一种文件差量传输的方法,服务器保存第一文件,所述方法用于将第二文件保存到所述服务器,包括:服务器接收客户端发送的M个差量块以及L个匹配块的属性信息;所述M个差量块是所述第二文件相比所述第一文件的N份差量数据合并而成的;所述第一文件中存在与每个所述匹配块相一致的数据块;所述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于0的正整数,M是小于N的正整数;根据所述L个匹配块的属性信息将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的数据块,合并为所述第二文件。
上述方案中,服务器接收客户端以差量块为最小单位上传的差量数据,相比现有技术中,服务器要接收客户端针对N份差量数据发送的N次上传请求,上述方案减少了服务器处理上传请求的数目,进而减轻了服务器的负载。
在结合第二方面的第一种可能的实现方式中,所述L个匹配块的属性信息包括所述第一文件中与每个所述匹配块相一致的数据块的标识,以及每个所述匹配块在所述第二文件中的偏移量;所述偏移量是所述匹配块在所述第二文件中的起始地址与所述第二文件的首地址之间的差值;所述根据所述L个匹配块的属性信息将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的所述数据块,合并为所述第二文件,包括:根据所述数据块的标识确定所述第一文件中与所述L个匹配块相一致的L个数据块;根据所述L个匹配块的偏移量将所述M个差量块以及所述L个数据块合并为所述第二文件。
第三方面,提供一种客户端,服务器保存第一文件,所述客户端用于将第二文件保存到所述服务器,所述客户端包括:确定单元,用于确定所述第二文件中,所述第二文件相比第一文件的N份差量数据以及L个匹配块;所述第一文件中存在与每个所述匹配块相一致的数据块,所述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于0的正整数;合并单元,用于将所述N份差量数据合并为M个差量块;M是小于N的正整数;发送单元,用于将所述M个差量块以及所述L个匹配块的属性信息发送至所述服务器;其中,所述L个匹配块的属性信息被用于将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的所述数据块,合并为所述第二文件。
结合第二方面,在第二方面的第一种可能的实现方式中,所述L个匹配块的属性信息包括所述第一文件中与每个所述匹配块相一致的数据块的标识,以及每个所述匹配块在所述第二文件中的偏移量;其中,所述数据块的标识被用于确定所述第一文件中与所述L个匹配块相一致的L个数据块,所述偏移量是每个所述匹配块在所述第二文件中的起始地址与所述第二文件的首地址之间的差值,所述L个匹配块的偏移量被用于将所述M个差量块与所述L个数据块合并为所述第二文件。
值得说明的是,以上对客户端功能单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,并且,上述功能单元的物理实现也可以有不同的方式,例如,上述确定单元具体可以一中央处理器,也可以是一特定集成电路,上述合并单元具体可以是能够根据处理器的指令,对数据进行读写的数据读写装置,上述发送单元可以是一发射机。
第四方面,提供一种服务器,所述服务器保存第一文件,包括:接收单元,用于接收客户端发送的M个差量块以及L个匹配块的属性信息;所述M个差量块是待保存到所述服务器的第二文件相比所述第一文件的N份差量数据合并而成的;所述第一文件中存在与每个所述匹配块相一致的数据块,所述述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于0的正整数,M是小于N的正整数;合并单元,用于根据所述L个匹配块的属性信息将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的数据块,合并为所述第二文件。
在结合第四方面的第一种可能的实现方式中,所述L个匹配块的属性信息包括所述第一文件中与每个所述匹配块相一致的数据块的标识,以及每个所述匹配块在所述第二文件中的偏移量;所述偏移量是所述匹配块在所述第二文件中的起始地址与所述第二文件的首地址之间的差值;所述合并单元具体用于:根据所述数据块的标识确定所述第一文件中与所述L个匹配块相一致的L个数据块;根据所述L个匹配块的偏移量将所述M个差量块以及所述L个数据块合并为所述第二文件。
值得说明的是,以上对服务器功能单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,并且,上述合并单元具体可以是能够根据处理器的指令,对数据进行读写的数据读写装置,上述接收单元可以是一接收机。
第五方面,提供一种客户端,服务器保存第一文件,所述客户端用于将第二文件保存到所述服务器,所述客户端包括:处理器、发射机、接收机和通信总线;其中,所述处理器、所述发射机和所述接收机通过所述通信总线完成相互间的通信;所述处理器用于:确定所述第二文件中,所述第二文件相比所述第一文件的N份差量数据以及L个匹配块;所述第一文件中存在与每个所述匹配块相一致的数据块,所述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于0的正整数;将所述N份差量数据合并为M个差量块;M是小于N的正整数;将所述M个差量块以及所述L个匹配块的属性信息发送至所述服务器;其中,所述L个匹配块的属性信息被用于将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的数据块,合并为所述第二文件。
结合第五方面,在第五方面的第一种可能的实现方式中,所述L个匹配块的属性信息包括所述第一文件中与每个所述匹配块相一致的数据块的标识,以及每个所述匹配块在所述第二文件中的偏移量;其中,所述数据块的标识被用于确定所述第一文件中与所述L个匹配块相一致的L个数据块,所述偏移量是每个所述匹配块在所述第二文件中的起始地址与所述第二文件的首地址之间的差值,所述L个匹配块的偏移量被用于将所述M个差量块与所述L个数据块合并为所述第二文件。
第六方面,提供一种服务器,包括:存储器、处理器、发射机、接收机和通信总线;其中,所述处理器、所述发射机和所述接收机通过所述通信总线完成相互间的通信;所述存储器保存第一文件;所述处理器用于:接收客户端发送的M个差量块以及L个匹配块的属性信息;所述M个差量块是待保存到所述服务器的第二文件相比所述第一文件的N份差量数据合并而成的;所述第一文件中存在与每个所述匹配块相一致的数据块,所述述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于0的正整数,M是小于N的正整数;根据所述L个匹配块的属性信息将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的数据块,合并为所述第二文件。
在结合第六方面的第一种可能的实现方式中,所述L个匹配块的属性信息包括所述第一文件中与每个所述匹配块相一致的数据块的标识,以及所述L个匹配块在所述第二文件中的偏移量;所述偏移量是所述匹配块在所述第二文件中的起始地址与所述第二文件的首地址之间的差值;所述处理器具体用于:根据所述数据块的标识确定所述第一文件中与所述L个匹配块相一致的L个数据块;根据所述L个匹配块的偏移量将所述M个差量块以及所述L个数据块合并为所述第二文件。
在上述某些方面可能的实现方式中,客户端是按照所述N份差量数据在所述第二文件中的地址从小到大的顺序将所述N份差量数据合并为M个差量块,则所述服务器根据所述L个匹配块的偏移量将所述M个差量块以及所述L个数据块合并为所述第二文件,包括:从所述服务器的存储地址D1+Pk处开始,写入所述第一文件中与第K个所述匹配块相一致的数据块;其中,D1是所述服务器中用于存储所述第二文件的存储区域的首地址,Pk是第k个所述匹配块的偏移量,1≤K≤L;从所述服务器的存储地址D1处开始,在所述存储区域的空闲地址处依次写入所述M个差量块中的差量数据。上述只是服务器合并所述M个差量块以及所述L个数据块的一个示例,本领域的技术人员应该知晓,对于所述差量块和所述数据块进行合并的顺序本发明不做限定。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种应用Rsync算法确定两个文件之间的差量数据的方法流程图;
图2为基于图1所示方法确定出的文件A相比文件C的差量数据以及匹配块;
图3为本发明实施例提供的一种文件差量的传输方法的流程示意图;
图4为本发明实施例提供的服务器合并差量块与第一文件中的数据块的方法流程图;
图5为本发明实施例提供的客户端将差量数据合并为差量块的一个示例;
图6为本发明实施例提供的服务器合并差量块与第一文件中的数据块的一个示例;
图7为本发明实施例提供的一种客户端的结构示意图;
图8为本发明实施例提供的一种服务器的结构示意图;
图9为本发明实施例提供的另一种客户端的结构示意图;
图10为本发明实施例提供的另一种服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
下面首先对Rsync算法进行简单介绍,以便本领域技术人员更容易理解本发明提供的技术方案。
Rsync算法是同步文件的一个高效算法,它能查找出两个文件中的不同的数据。如图1所示,客户端应用Rsync算法确定文件A相比文件C的不同数据的方法包括:
S101、客户端接收服务器发送的文件C的文件分块信息。
其中,该文件分块信息包括文件C的每个数据块的编号,以及每个数据块的分块特征码,该分块特征码包括数据块的弱校验码和强校验码,其中,该弱校验码可以是Adler32,该强校验码可以是MD5。该文件C中的每个数据块具有相同的分块大小。
S102、该客户端从文件A的起始位置读取一个分块大小的第一数据块。
S103、该客户端计算该第一数据块的弱校验码,并在该文件C中查找是否存在与该第一数据块的弱校验码相同的第二数据块。
进一步地,若该文件C中存在与该第一数据块的弱校验码相同的第二数据块,则执行步骤S104,若该文件C中不存在与该第一数据块的弱校验码相同的第二数据块,则执行步骤S108。
S104、该客户端计算该第一数据块的强校验码,确定该第二数据块的强校验码是否与该第一数据块的强校验码相同。
值得说明的是,客户端在确定两个数据块的强校验码相同时,可以有效确定两个数据块相同。
进一步地,若该第一数据块与该第二数据块的强校验码不相同,则执行步骤S105,若该第一数据块与该第二数据块的强校验码相同,则执行步骤S106和步骤S107。
S105、该客户端从该第一数据块的起始位置偏移一个字节,读取一个分块大小的第三数据块。
其中,该客户端以该第三数据块作为第一数据块,重新从步骤S103开始执行。
S106、该客户端标记该第一数据块与该第二数据块相匹配。
例如,该客户端建立该第一数据块与该第二数据块的编号之间的对应关系。
S107、该客户端从该第一数据块的起始位置偏移一个分块大小,读取一个分块大小的第四数据块。
其中,该客户端以该第四数据块作为第一数据块,重新从步骤S103开始执行。
S108、该客户端从该第一数据块的起始位置偏移一个字节大小,读取一个分块大小的第五数据块。
其中,该客户端以该第五数据块作为第一数据块,重新从步骤S103开始执行。
这样,客户端通过上述步骤S101至步骤S108,可以确定出文件A中,与该文件C的数据块相匹配的数据块。
如图2所示,若文件C包括数据块1,数据块2,数据块3,数据块4和数据块5,客户端通过Rsync算法确定出文件A中与该数据块2相一致的匹配块2,与该数据块3相一致的匹配块3,与该数据块4相一致的匹配块4,如图2所示,文件A中存在两个与该数据块3相一致的匹配块3。这样,文件A相对于文件C的差量数据即为文件A中,被匹配块分隔开来的每一份数据,如图2中示出的差量数据1,差量数据2,差量数据3以及差量数据4。
仍以图2举例说明,现有技术中,为了便于服务器能够将文件A中的差量数据以及文件C正确合并为与文件A相同的文件,客户端依次向服务器发送差量数据1,匹配块2的编号,差量数据2,匹配块3的编号,匹配块4的编号,差量数据3,匹配块3的编号,差量数据4。该服务器按照接收顺序,合并接收到的差量数据以及文件C中与匹配块编号对应的数据块。
另外,本文所描述的客户端具体可以是手机,电脑,平板电脑等用户端设备,服务器具体可以是云端存储服务器。
本发明实施例提供一种文件差量的传输方法,用于解决现有技术中,针对每份差量数据均进行一次上传,增加了服务器的负载的技术问题,其中,该服务器保存第一文件。如图3所示,该方法包括:
S301、客户端确定待上传的第二文件,并计算该第二文件的特征码。
S302、该客户端将该第二文件的文件名以及该特征码发送至服务器。
S303、该服务器查询是否存在与该第二文件的文件名相同的第一文件。
若不存在,则执行步骤S304和步骤S305;若存在,则执行步骤S306至步骤S313。
S304、该服务器向该客户端发送上传通知消息。
S305、该客户端在接收到该上传通知消息后,将该第二文件上传至该服务器。
S306、该服务器计算该第一文件的特征码,并确定该第二文件的特征码与该第一文件的特征码是否相同。
若相同,执行步骤S307;若不相同,执行步骤S308至步骤S313。
S307、该服务器向该客户端发送上传成功消息。
也就是说,对于服务器中已经存在的文件,客户端在进行重复上传时,仅需要向服务器发送了该文件的文件名以及特征码,无需上传该文件的数据,提高了上传效率。
S308、该服务器将该第一文件分为多个数据块,并确定第一文件的文件分块信息。
S309、该服务器将该文件分块信息发送至该客户端。
S310、该客户端根据该文件分块信息通过Rsync算法确定该第二文件中,该第二文件相比第一文件的N份差量数据以及L个匹配块。
其中,N和L均是大于0的正整数。
上述步骤S308至步骤S310的详细过程可以参照图1所示的方法步骤,此处不再赘述。
值得说明的是,步骤S308中,该服务器对该第一文件进行分块的大小,直接影响该第二文件与该第一文件之间相匹配的数据块的情况。通常情况下,分块越小,该第二文件与该第一文件相匹配的数据块越多;分块越大,该第二文件相比该第一文件的差量数据的数据量越大。因此,在具体实施过程中,该服务器对于该第一文件进行分块的大小可以预先设置,例如,分块大小预设为10字节(KB),在此情况下,该服务器从该第一文件的首地址开始,将每10KB的数据分为一个数据块,其中,最后的数据块可能小于10KB。
S311、该客户端将该N份差量数据合并为M个差量块。
其中,M是小于N的正整数。
值得说明的是,差量块的大小跟客户端向服务器上传数据的次数直接相关,差量块越大,差量块的数量越少,客户端的上传次数也就越少。但是,差量块的大小受到客户端的传输能力的限制,在具体实施过程中,可以根据客户端当前的网络带宽以及数据传输格式等预先设置差量块的大小,其中,每个差量块的大小可以不同,也可以相同,例如将差量块的大小均设定为与匹配块大小相同,本发明实施例对此不作限定。
S312、该客户端将该M个差量块以及该L个匹配块的属性信息发送至该服务器。
在本发明实施例的一种可能的实现方式中,客户端可以对每个差量块执行如下操作:该客户端向服务器发送上传请求,并在接收到该服务器发送的用于响应的该上传请求的响应消息,该客户端根据该响应消息将该差量块以及与该差量块内的每份差量数据相邻的匹配块的属性信息发送至该客户端。
这样,服务器接收客户端针对M个差量块发送的M次上传请求,相比现有技术中,服务器要接收客户端针对N份差量数据发送的N次上传请求,上述方案减少了服务器处理上传请求的数目,进而减轻了服务器的负载。
上述只是举例说明,在实际实施时,客户端也可以针对多个差量块发送一次上传请求,也就是说,客户端可以以差量块为最小单位进行上传,本发明对此不做限定。
S313、该服务器在接收到M个差量块以及L个匹配块的属性信息后,根据该L个匹配块的属性信息将该M个差量块以及该第一文件中与每个匹配块相一致的数据块合并为该第二文件。
值得说明的是,该M个差量块传输到服务器侧时是保序的,也就是说,客户端发送各差量块的顺序与该服务器接收到各差量块的顺序一致,以便该服务器可以根据接收顺序依次选择差量块进行合并。
采用上述方法,该客户端确定第二文件中,该第二文件相比第一文件的N份差量数据以及L个匹配块,将该N份差量数据合并为M个差量块,将该M个差量块以及L个匹配块的属性信息发送至该服务器,以便该服务器根据该L个匹配块的属性信息将该M个差量块以及该第一文件中与每个匹配块相一致的数据块合并为该第二文件。这样,相比现有技术中,客户端每次向服务器上传一份差量数据,本发明中客户端可以每次向服务器上传一个差量块,减少了客户端上传次数,从而减轻了服务器的负载。
需要说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,例如,关于步骤S312中对于差量块以及匹配块的属性信息的发送,该客户端也可以先将每个差量块发送至服务器,再将该L个匹配的属性信息发送至服务器,也可以同时传输,本发明实施例对此不做限定。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。
下面对上述步骤S313进行详细说明,其中,该L个匹配块的属性信息可以包括该第一文件中与每个匹配块相一致的数据块的标识以及该L个匹配块在该第二文件中的偏移量;该偏移量是该匹配块在该第二文件中的起始地址与该第二文件的首地址之间的差值。这样,该服务器在接收到M个差量块以及L个匹配块的属性信息后,可以根据该数据块的标识确定该第一文件中与该L个匹配块相一致的L个数据块。
进一步地,为了使本领域的技术人员能够更加理解服务器侧对于数据合并的方法,下面通过一个详细的例子进行举例说明。如图4所示,包括:
S401、该服务器根据该第一文件中与每个匹配块相一致的数据块的标识确定该第一文件中与该L个匹配块相一致的L个数据块。
可选地,该数据块的标识具体可以是数据块的编号,参照上述对应图1中的步骤S106的描述,服务器发送的文件分块信息中包括第一文件的数据块的编号,这样,该客户端在根据Rsync算法确定出第二文件中与该第一文件的数据块相匹配的匹配块后,可以记录该数据块的编号,并将该编号作为第一文件中与该匹配块的相一致的数据块的标识发送至服务器。
另外,该数据块的标识也可以是第一文件中数据块的分块大小,以及数据块在第一文件中的偏移量,也就是说,在图3所示步骤S309中,服务器向客户端发送的文件分块信息包括第一文件中数据块的分块大小以及数据块的偏移量,进一步地,客户端在第二文件中确定出与数据块相一致的匹配块后,记录该数据块的分块大小以及偏移量,这样,服务器在收到客户端发送的数据块的标识后,通过偏移量以及分块大小即可在第一文件中确定出与该匹配块相一致的数据块。
S402、该服务器读取该L个匹配块中的第1个匹配块的偏移量P1,在该M个差量块中按照地址递增的顺序读取数据大小为P1的第1份差量数据,从该第一文件在该服务器中的首地址D1开始,写入该第1份差量数据。
值得说明的是,在步骤S402中,P1不等于0。若P1等于0,在此情况下,该服务器直接从地址D1开始写入第1个匹配块,也就是说,该第一文件与该第二文件从首地址开始即存在相一致的数据块和匹配块,此时,无需执行步骤S402,直接执行步骤S403。
S403、该服务器从该服务器中的地址D1+P1开始,写入该第一文件中与该第1个匹配块相一致的数据块。
S404、该服务器读取该L个匹配块中的第K个匹配块的偏移量PK,在该M个差量块中按照地址递增的顺序读取数据大小为PK-(DK-1+PK-1)的第K份差量数据,从该服务器中的地址DK开始,写入该第K份差量数据。
值得说明的是,在步骤S404中,1<K≤L,PK-1<PK,DK=DK-1+PK-1。由PK-1<PK可知,本发明实施例中服务器可以是按照偏移量从小到大的顺序读取匹配块的属性信息。客户端是按照该N份差量数据在该第二文件中的地址从小到大的顺序将该N份差量数据合并为M个差量块,由于客户端传输差量块的保序机制,因此,服务器可以按照接收到的差量块的顺序依次在各差量块中按照地址递增的顺序选择差量数据进行合并,从而保证了服务器合并得到的文件的数据组成顺序与第二文件相同。
优选地,图3所示步骤S311中,客户端可以是按照地址递增的顺序依次将差量数据合并为差量块,这样,服务器在接收到差量块后,顺序读取出来的差量数据的地址即是递增的。
另外,在步骤S404中,PK大于DK-1+PK-1;若PK等于DK-1+PK-1,则表明第K个匹配块与第k-1个匹配块相邻,也就是说,第K个匹配块与第k-1个匹配块之间不存在差量数据,此时,无需执行上述步骤S404。
S405、该服务器从该服务器中的地址DK+PK开始,写入该第一文件中与该第K个匹配块相一致的数据块。
值得说明的是,在具体实施过程中,客户端首次执行步骤S401和步骤S403后,将K依次取值为2,3,4,……,L,并对K的每个取值重复执行步骤S404和S405,若最后仍存在剩余差量数据未合并,则该客户端从该服务器中的地址DL开始,写入剩余的差量数据。
采用上述方法,服务器接收客户端发送的M个差量块以及L个匹配块的属性信息;并根据该L个匹配块的属性信息将该M个差量块以及该第一文件中与每个匹配块相一致的数据块合并为该第二文件。也就是说,服务器接收客户端以差量块为最小单位的发送的差量数据,相比现有技术中,服务器要接收客户端针对N份差量数据发送的N次上传请求,上述方法减少了服务器处理上传请求的数目,进而减轻了服务器的负载。
下面以图2中的文件A作为第二文件,文件C作为第一文件,详细描述服务器将差量块以及第一文件中与所述匹配块相一致的所述数据块合并为第二文件的过程。
如图2所示,若每个匹配块的大小为10KB,并且,该匹配块2的偏移量为4KB,匹配块3的偏移量为18KB,匹配块4的偏移量为28KB,另一匹配块3的偏移量为54KB。在此种情况下,该客户端可以将差量数据1至差量数据4合并为三个差量块。例如,如图5所示,差量块1包括差量数据1,差量数据2以及差量数据3的第1部分,该第1部分如图5中的1所示,差量块2包括差量数据3的第2部分,该第2部分如图5中的2所示,差量块3包括差量数据3的第3部分以及差量数据4,该第3部分如图5中的3所示。
这样,该客户端可以首先向该服务器发送差量块1以及匹配块的2,匹配块3以及匹配块4的属性信息,该属性信息如图5中的(B2,4KB)(B3,18KB)(B4,28KB)所示。其中,B2为匹配块2的编号,4KB是匹配块2的偏移量,B3为匹配块3的编号,18KB是匹配块3的偏移量,B4为匹配块4的编号,28KB是匹配块4的偏移量,其中,匹配块的编号与第二文件中与该匹配块相一致的数据块的编号相同。
进一步地,如图6所示,该服务器在接收到客户端首次发送的差量数据以及属性信息后,由于第一个匹配块,即该匹配块2,的偏移量为4KB,则该服务器在该差量块1中按照地址递增的顺序读取4KB的差量数据,即该差量数据1,并根据该匹配块2的编号B2,读取第一文件中与该匹配块2相一致的数据块2,将该差量数据1与该数据块2相合并;
第二个匹配块的偏移量,即该匹配块3,为18KB,由于差量数据1与该数据块1已占用14KB,因此,该服务器可以在该差量块1中按照地址递增的顺序读取另一数据大小为4KB的差量数据,即该差量数据2,并将该差量数据2与该数据块2相合并,并根据该匹配块3的编号B3,读取第一文件中与该匹配块3相一致的数据块3,并将该数据块3与该差量数据2相合并;
第三匹配块的偏移量,即该匹配块4,为28KB,由于差量数据1,该数据块1,该差量数据2以及该数据块3已占用28KB,因此,可去可确定该匹配块3与该匹配块4之间不存在差量数据,该客户端可以根据匹配块4的编号B4读取第一文件中的数据块4,并将该数据块4与该数据块3相合并;
进一步地,该差量块1中还有剩余的差量数据未合并,在此情况下,该客户端可以直接将剩余的差量数据,即该差量数据3的第1部分,写入到该数据块4之后。
以此类推,该服务器在接收到客户端之后发送的差量块以及匹配块属性信息后,可以参照上述方法进行数据合并,直到得到与第二文件相一致的文件,此处不再赘述。
值得说明的是,本领域的技术人员应该知晓,对于所述差量块和所述数据块进行合并的顺序本发明不做限定,例如,该服务器也可以在全部接收到该M个差量块和L个匹配块的属性信息后,从该服务器的存储地址D1+Pk处开始,写入该第一文件中与第K个该匹配块相一致的数据块;其中,D1是该服务器中用于存储该第二文件的存储区域的首地址,Pk是第k个该匹配块的偏移量,1≤K≤L,并在写入所有的数据块后,从该服务器的存储地址D1处开始,在该存储区域的空闲地址处依次写入该M个差量块中的差量数据。
本发明实施例提供一种客户端70,用于执行上述方法实施例中对应的方法,将第二文件保存到服务器,该服务器有保存第一文件,如图7所示,该客户端70包括:
确定单元71,用于确定该第二文件中,该第二文件相比该第一文件的N份差量数据以及L个匹配块;该第一文件中存在与每个匹配块相一致的数据块,该第二文件由该N份差量数据以及该L个匹配块组成;N和L均是大于0的正整数;
合并单元72,用于将该N份差量数据合并为M个差量块;M是小于N的正整数;
发送单元73,用于将该M个差量块以及该L个匹配块的属性信息发送至该服务器;其中,该L个匹配块的属性信息被用于将该M个差量块以及该第一文件中与每个该匹配块相一致的数据块,合并为该第二文件。
在本发明实施例的一种可能的实现方式中,该客户端可以针对每一个差量块执行以下操作:向该服务器发送上传请求,并在该客户端接收到该服务器发送的用于响应该上传请求的响应消息后,将该差量块发送至该服务器。
也就是说,客户端在上传差量数据时,并非对分布在不同位置的每一份差量数据均向服务器请求一次上传,而是先将差量数据合并为数据量更大的差量块,针对每一个差量块请求一次上传,因此,采用上述客户端,减少了向服务器发送请求的数量,进而减轻了服务器的负载。
值得说明的是,客户端对于发送差量块以及匹配块的属性信息的顺序不做限定,可以先发送所述L个匹配块的属性信息,再发送所述M个差量块,也可以先发送所述M个差量块,再发送所述L个匹配块的属性信息,还可以在发送每个差量块的同时,将与所述差量块内的差量数据相邻匹配块的属性信息发送至服务器,本发明实施例对此不做限定。
另外,为了确保服务器在接收到差量块后,能够将差量块与第一文件正确合并为第二文件,需要该匹配块的属性信息能够正确表明匹配块与差量数据之间的位置,在本发明实施例的一种优选的实现方式,匹配块的属性信息包括该第一文件中与每个匹配块相一致的数据块的标识以及该匹配块在第二文件中的偏移量。服务器根据匹配块的属性信息将差量块以及第一文件中与所述匹配块相一致的数据块合并为第二文件的过程可以参照前述方法实施例中对应的描述,此处不再赘述。
所属本领域的技术人员应该清楚地了解到,为描述的方便和简洁,上述描述的客户端的各单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述,并且,以上对客户端功能单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,并且,上述功能单元的物理实现也可以有不同的方式,例如,上述确定单元具体可以一中央处理器,也可以是一特定集成电路,上述合并单元具体可以是能够根据处理器的指令,对数据进行读写的数据读写装置,上述发送单元可以是一发射机。
本发明实施例提供一种服务器80,该服务器80保存第一文件,用于执行上述方法实施例中对应的方法,如图8所示,该服务器80包括:
接收单元81,用于接收客户端发送的M个差量块以及L个匹配块的属性信息;该M个差量块是待保存的第二文件相比第一文件的N份差量数据合并而成的;该第一文件中存在与每个该匹配块相一致的数据块,该第二文件由该N份差量数据以及该L个匹配块组成;N和L均是大于0的正整数,M是小于N的正整数;
合并单元82,用于根据该L个匹配块的属性信息将该M个差量块以及该第一文件中与所述匹配块相一致的数据块合并为该第二文件。
可选地,该L个匹配块的属性信息包括该第一文件中与每个匹配块相一致的数据块的标识以及该每个匹配块在该第二文件中的偏移量;该偏移量是该匹配块在该第二文件中的起始地址与该第二文件的首地址之间的差值;该合并单元82具体用于:根据该数据块的标识确定该第一文件中与该L个匹配块相一致的L个数据块;根据该L个匹配块的偏移量将该M个差量块以及该L个数据块合并为该第二文件。
以上对服务器功能单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,并且,上述合并单元具体可以是能够根据处理器的指令,对数据进行读写的数据读写装置,上述接收单元可以是一接收机。
另外,所属本领域的技术人员应该清楚地了解到,为描述的方便和简洁,上述描述的服务器的各单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
采用本发明实施例提供的服务器,该服务器在保证差量数据与第一文件能够正确合并的前提下,只需接收客户端以差量块为最小上传单元发送的上传请求,相比现有技术要接收客户端针对N份差量数据发送的N次上传请求,本发明实施例减轻了服务器的负载。
本发明实施例提供另一种客户端90,其中,服务器保存第一文件,该客户端90用于将第二文件保存到该服务器,如图9所示,该客户端90包括:
处理器(processor)91、接收机92、发射机93和通信总线94;其中,所述处理器91、所述接收机92和所述发射机93通过所述通信总线94完成相互间的通信。
处理器91可能是一个多核中央处理器CPU,或者是特定集成电路(英文全称:ApplicationSpecificIntegratedCircuit,简称:ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
所述处理器91用于实现以下操作:
确定所述第二文件中,所述第二文件相比所述第一文件的N份差量数据以及L个匹配块;所述第一文件中存在与每个所述匹配块相一致的数据块,所述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于0的正整数;
将所述N份差量数据合并为M个差量块;M是小于N的正整数;
将所述M个差量块以及所述L个匹配块的属性信息发送至所述服务器;其中,所述L个匹配块的属性信息被用于将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的数据块,合并为所述第二文件。
可选地,所述L个匹配块的属性信息包括所述第一文件中与每个所述匹配块相一致的数据块的标识,以及每个所述匹配块在所述第二文件中的偏移量;
其中,所述数据块的标识被用于确定所述第一文件中与所述L个匹配块相一致的L个数据块,所述偏移量是每个所述匹配块在所述第二文件中的起始地址与所述第二文件的首地址之间的差值,所述L个匹配块的偏移量用于所述服务器将所述M个差量块与所述L个数据块合并为所述第二文件。
本发明实施例提供另一种服务器10,如图10所示,该服务器10包括:
存储器101、处理器(processor)102、接收机103、发射机104和通信总线105;其中,所述存储器101、所述处理器102、所述接收机103和所述发射机104通过所述通信总线105完成相互间的通信。
所述存储器101保存第一文件。
处理器102可能是一个多核中央处理器CPU,或者是特定集成电路(英文全称:ApplicationSpecificIntegratedCircuit,简称:ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
所述处理器102用于实现以下操作:
接收客户端发送的M个差量块以及L个匹配块的属性信息;所述M个差量块是待保存到所述服务器的第二文件相比所述第一文件的N份差量数据合并而成的;所述第一文件中存在与每个所述匹配块相一致的数据块,所述述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于0的正整数,M是小于N的正整数;
根据所述L个匹配块的属性信息将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的数据块,合并为所述第二文件。
可选地,所述L个匹配块的属性信息包括所述第一文件中与每个所述匹配块相一致的数据块的标识,以及每个所述匹配块在所述第二文件中的偏移量;所述偏移量是所述匹配块在所述第二文件中的起始地址与所述第二文件的首地址之间的差值;
所述根据所述L个匹配块的属性信息将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的所述数据块,合并为所述第二文件,包括:
根据所述数据块的标识确定所述第一文件中与所述L个匹配块相一致的L个数据块;
根据所述L个匹配块的偏移量将所述M个差量块以及所述L个数据块合并为所述第二文件。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,简称:ROM)、随机存取存储器(英文全称:RandomAccessMemory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种文件差量的传输方法,其特征在于,服务器保存第一文件,所述方法用于将第二文件保存到所述服务器,包括:
客户端确定所述第二文件中,所述第二文件相比所述第一文件的N份差量数据以及L个匹配块;所述第一文件中存在与每个所述匹配块相一致的数据块,所述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于0的正整数;
将所述N份差量数据合并为M个差量块;M是小于N的正整数;
将所述M个差量块以及所述L个匹配块的属性信息发送至所述服务器;其中,所述L个匹配块的属性信息被用于将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的数据块,合并为所述第二文件。
2.根据权利要求1所述的方法,其特征在于,所述L个匹配块的属性信息包括所述第一文件中与每个所述匹配块相一致的数据块的标识,以及每个所述匹配块在所述第二文件中的偏移量;
其中,所述数据块的标识被用于确定所述第一文件中与所述L个匹配块相一致的L个数据块,所述偏移量是每个所述匹配块在所述第二文件中的起始地址与所述第二文件的首地址之间的差值,所述L个匹配块的偏移量被用于将所述M个差量块与所述L个数据块合并为所述第二文件。
3.一种文件差量传输的方法,其特征在于,服务器保存第一文件,所述方法用于将第二文件保存到所述服务器,包括:
服务器接收客户端发送的M个差量块以及L个匹配块的属性信息;所述M个差量块是所述第二文件相比所述第一文件的N份差量数据合并而成的;所述第一文件中存在与每个所述匹配块相一致的数据块;所述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于0的正整数,M是小于N的正整数;
根据所述L个匹配块的属性信息将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的数据块,合并为所述第二文件。
4.根据权利要求3所述的方法,其特征在于,所述L个匹配块的属性信息包括所述第一文件中与每个所述匹配块相一致的数据块的标识,以及每个所述匹配块在所述第二文件中的偏移量;所述偏移量是所述匹配块在所述第二文件中的起始地址与所述第二文件的首地址之间的差值;
所述根据所述L个匹配块的属性信息将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的所述数据块,合并为所述第二文件,包括:
根据所述数据块的标识确定所述第一文件中与所述L个匹配块相一致的L个数据块;
根据所述L个匹配块的偏移量将所述M个差量块以及所述L个数据块合并为所述第二文件。
5.一种客户端,其特征在于,服务器保存第一文件,所述客户端用于将第二文件保存到所述服务器,所述客户端包括:
确定单元,用于确定所述第二文件中,所述第二文件相比第一文件的N份差量数据以及L个匹配块;所述第一文件中存在与每个所述匹配块相一致的数据块,所述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于0的正整数;
合并单元,用于将所述N份差量数据合并为M个差量块;M是小于N的正整数;
发送单元,用于将所述M个差量块以及所述L个匹配块的属性信息发送至所述服务器;其中,所述L个匹配块的属性信息被用于将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的所述数据块,合并为所述第二文件。
6.根据权利要求5所述的客户端,其特征在于,所述L个匹配块的属性信息包括所述第一文件中与每个所述匹配块相一致的数据块的标识,以及每个所述匹配块在所述第二文件中的偏移量;
其中,所述数据块的标识被用于确定所述第一文件中与所述L个匹配块相一致的L个数据块,所述偏移量是每个所述匹配块在所述第二文件中的起始地址与所述第二文件的首地址之间的差值,所述L个匹配块的偏移量被用于将所述M个差量块与所述L个数据块合并为所述第二文件。
7.一种服务器,其特征在于,所述服务器保存第一文件,包括:
接收单元,用于接收客户端发送的M个差量块以及L个匹配块的属性信息;所述M个差量块是待保存到所述服务器的第二文件相比所述第一文件的N份差量数据合并而成的;所述第一文件中存在与每个所述匹配块相一致的数据块,所述述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于0的正整数,M是小于N的正整数;
合并单元,用于根据所述L个匹配块的属性信息将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的数据块,合并为所述第二文件。
8.根据权利要求7所述的服务器,其特征在于,所述L个匹配块的属性信息包括所述第一文件中与每个所述匹配块相一致的数据块的标识,以及每个所述匹配块在所述第二文件中的偏移量;所述偏移量是所述匹配块在所述第二文件中的起始地址与所述第二文件的首地址之间的差值;
所述合并单元具体用于:
根据所述数据块的标识确定所述第一文件中与所述L个匹配块相一致的L个数据块;
根据所述L个匹配块的偏移量将所述M个差量块以及所述L个数据块合并为所述第二文件。
9.一种客户端,其特征在于,服务器保存第一文件,所述客户端用于将第二文件保存到所述服务器,所述客户端包括:处理器、发射机、接收机和通信总线;其中,所述处理器、所述发射机和所述接收机通过所述通信总线完成相互间的通信;所述处理器用于:
确定所述第二文件中,所述第二文件相比所述第一文件的N份差量数据以及L个匹配块;所述第一文件中存在与每个所述匹配块相一致的数据块,所述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于0的正整数;
将所述N份差量数据合并为M个差量块;M是小于N的正整数;
将所述M个差量块以及所述L个匹配块的属性信息发送至所述服务器;其中,所述L个匹配块的属性信息被用于将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的数据块,合并为所述第二文件。
10.根据权利要求9所述的客户端,其特征在于,所述L个匹配块的属性信息包括所述第一文件中与每个所述匹配块相一致的数据块的标识,以及每个所述匹配块在所述第二文件中的偏移量;
其中,所述数据块的标识被用于确定所述第一文件中与所述L个匹配块相一致的L个数据块,所述偏移量是每个所述匹配块在所述第二文件中的起始地址与所述第二文件的首地址之间的差值,所述L个匹配块的偏移量被用于将所述M个差量块与所述L个数据块合并为所述第二文件。
11.一种服务器,其特征在于,包括:存储器、处理器、发射机、接收机和通信总线;其中,所述处理器、所述发射机和所述接收机通过所述通信总线完成相互间的通信;所述存储器保存第一文件;所述处理器用于:
接收客户端发送的M个差量块以及L个匹配块的属性信息;所述M个差量块是待保存到所述服务器的第二文件相比所述第一文件的N份差量数据合并而成的;所述第一文件中存在与每个所述匹配块相一致的数据块,所述述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于0的正整数,M是小于N的正整数;
根据所述L个匹配块的属性信息将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的数据块,合并为所述第二文件。
12.根据权利要求11所述的服务器,其特征在于,所述L个匹配块的属性信息包括所述第一文件中与每个所述匹配块相一致的数据块的标识,以及所述L个匹配块在所述第二文件中的偏移量;所述偏移量是所述匹配块在所述第二文件中的起始地址与所述第二文件的首地址之间的差值;
所述处理器具体用于:
根据所述数据块的标识确定所述第一文件中与所述L个匹配块相一致的L个数据块;
根据所述L个匹配块的偏移量将所述M个差量块以及所述L个数据块合并为所述第二文件。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510909294.4A CN105554081B (zh) | 2015-12-09 | 2015-12-09 | 一种文件差量的传输方法以及装置 |
PCT/CN2016/106650 WO2017097106A1 (zh) | 2015-12-09 | 2016-11-21 | 一种文件差量的传输方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510909294.4A CN105554081B (zh) | 2015-12-09 | 2015-12-09 | 一种文件差量的传输方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105554081A true CN105554081A (zh) | 2016-05-04 |
CN105554081B CN105554081B (zh) | 2019-01-18 |
Family
ID=55833013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510909294.4A Active CN105554081B (zh) | 2015-12-09 | 2015-12-09 | 一种文件差量的传输方法以及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105554081B (zh) |
WO (1) | WO2017097106A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871629A (zh) * | 2016-05-30 | 2016-08-17 | 自连电子科技(上海)有限公司 | 物联网设备传输数据的方法及系统 |
CN105959407A (zh) * | 2016-06-27 | 2016-09-21 | 乐视控股(北京)有限公司 | 数据上传方法及装置 |
WO2017097106A1 (zh) * | 2015-12-09 | 2017-06-15 | 华为技术有限公司 | 一种文件差量的传输方法以及装置 |
CN107480267A (zh) * | 2017-08-17 | 2017-12-15 | 无锡清华信息科学与技术国家实验室物联网技术中心 | 一种利用局部性提高文件差分同步速度的方法 |
CN109067924A (zh) * | 2018-09-26 | 2018-12-21 | 东莞华贝电子科技有限公司 | 文件传输方法及装置 |
WO2022001548A1 (zh) * | 2020-06-30 | 2022-01-06 | 华为技术有限公司 | 一种数据传输方法、系统、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101232501A (zh) * | 2007-12-10 | 2008-07-30 | 腾讯科技(深圳)有限公司 | 一种多文件发送的改进系统及方法 |
CN102685159A (zh) * | 2011-03-10 | 2012-09-19 | 腾讯科技(深圳)有限公司 | 文件传输方法及装置 |
CN103685509A (zh) * | 2013-12-12 | 2014-03-26 | 深圳市彩讯科技有限公司 | 文件差量同步方法 |
US20140250067A1 (en) * | 2013-03-04 | 2014-09-04 | Vmware, Inc. | Cross-file differential content synchronization using cached patches |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105554081B (zh) * | 2015-12-09 | 2019-01-18 | 华为技术有限公司 | 一种文件差量的传输方法以及装置 |
-
2015
- 2015-12-09 CN CN201510909294.4A patent/CN105554081B/zh active Active
-
2016
- 2016-11-21 WO PCT/CN2016/106650 patent/WO2017097106A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101232501A (zh) * | 2007-12-10 | 2008-07-30 | 腾讯科技(深圳)有限公司 | 一种多文件发送的改进系统及方法 |
CN102685159A (zh) * | 2011-03-10 | 2012-09-19 | 腾讯科技(深圳)有限公司 | 文件传输方法及装置 |
US20140250067A1 (en) * | 2013-03-04 | 2014-09-04 | Vmware, Inc. | Cross-file differential content synchronization using cached patches |
CN103685509A (zh) * | 2013-12-12 | 2014-03-26 | 深圳市彩讯科技有限公司 | 文件差量同步方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017097106A1 (zh) * | 2015-12-09 | 2017-06-15 | 华为技术有限公司 | 一种文件差量的传输方法以及装置 |
CN105871629A (zh) * | 2016-05-30 | 2016-08-17 | 自连电子科技(上海)有限公司 | 物联网设备传输数据的方法及系统 |
CN105959407A (zh) * | 2016-06-27 | 2016-09-21 | 乐视控股(北京)有限公司 | 数据上传方法及装置 |
CN107480267A (zh) * | 2017-08-17 | 2017-12-15 | 无锡清华信息科学与技术国家实验室物联网技术中心 | 一种利用局部性提高文件差分同步速度的方法 |
CN109067924A (zh) * | 2018-09-26 | 2018-12-21 | 东莞华贝电子科技有限公司 | 文件传输方法及装置 |
WO2022001548A1 (zh) * | 2020-06-30 | 2022-01-06 | 华为技术有限公司 | 一种数据传输方法、系统、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105554081B (zh) | 2019-01-18 |
WO2017097106A1 (zh) | 2017-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105554081A (zh) | 一种文件差量的传输方法以及装置 | |
CN107819828B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN104247376B (zh) | 云存储的文件上传方法、客户端、应用服务器及云存储系统 | |
CN109597717A (zh) | 一种数据备份、恢复方法、装置、电子设备及存储介质 | |
CN104519090A (zh) | 文件传输方法及装置 | |
CN110247986A (zh) | 一种文件传输方法、装置及电子设备 | |
CN103227818A (zh) | 终端、服务器、文件传输方法、文件存储管理系统和方法 | |
CN112380464B (zh) | 一种短链接生成方法以及相关设备 | |
CN102571820A (zh) | 用于传输数据的方法、压缩服务器和终端 | |
CN104618444A (zh) | 一种基于反向代理服务器处理请求的方法和装置 | |
CN109842652A (zh) | 一种文件的上传方法、终端、云服务器和计算机存储介质 | |
CN102882960B (zh) | 一种资源文件的发送方法及装置 | |
CN104079623A (zh) | 多级云存储同步控制方法及系统 | |
CN103731424B (zh) | 一种网络数据的传输方法、装置及系统 | |
CN113852665A (zh) | 文件上传方法、装置、电子设备、存储介质及程序产品 | |
CN105357305A (zh) | 文件发送方法和装置、文件接收方法和装置和终端设备 | |
US20130018987A1 (en) | Adaptive replication | |
CN102970380A (zh) | 获取云存储文件的媒体数据的方法以及云存储服务器 | |
CN106332556A (zh) | 传输云端文件的方法、终端及云端服务器 | |
CN105162747A (zh) | 用于压缩设备与解压缩设备探索及握手的系统和方法 | |
CN115242783B (zh) | 传输方法、装置、电子设备和介质 | |
CN103942208A (zh) | 文件处理方法及装置 | |
CN109842661A (zh) | 一种数据传输方法、装置、电子设备及存储介质 | |
CN114172998B (zh) | 一种文件传输方法、装置、电子设备及存储介质 | |
CN106293996A (zh) | 数据同步方法、主设备、备份设备和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |