一种利用局部性提高文件差分同步速度的方法技术

技术编号:16819205 阅读:76 留言:0更新日期:2017-12-16 12:40
本发明专利技术公开一种利用局部性提高文件差分同步速度的方法,该方法中一台计算机b将其存储的本地文件B分块,对每个文件块分别计算校验码,将本地文件B的文件信息和计算得出的校验码表发送至计算机a,计算机a存储着与B相似的待同步文件A,计算机a在将校验码分层由外而内进行对比时,利用文件局部性即与匹配的文件块相邻的文件块也很可能是匹配的这一特点来加速匹配过程,进而确定匹配未成功的文件信息,将这些信息对应的文件块发送至计算机b,计算机b将所接收的文件块与文件B进行文件拼接以实现文件同步。本发明专利技术在文件局部性较好的情况下会节约大量计算时间,适合同步差异比较集中的文件。

A method to improve the synchronization speed of file differential by locality

The invention discloses a method for using local file to improve method of differential synchronous speed, the method in a computer B store local file B blocks, for each file block calculated checksum, file information and computing the local file that the B check code is sent to the computer a, a computer storage with the B similar to A a in the computer file synchronization, the checksum comparison layer from outside to inside, the use of local file and file block, adjacent file blocks are also likely to be a characteristic, to speed up the matching process, and then determine the matching file information is not successful, these the corresponding file information block is sent to the computer B computer, B will receive file block file splicing and B file for file synchronization. In the case of better locality, the invention will save a lot of time of calculation, and it is suitable for the files with relatively centralized difference.

