[发明专利]一种超大文件的差异同步方法无效
申请号: | 201210124218.9 | 申请日: | 2012-04-25 |
公开(公告)号: | CN103379160A | 公开(公告)日: | 2013-10-30 |
发明(设计)人: | 张咏 | 申请(专利权)人: | 上海咏云信息技术有限公司;张咏 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 上海精晟知识产权代理有限公司 31253 | 代理人: | 何新平 |
地址: | 200333 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 超大 文件 差异 同步 方法 | ||
技术领域
本发明涉及计算机数据存储技术领域,特别涉及一种超大文件的差异同步方法。
背景技术
随着云存储技术的兴起,通过广域网(WAN)同步文件,备份文件的应用越来越普遍。文件同步最简单的做法就是对文件进行完全复制。然而文件被同步多次后,会存在大量副本,很多情况下这些副本之间只存在很小的差异。如果文件仅做了很小的修改但是却进行全量同步,会占用大量的网络带宽,同步时间也较长。另外全量备份文件也需要占用大量存储空间来保存文件的各个版本。尤其对于企业级云存储系统,面对的同步文件越来越大,动则数百GB甚至上TB,如果没有新的文件同步算法,现有的网络带宽无法有效支持超大文件的同步。
文件差异同步方法是指仅同步文件差异部分的一种方法,从而达到提高网络传输效率,节省网络带宽的目的。文件差异同步也使得云端仅需要存储文件的基础版本及多个版本相对于基础版本的差异文件(Delta文件),从而达到极大减少存储空间的目的。
目前最主流的文件差异同步方法为Rsync算法和RDC(Remote Differential Compression)算法。本文基于对这两种方法的研究与分析,取长补短,提出一套改进后的文件差异同步算法——ERDC算法,并基于此算法研发了原型系统——ERDC。ERDC可以很好的处理文件尤其是超大文件的差异同步和备份,对于企业级云存储市场有重要意义。
发明内容
本发明的目的是:当本地系统文件与云端文件不一致或遭到破坏时,进行一次快速数据同步使得本地系统文件与云端文件的数据达到一致状态,并且同步时只针对本地系统文件与云端文件的数据差异块进行同步,避免了现有技术里全部数据同步中,所存在的大量占有贷款同步速度满等缺陷。
本发明解决其技术问题所采用的技术方案是:
一种超大文件的差异同步方法,包括一云端计算机和一目标计算机,其实现步骤包括:
1、目标计算机利用ERDC(Enhanced Remote Differential Compression)分块方法将目标文件切分为不定长度的块,并对每个块生成一个32位的弱hash值和128位的MD5值;
2、目标计算机将所述弱hash值和所述的MD5值在目标文件中的偏移量和块长度存储在中间文件中,然后发送给云端计算机;
3、云端计算机利用ERDC(Enhanced Remote Differential Compression)分块方法将云端文件切分为不定长度的块,并分批读取目标计算机发送过来的中间文件,然后将云端文件与中间文件中的信息进行搜索比较,并利用ERDC hash比较算法生成差异文件,然后再将差异文件发送给目标计算机;
4、目标计算机根据差异文件和云端计算机上的云端文件,生成与云端文件内容完全相同的新文件。
进一步,所述ERDC(Enhanced Remote Differential Compression)分块方法,其步骤如下:
以文件起始字节做为第一块的上边界,按照预先设定好的块的最小值确定滑动窗口的位置,计算滑动窗口的数据指纹;
判断滑动窗口数据指纹是否满足某特定条件,如果满足,则把滑动窗口的下边界做为块的下边界,该块确定;
如果数据指纹不满足特定条件,则滑动窗口后移一个字节,继续计算和比较数据指纹,直到其符合某特定条件,确定块边界;
块确定后,计算出该块的32位弱hash值和128位MD5值,连同块的的偏移量和长度一起存入中间文件,做为后面差异编码的依据;
块确定后,把该块的下一个字节做为新块的上边界,重复第一步计算新块的边界,直到文件被全部划分,中间生成完毕。
进一步,所述滑动窗口的数据指纹采用Adler-32滚动hash算法实现。
进一步,所述Adler-32滚动hash算法定义为:216b(k,l),其中s(k,l)表示数据块Xk,...,Xl的滚动hash值,为了简化以及计算速度考虑,M取值为216,其后继的hash值可以通过递推关系快速得到:
a(k+1,l+1)=(a(k,l)-Xk+Xl+1))mod M
b(k+1,l+1)=(b(k,l)-(l-k+1)Xk+a(k+1,l+1))mod M
s(k+1,l+1)=a(k+1,l+1)+216b(k+1,l+1)。
进一步,所述ERDC hash比较算法查询数据块的步骤如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海咏云信息技术有限公司;张咏,未经上海咏云信息技术有限公司;张咏许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210124218.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种光模块的校准系统
- 下一篇:智能蓝牙免提组件