谈谈文件增量同步算法:RSYNC和CDC
2023-09-27 14:27:18 时间
谈谈文件增量同步算法:RSYNC和CDC
分类:
版权声明:本文为博主原创文章,未经博主允许不得转载。
最近在研究文件的增量同步问题,着重研究了文件差异编码部分,因为这个其实是文件同步的核心。目前应用最广泛的当然是linux下的RSYNC算法,但是这个算法本身存在缺陷,就是当两个文件完全无关时,差异编码的效率非常低,几乎难以接受!
带着这个问题,我研究了CDC(Content-Defined Chunking)算法,发现CDC算法恰好解决了这个问题:当两个文件的差异非常大时,CDC的效率非常高。我尝试了对两个完全不同的安装包文件进行差 分编码,文件大小约120M左右,使用RSYNC算法大约耗时180s,而CDC算法耗时则只有4s!但CDC也有自己的问题,在文件差异不大的情况 下,RSYNC和CDC效率差不多,但是RSYNC能够发现的重复分块更多,比CDC大约多出10%左右。
对于大文件的差异编码,我觉得可以将两者结合起来,首先使用CDC算 法进行差分编码,如果相同分块较多(可以用相同分块数据大小占文件总大小的比例确定),再使用RSYNC算法提取更多的相同分块;如果相同分块较少(可能 是2个完全无关的文件),则无需再使用RSYNC进行差分编码。这样既可以避免两个完全无关的文件差分编码时效率低下的问题,又能在文件差异较小时提取尽 可能多相同分块,鱼和熊掌兼得!
相关文章
- DVWA之File Inclusion(文件包含)
- 不运行容器,如何直接将镜像中的文件拷贝出来?
- Python文件编译成exe
- 在Ubuntu/Debian上用Unison来同步文件
- 使用od命令,linux下以ASCII方式查看文件
- python:关于py文件之间相互import的问题
- linux环境下利用rsync+find实现同步指定时间段文件
- 如何查看抓包文件所使用的捕获过滤器
- Xamarin Essentials教程打开文件
- 教你如何集成HMS Nearby Service 实现智能设备间文件的高速、免流量传输!
- 《Python Cookbook(第3版)中文版》——6.4 以增量方式解析大型XML文件
- Nginx上传文件返回413的解决
- lumen 支持多文件上传及php 原生多文件上传
- 新工具让被勒索病毒加密的文件能够部分恢复
- 使用cwRsync实现windows下文件定时同步【转】
- Android MTP 文件浏览Demo
- 微软测试新工具:让Windows 10和Android设备文件同步更方便
- Linux搭建开源企业云盘Seafile,私有文件同步云盘及基本使用
- SpringMVC文件上传和下载
- 其它 文件同步方案
- cmd 搜索文件