【技术实现步骤摘要】
一种利用局部性提高文件差分同步速度的方法
本专利技术涉及互联网
,尤其涉及一种利用局部性提高文件差分同步速度的方法。
技术介绍
云存储已经成为未来存储发展的一种趋势。目前云存储服务一方面可以为互联网用户提供大容量的存储服务,另一方面也可以用来进行互联网应用的后台数据存储。尽管云存储服务方便实用,但目前依旧存在着影响互联网用户体验的问题,而其中一个常见的问题就是在将文件同步上传至云服务时耗时较长,严重影响用户体验。为了解决上述问题,我们发现,用户在使用云存储服务进行文件同步时,用户所上传的待同步文件相比云端文件的差异局部性绝大多数都很好,而国内外知名的云服务如百度云、Dropbox等的PC客户端为减少流量消耗都采用了文件差分编码同步的方法来进行文件同步,然而这个方法文件同步速度慢,而且并没有进行比较好的速度优化。其中,Dropbox是一款免费网络文件同步工具,是Dropbox公司运行的在线存储服务,通过云计算实现因特网上的文件同步,用户可以存储并共享文件和文件夹。
技术实现思路
本专利技术的目的在于通过一种利用局部性提高文件差分同步速度的方法,来解决以上
技术介绍
部分提到的问题。为达此目的,本专利技术采用以下技术方案:一种利用局部性提高文件差分同步速度的方法,其包括如下步骤:S101、计算机b读取原始文件,将存储的本地文件B分块,获得所述本地文件B的各文件块;S102、所述计算机b对所述本地文件B的各文件块分别计算校验码并生成校验码表,将所述本地文件B的文件信息和校验码表发送至计算机a;S103、所述计算机a根据所述本地文件B的文件信息和校验码表,依据相邻文件块的局部性与待同步文件A进行匹配,并将得到的匹配未成功的文件信息反馈给所述计算机b;S104、所述计算机b接收所述匹配未成功的文件信息,并将与所述匹配未成功的文件信息对应的文件块与所述本地文件B进行文件拼接以完成同步。特别地,所述步骤S102中所述计算机b对所述本地文件B的各文件块分别计算校验码并生成校验码表,具体包括:所述计算机b对所述本地文件B的各文件块分别计算32位的滚动哈希值和128位的哈希值,生成校验码表。特别地,所述步骤S102具体包括:所述计算机b对所述本地文件B的各文件块分别计算32位的滚动哈希值和128位的哈希值并存储至16位校验码哈希表即校验码表,将所述本地文件B的文件信息和校验码表发送至计算机a。特别地,所述步骤S102中所述文件信息包括但不限于文件大小、文件块大小以及文件块编号。特别地,所述步骤S103包括:所述计算机a根据所述本地文件B的文件信息和校验码表,遍历对比校验码对待同步文件A进行匹配,依据相邻文件块的局部性与待同步文件A进行匹配,并将得到的匹配未成功的文件信息反馈给所述计算机b。特别地,所述步骤S103具体包括:所述计算机a对待同步文件A按照文件块大小,从与文件块编号最小的文件块对应部分开始,依次向后选择当前校验部分,并计算当前校验部分的校验码中的32位哈希值,在所述校验码表中查找32位哈希值,匹配成功后计算当前校验部分的校验码中的128位哈希值,在所述校验码表中查找128位哈希值,若两次均匹配成功,则与当前校验部分相邻的下次校验部分不需要计算32位哈希值,直接计算128位哈希值并在所述校验码表中查找128位哈希值,从而实现加速匹配;若当前校验部分匹配失败,将当前校验部分对应文件块的文件信息添加到匹配未成功的文件信息,直至对所述待同步文件A均进行查找后,将得到的匹配未成功的文件信息反馈给所述计算机b。特别地,所述步骤S103中若两次均匹配成功,则与当前校验部分相邻的下次校验部分不需要计算32位哈希值,直接计算128位哈希值并在所述校验码表中查找128位哈希值,具体包括:若两次均匹配成功,则与当前校验部分相邻的下次校验部分不需要计算32位哈希值,直接计算128位哈希值并在所述校验码表中查找128位哈希值,并将当前校验部分对应的文件块的文件块编号和文件块位置信息添加到匹配文件信息中。特别地,所述步骤S104具体包括:所述计算机b接收所述匹配未成功的文件信息,并根据所述匹配文件信息将与所述匹配未成功的文件信息对应的文件块与所述本地文件B进行文件拼接以完成同步。本专利技术提出的利用局部性提高文件差分同步速度的方法中一台计算机b将其存储的本地文件B分块,对每个文件块分别计算校验码,将本地文件B的文件信息和计算得出的校验码表发送至计算机a,计算机a存储着与B相似的待同步文件A,计算机a在将校验码分层由外而内进行对比时,利用文件局部性即与匹配的文件块相邻的文件块也很可能是匹配的这一特点来加速匹配过程,进而确定匹配未成功的文件信息,将这些信息对应的文件块发送至计算机b,计算机b将所接收的文件块与文件B进行文件拼接以实现文件同步。本专利技术在文件局部性较好的情况下会节约大量计算时间,适合同步差异比较集中的文件。附图说明图1为本专利技术利用局部性提高文件差分同步速度的方法流程图;图2为本专利技术利用局部性提高文件差分同步速度的方法的算法流程图。具体实施方式为了便于理解本专利技术,下面将参照相关附图对本专利技术进行更全面的描述。附图中给出了本专利技术的较佳实施例。但是,本专利技术可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本专利技术的公开内容理解的更加透彻全面。除非另有定义,本文所使用的所有的技术和科学术语与属于本专利技术的
的技术人员通常理解的含义相同。本文中在本专利技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本专利技术。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。请参照图1所示,图1为本专利技术提供的利用局部性提高文件差分同步速度的方法流程图。本实施例中利用局部性提高文件差分同步速度的方法具体包括如下步骤:S101、计算机b读取原始文件,将存储的本地文件B分块,获得所述本地文件B的各文件块。需要说明的是,所述计算机b所存储的是同步前的旧文件即本地文件B,所述计算机a所存储的是待同步文件A。为观察并利用局部性,需要体现文件的局部性特征,所以需要对文件分块。S102、所述计算机b对所述本地文件B的各文件块分别计算校验码并生成校验码表,将所述本地文件B的文件信息和校验码表发送至计算机a。具体的,所述计算机b对所述本地文件B的各文件块分别计算32位的滚动哈希值和128位的哈希值并存储至16位校验码哈希表即校验码表,将所述本地文件B的文件信息和校验码表发送至计算机a。在本实施例中所述文件信息包括但不限于文件大小、文件块大小以及文件块编号。在本实施例中使用Adler32算法来计算32位的弱校验值即32位的滚动哈希值和使用MD5算法来计算128位的强校验值即128位的哈希值。S103、所述计算机a根据所述本地文件B的文件信息和校验码表,依据相邻文件块的局部性与待同步文件A进行匹配,并将得到的匹配未成功的文件信息反馈给所述计算机b。具体的,所述计算机a根据所述本地文件B的文件信息和校验码表,采用遍历对比校验码的方法对待同步文件A进行匹配,依据相邻文件块的局部性与待同步文件A进行匹配,并将得到的匹配未成功的文件信息反馈给所述计算机b:所述计算机a对待同步文件A按照文件块大小,从与文件块编本文档来自技高网
...
一种利用局部性提高文件差分同步速度的方法

