谈谈文件增量同步算法:RSYNC和CDC

谈谈文件增量同步算法: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进行差分编码。这样既可以避免两个完全无关的文件差分编码时效率低下的问题,又能在文件差异较小时提取尽 可能多相同分块,鱼和熊掌兼得!

时间: 2024-10-28 18:35:52

谈谈文件增量同步算法:RSYNC和CDC的相关文章

文件增量备份工具

增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的部分.这就意味着,第一次增量备份的对象是进行全备后所产生的增加和修改的文件;第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件,如此类推. 增量备份由于没有重复的备份数据,因此备份的数据量不大,备份所需的时间短,所需的数据存储空间小,再加上云存储的价格优势,将进一步降低整体成本投入.而且云端数据备份还可以省去备份硬件损坏造成的难以恢复的问题. 下面介绍几款常见的文件增量备份软件: 1.多

如何实现文件增量同步——算法

如何实现文件增量同步——算法 问题: 如何增量同步文件,例如一个文本文件有10M,分别存放在A,B两个地方,现在两个文件是完全一样的,但是我马上要在A上对这个文件进行修改,B如何实现自动和A上的文件保持一致,并且网络的传输量最少. 应用场景: 这样的使用场景太多,这里随便列举几个 1.A机器为线上运营的机器,现在需要一台备份的机器B,当A发生宕机的时候,或者硬盘损坏等各种认为非人为原因导致数据不可用时,可以很快从B恢复 2.SVN这样的应用场景,不需要每次修改都向服务器发送并替换掉一个文件,而是

烂泥:linux文件同步之rsync学习(一)

本文由秀依林枫提供友情赞助,首发于烂泥行天下. 这几天刚好有空就打算开始学习linux下的文件同步软件rsync,在学习rsync时,我们可以分以下几个步骤进行: 1. rsync是什么 2. rsync的工作原理 3. rsync优点 4. rsync认证方式 5. 安装rsync 6. rsync命令参数详解 7. 配置rsync 8. rsync的启动与关闭 9. rsync同步实例 说明:rsync服务器与客户端使用的OS均为:centos 6.5 64bit. 一.rsync是什么 在

Linux文件同步工具-rsync

Linux文件同步工具-rsync 安装包 yum install -y rsync rsync常用选项 -a:归档模式,表示递归方式传输文件,并保持所有属性:通-rlptgoD:-r:同步目录时要加上,类似cp时加R:-v:同步时显示一些信息,让我们知道同步国创:-l:保留软链接:-L:同步软链接时会把源文件给同步:-p:保持文件权限属性:-o:保持文件的属主:-g:保持文件的属组:-D:保持设备文件信息:-t:保持文件的时间属性:--delte:删除DEST中SRC没有的文件:--exclu

文件同步工具rsync

文件同步工具rsync 通过ssh方式同步 原文地址:http://blog.51cto.com/13515599/2069519

数据文件实时同步(rsync + sersync2)

因近期项目需求,需要同步云端服务器的数据给**方做大数据分析. 思路: 起初只要数据同步,准备开放数据采集接口.但实时性较差,会有延迟. 故而寻觅各种解决方案,最终确定使用 rsync 进行文件同步,otter(阿里的开源工具) 进行数据库同步 最终使用成功,同步效果显著! 本文先只介绍 rsync 的文件同步,otter 会在其他文章分享 一.简介 网上简介一堆,不过都写的很官方,下面的介绍是我自己使用后的感受. sersync 用于监控目录后调用 rsync 同步命令,进行文件传输! 可以监

Linux远程增量备份-Rsync

Rsync使用的Rsync算法来使本地和远程主机的文件达到同步,这个算法只传送两个文件的不同部分,从而实现增量备份 特点: 能同步整个目录.树和文件系统 有选择性的保持符号链接.硬连接.文件属主.权限.设备以及时间等 能用rsh.ssh或端口作为传输端口,支持匿名同步 安装: yum install -y rsync rsync命令参数: -v表示verbose详细显示 -z表示压缩 -r表示recursive递归 -t表示保持原文件创建时间 -o表示保持原文件属主 -p表示保持原文件的参数 -

Linux的文件同步工具rsync实战

前言:rsync是一款开源的,快速的,多功能的(cp,scp,rm),可实现全量及增量的本地或远程数据镜像同步备份的优秀软件工具.rsync适用于Unix/Linux/Windows等多种操作系统平台.本文主要讲解rsync的三种常见的文件同步模式,即:本地模式,通过远程shell访问模式,rsync守护进程模式,以及其在企业生产产景中的实际应用. 原文地址:http://blog.51cto.com/11218855/2151805

linux-日常运维-文件同步工具-rsync

作用:a机器文件传输到b机器,远程备份.也可以本机到本机.需求: 将a目录下的数据拷贝到b目录下去,且a一直在更新,每小时拷贝一次 可以使用此命令,rsync, 特点:实现增量拷贝假设;如果a只更新了一个文件,那么在只要rsync 进行同步时,只同步更新的这个文件 本机同步yum install -y rsync #安装命令rsync -av /etc/passwd /tmp/1.txt #将/etc/passwd文件拷贝到/tmp下且更改名称为1.txt -av v是可视化远程同步:格式:rs