[发明专利]一种利用局部性提高文件差分同步速度的方法在审
申请号: | 201710708408.8 | 申请日: | 2017-08-17 |
公开(公告)号: | CN107480267A | 公开(公告)日: | 2017-12-15 |
发明(设计)人: | 李洋;李振华;郭振格 | 申请(专利权)人: | 无锡清华信息科学与技术国家实验室物联网技术中心 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京品源专利代理有限公司11332 | 代理人: | 孟金喆 |
地址: | 214135 江苏省无锡市新*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 利用 局部性 提高 文件 同步 速度 方法 | ||
技术领域
本发明涉及互联网技术领域,尤其涉及一种利用局部性提高文件差分同步速度的方法。
背景技术
云存储已经成为未来存储发展的一种趋势。目前云存储服务一方面可以为互联网用户提供大容量的存储服务,另一方面也可以用来进行互联网应用的后台数据存储。尽管云存储服务方便实用,但目前依旧存在着影响互联网用户体验的问题,而其中一个常见的问题就是在将文件同步上传至云服务时耗时较长,严重影响用户体验。为了解决上述问题,我们发现,用户在使用云存储服务进行文件同步时,用户所上传的待同步文件相比云端文件的差异局部性绝大多数都很好,而国内外知名的云服务如百度云、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进行文件拼接以完成同步。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡清华信息科学与技术国家实验室物联网技术中心,未经无锡清华信息科学与技术国家实验室物联网技术中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710708408.8/2.html,转载请声明来源钻瓜专利网。