【技术保护点】
一种利用局部性提高文件差分同步速度的方法,其特征在于,包括如下步骤:S101、计算机b读取原始文件,将存储的本地文件B分块,获得所述本地文件B的各文件块;S102、所述计算机b对所述本地文件B的各文件块分别计算校验码并生成校验码表,将所述本地文件B的文件信息和校验码表发送至计算机a;S103、所述计算机a根据所述本地文件B的文件信息和校验码表,依据相邻文件块的局部性与待同步文件A进行匹配,并将得到的匹配未成功的文件信息反馈给所述计算机b;S104、所述计算机b接收所述匹配未成功的文件信息,并将与所述匹配未成功的文件信息对应的文件块与所述本地文件B进行文件拼接以完成同步。

【技术特征摘要】
1.一种利用局部性提高文件差分同步速度的方法,其特征在于,包括如下步骤:S101、计算机b读取原始文件,将存储的本地文件B分块,获得所述本地文件B的各文件块;S102、所述计算机b对所述本地文件B的各文件块分别计算校验码并生成校验码表,将所述本地文件B的文件信息和校验码表发送至计算机a;S103、所述计算机a根据所述本地文件B的文件信息和校验码表,依据相邻文件块的局部性与待同步文件A进行匹配,并将得到的匹配未成功的文件信息反馈给所述计算机b;S104、所述计算机b接收所述匹配未成功的文件信息,并将与所述匹配未成功的文件信息对应的文件块与所述本地文件B进行文件拼接以完成同步。2.根据权利要求1所述的利用局部性提高文件差分同步速度的方法,其特征在于,所述步骤S102中所述计算机b对所述本地文件B的各文件块分别计算校验码并生成校验码表,具体包括:所述计算机b对所述本地文件B的各文件块分别计算32位的滚动哈希值和128位的哈希值,生成校验码表。3.根据权利要求2所述的利用局部性提高文件差分同步速度的方法,其特征在于,所述步骤S102具体包括:所述计算机b对所述本地文件B的各文件块分别计算32位的滚动哈希值和128位的哈希值并存储至16位校验码哈希表即校验码表,将所述本地文件B的文件信息和校验码表发送至计算机a。4.根据权利要求3所述的利用局部性提高文件差分同步速度的方法,其特征在于,所述步骤S102中所述文件信息包括但不限于文件大小、文件块大小以及文件块编号。5.根据权利要求4所述的利用局部性提高文件差分同步速度的方法,其特征在于,所述步骤S103包括:所述计算机a根据所述本地文件B的文件信息和校验码表,遍历对比校验码对待同步文件A进行匹配,依据相邻文件块...

【专利技术属性】
技术研发人员:李洋李振华郭振格
申请(专利权)人:无锡清华信息科学与技术国家实验室物联网技术中心
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1