1. 程式人生 > >遠端差異化同步(RSYNC)講解及原始碼剖析

遠端差異化同步(RSYNC)講解及原始碼剖析

近日研究了遠端差異化同步(RSYNC)原始碼,對裡面的主要演算法流程與業務流程作了一個比較詳細的分析,知道這個概念的應該清楚,RSYNC主要是用來進行遠端同步和備份的。設計初衷是為了減少頻寬的使用,每次同步和備份的時候,只傳遞差異化的部分,不需要傳遞整個檔案。這樣的好處對於只有少部分修改的檔案來說是相當有效的,如果我們需要同步和備份一個20M的檔案,而其中只有兩個位元組修改了,那麼我們只需要傳遞這修改的兩個位元組,其他沒有變的不傳遞,這樣大大減少了頻寬的佔用。我將從一下三個地方來講解:

一、整體互動(即目的端A和原端B之間的互動)

如下圖所示:


二、目標端和源端的模組流程圖(對照原始碼,已經提取出原始碼中的重要函式)


三、三層hash查詢演算法