近日研究了远程差异化同步(RSYNC)源码,对里面的主要算法流程与业务流程作了一个比较详细的分析,知道这个概念的应该清楚,RSYNC主要是用来进行远程同步和备份的。设计初衷是为了减少带宽的使用,每次同步和备份的时候,只传递差异化的部分,不需要传递整个文件。这样的好处对于只有少部分修改的文件来说是相当有效的,如果我们需要同步和备份一个20M的文件,而其中只有两个字节修改了,那么我们只需要传递这修改的两个字节,其他没有变的不传递,这样大大减少了带宽的占用。我将从一下三个地方来讲解:
一、整体交互(即目的端A和原端B之间的交互)
如下图所示:
二、目标端和源端的模块流程图(对照源码,已经提取出源码中的重要函数)
三、三层hash查找算法
时间: 2024-11-20 04:19:46