基于dedup技术的远程相似文件同步
来源:互联网 发布:欠淘宝贷款1年了没还上 编辑:程序博客网 时间:2024/05/16 15:25
文件副本经常在网络上来回被COPY多次,很多情形下这些文件副本之间仅有很小的差异,很可能是从同一个文件版本演化而来。如果对文件进行完全COPY,在文件较大的情况下,会占用大量网络带宽,同步时间也会较长。Rsync是类Unix环境下的一个高效的远程文件复制(同步)工具,它通过著名的Rsync算法来优化流程,减少了数据通信量并提高文件传输效率。它的大致流程如下:
假设现在有两台计算机Alpha和Beta ,计算机Alpha能够访问A文件,计算机Beta能够访问B文件,文件A和B非常相似,计算机Alpha和Beta通过低速网络互联。
1、Beta将文件B分割成连续不重叠的固定大小数据块S,最后一个数据块上可能会小于S字节;
2、Beta对于每一个数据块,计算出两个校验值,一个32位的弱滚动校验和一个128位的MD4校验;
3、Beta将校验值发送给Alpha;
4、Alpha通过搜索文件A的所有大小为S的数据块(偏移量可以任意,不一定非要是S的倍数),来寻找与文件B的某一块有着相同的弱校验码和强校验码的数据块。这主要由滚动校验Rolling checksum快速完成;
5、Alpha给Beta发送重构A文件的指令,每一条指令是一个文件B数据块引用(匹配)或者是文件A数据块(未匹配)。
以上过程详细信息请参考Rsync作者Andrew Tridgell的tech_report.ps。
Rsync是一个非常优秀的工具,但它仍然存在一些不足之处。
1、Rolling checksum虽然可以节省大量checksum校验计算量,也对checksum搜索作了优化,但多出一倍以上的hash查找,这个消耗不小;
2、Rsync算法中,Alpha和Beta计算量是不对等的,Alpha计算量非常大,而Bete计算量非常小。通常Alpha是服务器,因此压力较大;
3、Rsync中数据块大小是固定的,对数据变化的适应能力有限。
为了弥补以上这些不足,我利用dedup技术中的变长块数据切分算法,重新实现了一个远程相似文件同步原型dedup_sync。它的大致流程与Rsync相似,简单描述如下:
1、Beta采用变长块数据切分算法CDC(Content-defined chunking)将文件B分割成大小不等的数据块;
2、Beta对于每一个数据块,计算md5校验值,并记录数据块长度len和在文件B中的偏移量offset;
3、Beta将这将数据块信息发送给Alpha;
4、Alpha采用同样的数据块切分技术将文件A切成大小不等的数据块,并与Beta发过来的数据信息进行md5搜索匹配;
5、Alpha给Beta发送重构文件A的指令,每一条指令是一个文件B数据块引用(匹配)或者是文件A数据块(未匹配)。
明显地,上面这算法与rsync算法相比,去除了rolling checksum计算与hash查找,数据块大小是变化的,alpha与beta计算量也是对等的。
变长块切分CDC算法,我在dedup uitl中有实现,感兴趣读者可以去http://sourceforge.net/projects/deduputil下载源码。
当然,CDC算法也是有缺陷的,数据块大小的确定比较困难,粒度太细则开销太大,粒度过粗则dedup效果不佳。如何在两者之间权衡折衷,这是一个难点。
- 基于dedup技术的远程相似文件同步
- 基于dedup技术的远程相似文件同步
- 基于Dedup的数据打包技术
- 基于Dedup的数据打包技术
- 5-44 基于词频的文件相似度 (30分)
- PAT 基于词频的文件相似度 (set) -- 解题报告
- 基于向量余弦的文件相似度计算
- 基于Spring技术应用的远程服务
- 基于Oracle数据库的数据同步技术
- rsync远程文件同步
- rsync 远程同步文件
- ubuntu下基于rsync的文件同步
- 基于文件的离线数据同步方案
- 基于文件的离线数据同步方案
- 基于Linux的文件同步工具
- 三种基于感知哈希算法的相似图像检索技术
- 三种基于感知哈希算法的相似图像检索技术
- 三种基于感知哈希算法的相似图像检索技术
- 怎样让英文操作系统支持中文
- 【转】Linux启动sendmail速度慢的解决办法
- Hibernate面试题
- OSQL和SQLCMD 下载
- lpc2000软中断分析
- 基于dedup技术的远程相似文件同步
- 兼容IE和FF的js脚本做法(比较常用)[问题点数:20分]
- 浏览器不能运行Applet的处理之一
- Scaling Your Java EE Applications - Part 2
- Sql Server删除主键和重建主键
- ext MixedCollection 类
- wince 中文输入法的问题
- 最简单的上传图片代码
- 程序中跳转到苹果商店