亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種文件同步中向量時鐘的實現(xiàn)方法及系統(tǒng)的制作方法

文檔序號:7553835閱讀:233來源:國知局
專利名稱:一種文件同步中向量時鐘的實現(xiàn)方法及系統(tǒng)的制作方法
技術領域
本發(fā)明涉及計算機技術的通信領域以及面向云存儲的文件系統(tǒng)領域,尤其是涉及一種文件同步中向量時鐘的實現(xiàn)方法及系統(tǒng)。
背景技術
在云存儲的客戶端與客戶端,客戶端與服務器之間要數(shù)據(jù)版本一致,常需要數(shù)據(jù)同步來實現(xiàn)。向量時鐘可用于數(shù)據(jù)同步領域,在η個并發(fā)進程構成的分布式系統(tǒng)中,每個事件的邏輯時鐘均由一個η維向量CUL...!!]構成,其中第i維(分量)對應于進程i的邏輯時鐘。時鐘向量更新規(guī)則:初始時,所有的時鐘都為零;進程i在每個事件后都為時鐘向量CUL...!!]的分量i加一個步長;每個進程發(fā)送一個消息時,附帶其整個向量時鐘一起發(fā)送;每收到一個消息后,每個進程都應調(diào)整其相應的向量時鐘CUL...!!],并遵循如下規(guī)則:I彡k彡n,Ck[k]:=πι&Χ((;ω,CjM),其中Ci只能遞增,Cj為第j個進程的邏輯時鐘。通過比較兩個消息或事件的向量時鐘可以判斷消息或事件發(fā)生的先后或者檢測消息或者事件沖突(即同時發(fā)生)。在多客戶端數(shù)據(jù)同步中應用向量時鐘需要解決兩個問題:(I)如何標識客戶端;和(2)如何具體的表不一個向量時鐘。傳統(tǒng)的向量時鐘表不方式Ci[I…η]直接應用存在如下局限性:首先,需要預先知道時鐘分量的個數(shù)η,對于數(shù)據(jù)同步的動態(tài)環(huán)境(同步設備數(shù)目會變化)是比較困難的;其次,基于索引的時鐘分量需要某種機制給同步設備分配對應的索引號,索引的協(xié)商分配方式和維護開銷也會給系統(tǒng)帶來一定的復雜性。本發(fā)明將提供一種向量時鐘的實現(xiàn)方法,解決上述兩個問題。

發(fā)明內(nèi)容
為了避免需要事先確定客戶端數(shù)量并為之分配時鐘分量,保證多客戶端環(huán)境下更有效的標識客戶端,克服客戶端的標識協(xié)商和維護帶來的系統(tǒng)復雜性,本發(fā)明提供了一種文件同步中向量時鐘的實現(xiàn)方法及系統(tǒng),其允許隨著客戶端的加入,動態(tài)調(diào)整時鐘分量的個數(shù),通過標準的UUID來完成客戶端的標識,協(xié)助用戶完成向量時鐘的管理和操縱,有助于版本處理和沖突檢測。為實現(xiàn)上述目的,本發(fā)明提供了一種文件同步中向量時鐘的實現(xiàn)方法,該方法包括:步驟1,當用戶在兩個終端上對文件進行操作時,該兩個終端進行分量版本自增操作,調(diào)整各自的向量時鐘;步驟2,兩個終端中的一個終端向另一個終端發(fā)送數(shù)據(jù)同步請求,該另一終端響應所述同步請求,獲取本地同步目錄文件元數(shù)據(jù)信息后發(fā)送給該一個終端;步驟3,所述一個終端收到另一終端的本地同步目錄文件元數(shù)據(jù)信息后,根據(jù)所述另一終端的本地同步目錄文件元數(shù)據(jù)信息和自身的本地同步目錄文件元數(shù)據(jù)信息進行向量時鐘比較操作,根據(jù)比較結果執(zhí)行同步操作;
步驟4,所述兩個終端執(zhí)行同步操作后進行向量時鐘合并操作,分別獲得新的向量時鐘。所述向量時鐘是由時鐘分量組成的集合,每個時鐘分量包括通用唯一識別碼UUID和版本號,其中UUID用于唯一的標識客戶端,遵循開放軟件基金會標準,該版本號簡稱版本。進一步的,所述步驟I包括:步驟11,每個終端各自輸入需要調(diào)整的向量時鐘的時鐘分量和版本增量;

步驟12,若所述每個終端的向量時鐘中存在與所述需要調(diào)整的向量時鐘的相同的時鐘分量,則調(diào)整該終端的向量時鐘的版本為當前版本與輸入的版本增量之和;否則,先添加所述需要調(diào)整的時鐘分量,分量的識別碼為所述需要調(diào)整時鐘分量的唯一識別碼,版本號為所述需要調(diào)整該終端的向量時鐘的版本為輸入的版本增量。進一步的,所述步驟3包括:步驟31,若VCa中任意一時鐘分量的版本均小于等于VCb對應時鐘分量的版本,且VCa中存在至少一時鐘分量的版本小于VCb對應時鐘分量的版本,則比較結果為VCa小于VCb;若VCa中任意一時鐘分量的版本均等于VCb對應時鐘分量的版本,則比較結果為VCa 等于 VCb ;若VCa中任意一時鐘分量的版本均大于等于VCb對應時鐘分量的版本,且VCa中存在至少一時鐘分量的版本大于VCb對應時鐘分量的版本,則比較結果為VCa大于VCb ;若VCa中存在至少一時鐘分量的版本小于VCb對應時鐘分量的版本,且VCa中存在至少一時鐘分量的版本大于VCb對應時鐘分量的版本,則比較結果為VCa與VCb沖突;步驟32,若VCa小于VCb,說明在所述另一個終端的文件上有操作,同步操作為:更新所述一個終端的相應文件;若VCa等于VCb,說明在所述兩個終端的文件上均無操作,不進行同步操作;若VCa大于VCb,說明在所述一個終端的文件上有修改操作,同步操作為:更新所述另一個終端的相應文件;若VCa與VCb沖突,說明在所述兩個終端的文件上均有操作,更新所述兩個終端的相應文件;其中VCa為所述一個終端的向量時鐘,VCb為所述另一終端的向量時鐘。進一步的,所述步驟4包括:步驟41,將所述兩個向量時鐘的時鐘分量對應的通用唯一識別碼的并集作為所述新的向量時鐘的時鐘分量對應的通 用唯一識別碼;步驟42,將所述新的向量時鐘的任一時鐘分量的版本設置為所述兩個向量時鐘中對應時鐘分量的版本中的最大值,若某向量時鐘不存在對應時鐘分量,則設置新向量時鐘中對應時鐘分量的版本為另一存在的對應時鐘分量的版本。進一步的,文件同步操作在多個終端上,該多個終端由上述兩個終端對組成。為實現(xiàn)上述目的,本發(fā)明還提供了一種文件同步中向量時鐘的實現(xiàn)系統(tǒng),該系統(tǒng)包括:向量時鐘自增模塊,當用戶在兩個終端上對文件進行操作時,該兩個終端進行分量版本自增操作,調(diào)整各自的向量時鐘;同步請求模塊,兩個終端中的一個終端向另一個終端發(fā)送數(shù)據(jù)同步請求,該另一終端響應所述同步請求,獲取本地同步目錄文件元數(shù)據(jù)信息后發(fā)送給該一個終端;向量時鐘比較模塊,所述一個終端收到另一終端的本地同步目錄文件元數(shù)據(jù)信息后,根據(jù)所述另一終端的本地同步目錄文件元數(shù)據(jù)信息和自身的本地同步目錄文件元數(shù)據(jù)信息進行向量時鐘比較操作,根據(jù)比較結果執(zhí)行同步操作;向量時鐘合并模塊,所述兩個終端執(zhí)行同步操作后進行向量時鐘合并操作,分別獲得新的向量時鐘;所述向量時鐘是由時鐘分量組成的集合,每個時鐘分量包括通用唯一識別碼UUID和版本號,其中UUID用于唯一的標識客戶端,遵循開放軟件基金會標準,該版本號簡稱版本。進一步的所述向量時鐘自增模塊包括:輸入模塊,每個終端各自輸入需要調(diào)整的向量時鐘的時鐘分量和版本增量;調(diào)整模塊,若所述每個終端的向量時鐘中存在與所述需要調(diào)整的向量時鐘的相同的時鐘分量,則調(diào)整該終端的 向量時鐘的版本為當前版本與輸入的版本增量之和;否則,先添加所述需要調(diào)整的時鐘分量,分量的識別碼為所述需要調(diào)整時鐘分量的唯一識別碼,版本號為所述需要調(diào)整該終端的向量時鐘的版本為輸入的版本增量。進一步的所述向量時鐘比較模塊包括:比較模塊,若VCa中任意一時鐘分量的版本均小于等于VCb對應時鐘分量的版本,且VCa中存在至少一時鐘分量的版本小于VCb對應時鐘分量的版本,則比較結果為VCa小于VCb;若VCa中任意一時鐘分量的版本均等于VCb對應時鐘分量的版本,則比較結果為VCa 等于 VCb ;若VCa中任意一時鐘分量的版本均大于等于VCb對應時鐘分量的版本,且VCa中存在至少一時鐘分量的版本大于VCb對應時鐘分量的版本,則比較結果為VCa大于VCb ;若VCa中存在至少一時鐘分量的版本小于VCb對應時鐘分量的版本,且VCa中存在至少一時鐘分量的版本大于VCb對應時鐘分量的版本,則比較結果為VCa與VCb沖突;同步模塊,若VCa小于VCb,說明在所述另一個終端的文件上有操作,同步操作為:更新所述一個終端的相應文件;若VCa等于VCb,說明在所述兩個終端的文件上均無操作,不進行同步操作;若VCa大于VCb,說明在所述一個終端的文件上有修改操作,同步操作為:更新所述另一個終端的相應文件;若VCa與VCb沖突,說明在所述兩個終端的文件上均有操作,更新所述兩個終端的相應文件;其中VCa為所述一個終端的向量時鐘,VCb為所述另一終端的向量時鐘。進一步的所述向量時鐘合并模塊包括:識別碼合并模塊,將所述兩個向量時鐘的時鐘分量對應的通用唯一識別碼的并集作為所述新的向量時鐘的時鐘分量對應的通用唯一識別碼;版本合并模塊,將所述新的向量時鐘的任一時鐘分量的版本設置為所述兩個向量時鐘中對應時鐘分量的版本中的最大值,若某向量時鐘不存在對應時鐘分量,則設置新向量時鐘中對應時鐘分量的版本為另一存在對應時鐘分量的版本。進一步的,文件同步操作在多個終端上,該多個終端由上述兩個終端對的模塊實現(xiàn)同步操作。本發(fā)明的有益功效在于:首先,向量時鐘分量數(shù)隨著客戶端的加入,動態(tài)調(diào)整分量的個數(shù),即不需要事先確定所有客戶端數(shù)量及預先分配此數(shù)量長度;其次,本方法通過標準的UUID來完成客戶端的標識,通過調(diào)用操作系統(tǒng)或特定的開發(fā)庫中已存在的功能,即可得到客戶端的標識,有效的克服了客戶端的標識協(xié)商和維護帶來的系統(tǒng)復雜性;此外,本方法還提供了一套操縱向量時鐘的主要接口,包括向量時鐘比較操作,向量時鐘分量版本自增操作,向量時鐘合并操作,可協(xié)助用戶完成向量時鐘的管理和操縱,有助于版本處理和沖突檢測。以下結合附圖和具體實施例對本發(fā)明進行詳細描述,但不作為對本發(fā)明的限定。


圖1是本發(fā)明的文件同步中向量時鐘的實現(xiàn)方法流程圖;圖2是本發(fā)明的文件同步中向量時鐘的實現(xiàn)系統(tǒng)示意圖;圖3是本發(fā)明的一實施例的文件同步中向量時鐘的實現(xiàn)方法流程圖。
具體實施例方式本發(fā)明提供多客戶端數(shù)據(jù)同步中向量時鐘的一種實現(xiàn)方法,具體地:定義向量時鐘是由向量時鐘分量(以下簡稱“時鐘分量”)組成的集合,每個時鐘分量包含但不限于如下信息要素=UUID和版本號V。其中,UUID用于唯一的標識客戶端,遵循開放軟件基金會(OSF)標準(RFC4122和IS0/IEC11578:1996),典型的實現(xiàn)方式是在客戶端首次安裝時通過調(diào)用操作系統(tǒng)的接口生成。版本號V是一 個整數(shù),標示對應數(shù)據(jù)的版本,在數(shù)據(jù)被修改時,按照某些預定義的規(guī)則進行自增。在上述格式的基礎上,本發(fā)明還提供了可用于上述向量時鐘實現(xiàn)方式的三種操作:比較操作,用于確定兩個向量時鐘的順序和沖突檢測;分量版本自增操作,用于在客戶端對文件操作時調(diào)整向量時鐘;向量時鐘合并操作,用于沖突解決時調(diào)整合并兩個沖突的向量時鐘。本方法通過重用現(xiàn)有的操作系統(tǒng)的UUID生成功能,解決了客戶端的唯一標識問題,有效的克服了客戶端的標識協(xié)商和維護帶來的系統(tǒng)復雜性;允許隨著客戶端的加入,動態(tài)調(diào)整時鐘分量的個數(shù),因而不必事先確定或預先分配向量長度。向量時鐘的格式:本發(fā)明中的所述向量時鐘是由時鐘分量組成的集合,每個時鐘分量包含但不限于如下信息要素:UUID和版本V是。其中,UUID為客戶端的唯一標識,遵循開放軟件基金會(OSF)的標準。版本V是一個整數(shù),標示對應數(shù)據(jù)的版本,在數(shù)據(jù)被修改時,按照某些預定義的規(guī)則進行自增。一種典型的實現(xiàn)方案:向量時鐘格式為數(shù)組JIUUID1,VJ,..., (UUIDi, VJ,..., {UUIDn,Vj ],其中時鐘分量i是一個二元組,UUIDi是客戶端i的UUID,在客戶端安裝時調(diào)用操作系統(tǒng)的接口生成%是文件被客戶端i操作的次數(shù),所述操作包括但不限于添加、刪除、修改等。當有新的客戶端加入時,可以通過簡單的增加一個數(shù)組元素的方式動態(tài)調(diào)整時鐘分量。向量時鐘比較操作:該操作用于確定兩個向量時鐘的順序和檢測數(shù)據(jù)版本沖突。具體地,該操作輸入為用于比較的兩個向量時鐘VCa和vcb,輸出為下列比較結果之一:VCa小于VCb =VCa中任意一時鐘分量的版本均小于等于VCb對應分量的版本,且VCa中存在至少一時鐘分量的版本小于VCb對應分量的版本。VCa等于VCb =VCa中任意一時鐘分量版本均等于VCb中對應分量的版本。VCa大于VCb =VCa中任意一時鐘分量的版本均大于等于VCb中對應分量的版本,且VCa中存在至少一個時鐘分量版本大于VCb中對應分量的版本。VCa和VCb沖突:VCa中存在至少一個時鐘分量的版本小于VCb中對應分量的版本,且VCa存在至少一個時鐘分量的版本大于VCb中對應分量的版本。分量版本自增操作:該操作用于在客戶端對文件操作時調(diào)整向量時鐘。具體地,該操作的輸入為需要調(diào)整的向量時鐘、需要調(diào)整的分量(或其UUID)和版本增量,輸出為調(diào)整后的向量時鐘。更新操作結果包含但不限于以下特征:若此向量時鐘中存在與調(diào)整分量UUID相同的時鐘分量,則調(diào)整該時鐘分量的版本為當前版本與輸入的版本增量之和。若此向量時鐘不存在上述時鐘分量,則在向量時鐘中添加一個新時鐘分量,對應的UUID設置為調(diào)整分量的UUID,版本為輸入的版本增量。

向量時鐘合并操作:該操作用于解決沖突后調(diào)整合并兩個沖突的向量時鐘。具體地,該操作的輸入為需要合并的兩個或多個向量時鐘,輸出為合并后的向量時鐘。所述合并后的向量時鐘包含但不限于如下特征:合并后的向量時鐘的分量對應的UUID為原兩個或多個向量時鐘的分量對應的UUID的并集。合并后的向量時鐘的任一分量的版本為原兩個或多個向量時鐘中對應分量的版本中的最大值。若某向量時鐘不存在對應的分量,則相當于該時鐘中對應分量的版本號為O0圖1是本發(fā)明的文件同步中向量時鐘的實現(xiàn)方法流程圖。如圖1所示,該方法包括:步驟1,當用戶在多個終端上對文件進行操作時,終端進行分量版本自增操作,調(diào)整各自的向量時鐘;步驟2,兩個終端中的一個終端向另一個終端發(fā)送數(shù)據(jù)同步請求,該另一終端響應所述同步請求,獲取本地同步目錄文件元數(shù)據(jù)信息后發(fā)送給該一個終端;步驟3,所述一個終端收到另一終端的本地同步目錄文件元數(shù)據(jù)信息后,根據(jù)所述另一終端的本地同步目錄文件元數(shù)據(jù)信息和自身的本地同步目錄文件元數(shù)據(jù)信息進行向量時鐘比較操作,根據(jù)比較結果執(zhí)行同步操作;步驟4,所述兩個終端執(zhí)行同步操作后進行向量時鐘合并操作,分別獲得新的向量時鐘;所述向量時鐘是由時鐘分量組成的集合,每個時鐘分量包括通用唯一識別碼UUID和版本號,其中UUID用于唯一的標識客戶端,遵循開放軟件基金會(OSF)標準(RFC4122和IS0/IEC11578:1996),該版本號簡稱版本,通用唯一識別碼UUID簡稱通用唯一識別碼。進一步的,所述步驟I包括:步驟11,每個終端各自輸入需要調(diào)整的向量時鐘的時鐘分量和版本增量;
步驟12,若所述每個終端的向量時鐘中存在與所述需要調(diào)整的向量時鐘的相同的時鐘分量,則調(diào)整該終端的向量時鐘的版本為當前版本與輸入的版本增量之和;否則,先添加所述需要調(diào)整的時鐘分量,分量的識別碼為所述需要調(diào)整時鐘分量的唯一識別碼,版本號為所述需要調(diào)整該終端的向量時鐘的版本為輸入的版本增量。進一步的,所述步驟3包括:步驟31,若VCa中任意一時鐘分量的版本均小于等于VCb對應時鐘分量的版本,且VCa中存在至少一時鐘分量的版本小于VCb對應時鐘分量的版本,則比較結果為VCa小于VCb;若VCa中任意一時鐘分量的版本均等于VCb對應時鐘分量的版本,則比較結果為VCa 等于 VCb ;若VCa中任意一時鐘分量的版本均大于等于VCb對應時鐘分量的版本,且VCa中存在至少一時鐘分量的版本大于VCb對應時鐘分量的版本,則比較結果為VCa大于VCb ;若VCa中存在至少一時鐘分量的版本小于VCb對應時鐘分量的版本,且VCa中存在至少一時鐘分量的版本大于VCb對應時鐘分量的版本,則比較結果為VCa與VCb沖突;步驟32,若VCa小于VCb,說明在所述另一個終端的文件上有操作,同步操作為:更新所述一個終端的相應文件;若VCa等于VCb,說明在所述兩個終端的文件上均無操作,不進行同步操作;若VCa大于VCb,說明在所述一個終端的文件上有修改操作,同步操作為:更新所述另一個終端的相應文件;

若VCa與VCb沖突,說明在所述兩個終端的文件上均有操作,更新所述兩個終端的相應文件;其中VCa為所述一個終端的向量時鐘,VCb為所述另一終端的向量時鐘。進一步的,所述步驟4包括:步驟41,將所述兩個向量時鐘的時鐘分量對應的通用唯一識別碼的并集作為所述新的向量時鐘的時鐘分量對應的通用唯一識別碼;步驟42,將所述新的向量時鐘的任一時鐘分量的版本設置為所述兩個向量時鐘中對應時鐘分量的版本中的最大值,若某向量時鐘不存在對應時鐘分量,則設置新向量時鐘中對應時鐘分量的版本為另一存在對應時鐘分量的版本。進一步的,文件同步操作在多個終端上,該多個終端由上述兩個終端對組成。圖2是本發(fā)明的文件同步中向量時鐘的實現(xiàn)系統(tǒng)示意圖。如圖2所示,該系統(tǒng)包括:為實現(xiàn)上述目的,本發(fā)明還提供了一種文件同步中向量時鐘的實現(xiàn)系統(tǒng),該系統(tǒng)包括:向量時鐘自增模塊100,當用戶在兩個終端上對文件進行操作時,該兩個終端進行分量版本自增操作,調(diào)整各自的向量時鐘;同步請求模塊200,兩個終端中的一個終端向另一個終端發(fā)送數(shù)據(jù)同步請求,該另一終端響應所述同步請求,獲取本地同步目錄文件元數(shù)據(jù)信息后發(fā)送給該一個終端;向量時鐘比較模塊300,所述一個終端收到另一終端的本地同步目錄文件元數(shù)據(jù)信息后,根據(jù)所述另一終端的本地同步目錄文件元數(shù)據(jù)信息和自身的本地同步目錄文件元數(shù)據(jù)信息進行向量時鐘比較操作,根據(jù)比較結果執(zhí)行同步操作;向量時鐘合并模塊400,所述兩個終端執(zhí)行同步操作后進行向量時鐘合并操作,分別獲得新的向量時鐘;所述向量時鐘是由時鐘分量組成的集合,每個時鐘分量包括通用唯一識別碼UUID和版本號,其中UUID用于唯一的標識客戶端,遵循開放軟件基金會(OSF)標準(RFC4122和IS0/IEC11578:1996),該版本號簡稱版本,通用唯一識別碼UUID簡稱通用唯一識別碼。進一步的所述向量時鐘自增模塊100包括:輸入模塊,每個終端各自輸入需要調(diào)整的向量時鐘的時鐘分量和版本增量;調(diào)整模塊,若所述每個終端的向量時鐘中存在與所述需要調(diào)整的向量時鐘的相同的時鐘分量,則調(diào)整該終端的向量時鐘的版本為當前版本與輸入的版本增量之和;否則,先添加所述需要調(diào)整的時鐘分量,分量的識別碼為所述需要調(diào)整時鐘分量的唯一識別碼,版本號為所述需要調(diào)整該終端的向量時鐘的版本為輸入的版本增量。進一步的所述向量時鐘比較模塊300包括:比較模塊,若VCa中任意一時鐘分量 的版本均小于等于VCb對應時鐘分量的版本,且VCa中存在至少一時鐘分量的版本小于VCb對應時鐘分量的版本,則比較結果為VCa小于VCb;若VCa中任意一時鐘分量的版本均等于VCb對應時鐘分量的版本,則比較結果為VCa 等于 VCb ;若VCa中任意一時鐘分量的版本均大于等于VCb對應時鐘分量的版本,且VCa中存在至少一時鐘分量的版本大于VCb對應時鐘分量的版本,則比較結果為VCa大于VCb ;若VCa中存在至少一時鐘分量的版本小于VCb對應時鐘分量的版本,且VCa中存在至少一時鐘分量的版本大于VCb對應時鐘分量的版本,則比較結果為VCa與VCb沖突;同步模塊,若VCa小于VCb,說明在所述另一個終端的文件上有操作,同步操作為:更新所述一個終端的相應文件;若VCa等于VCb,說明在所述兩個終端的文件上均無操作,不進行同步操作;若VCa大于VCb,說明在所述一個終端的文件上有修改操作,同步操作為:更新所述另一個終端的相應文件;若VCa與VCb沖突,說明在所述兩個終端的文件上均有操作,更新所述兩個終端的相應文件;其中VCa為所述一個終端的向量時鐘,VCb為所述另一終端的向量時鐘。進一步的所述向量時鐘合并模塊400包括:識別碼合并模塊,將所述兩個向量時鐘的時鐘分量對應的通用唯一識別碼的并集作為所述新的向量時鐘的時鐘分量對應的通用唯一識別碼;版本合并模塊,將所述新的向量時鐘的任一時鐘分量的版本設置為所述兩個向量時鐘中對應時鐘分量的版本中的最大值,若某向量時鐘不存在對應時鐘分量,則設置新向量時鐘中對應時鐘分量的版本為另一存在對應時鐘分量的版本。進一步的,文件同步操作在多個終端上,該多個終端由上述兩個終端對的模塊實現(xiàn)同步操作。圖3是本發(fā)明的一實施例的文件同步中向量時鐘的實現(xiàn)方法流程圖。如圖3所示:初始狀態(tài):兩個終端設備A與B (以下簡稱“終端A”、“終端B”)處于同步狀態(tài)。同步目錄下存在文件fileA.txt、fileB.txt、fileC.txt、fileD.txt。初始狀態(tài)下個文件在終端上的向量時鐘如下(具體實現(xiàn)可以使數(shù)據(jù)庫存儲也可以是文件等):
權利要求
1.一種文件同步中向量時鐘的實現(xiàn)方法,其特征在于,包括: 步驟1,當用戶在兩在兩個終端上對文件進行操作時,該兩個終端進行分量版本自增操作,調(diào)整各自的向量時鐘; 步驟2,兩個終端中的一個終端向另一個終端發(fā)送數(shù)據(jù)同步請求,該另一終端響應所述同步請求,獲取本地同步目錄文件元數(shù)據(jù)信息后發(fā)送給該一個終端; 步驟3,所述一個終端收到另一終端的本地同步目錄文件元數(shù)據(jù)信息后,根據(jù)所述另一終端的本地同步目錄文件元數(shù)據(jù)信息和自身的本地同步目錄文件元數(shù)據(jù)信息進行向量時鐘比較操作,根據(jù)比較結果執(zhí)行同步操作; 步驟4,所述兩個終端執(zhí)行同步操作后進行向量時鐘合并操作,分別獲得新的向量時鐘; 所述向量時鐘是由時鐘分量組成的集合,每個時鐘分量包括通用唯一識別碼UUID和版本號,其中UUID用于唯一的標識客戶端,遵循開放軟件基金會標準,該版本號簡稱版本。
2.如權利要求1所述的文件同步中向量時鐘的實現(xiàn)方法,其特征在于,所述步驟I包括: 步驟11,每個終端各自輸入需要調(diào)整的向量時鐘的時鐘分量和版本增量; 步驟12,若所述每個終端的向量時鐘中存在與所述需要調(diào)整的向量時鐘的相同的時鐘分量,則調(diào)整該終端的向量時鐘的版本為當前版本與輸入的版本增量之和;否則,先添加所述需要調(diào)整的向量時鐘的時鐘分量,分量的識別碼為所述需要調(diào)整的向量時鐘分量的識別碼,版本號為所述需要調(diào)整該終端的向量時鐘的版本為輸入的版本增量。
3.如權利要求1所述的文件同步中向量時鐘的實現(xiàn)方法,其特征在于,所述步驟3包括: 步驟31,若VCa中任意一時鐘分量的版本均小于等于VCb對應時鐘分量的版本,且VCa中存在至少一時鐘分量的版本小于VCb對應時鐘分量的版本,則比較結果為VCa小于VCb ;若VCa中任意一時鐘分量的版本均等于VCb對應時鐘分量的版本,則比較結果為VCa等于 VCb ; 若VCa中任意一時鐘分量的版本均大于等于VCb對應時鐘分量的版本,且VCa中存在至少一時鐘分量的版本大于VCb對應時鐘分量的版本,則比較結果為VCa大于VCb ; 若VCa中存在至少一時鐘分量的版本小于VCb對應時鐘分量的版本,且VCa中存在至少一時鐘分量的版本大于VCb對應時鐘分量的版本,則比較結果為VCa與VCb沖突; 步驟32,若VCa小于VCb,說明在所述另一個終端的文件上有操作,同步操作為:更新所述一個終端的相應文件; 若VCa等于vcb,說明在所述兩個終端的文件上均無操作,不進行同步操作; 若VCa大于vcb,說明在所述一個終端的文件上有修改操作,同步操作為:更新所述另一個終端的相應文件; 若VCa與VCb沖突,說明在所述兩個終端的文件上均有操作,更新所述兩個終端的相應文件; 其中VCa為所述一個終端的向量時鐘,VCb為所述另一終端的向量時鐘。
4.如權利要求1所述的文件同步中向量時鐘的實現(xiàn)方法,其特征在于,所述步驟4包括:步驟41,將所述兩個向量時鐘的時鐘分量對應的通用唯一識別碼的并集作為所述新的向量時鐘的時鐘分量對應的通用唯一識別碼; 步驟42,將所述新的向量時鐘的任一時鐘分量的版本設置為所述兩個向量時鐘中對應時鐘分量的版本中的最大值,若某向量時鐘不存在對應時鐘分量,則設置新向量時鐘中對應時鐘分量的版本為另一存在的對應時鐘分量的版本。
5.如權利要求1所述的文件同步中向量時鐘的實現(xiàn)方法,其特征在于,文件同步操作在多個終端上,該多個終端由權利要求1至4中的兩個終端對組成。
6.一種文件同步中向量時鐘的實現(xiàn)系統(tǒng),其特征在于,包括: 向量時鐘自增模塊,當用戶在兩個終端上對文件進行操作時,該兩個終端進行分量版本自增操作,調(diào)整各自的向量時鐘; 同步請求模塊,兩個終端中的一個終端向另一個終端發(fā)送數(shù)據(jù)同步請求,該另一終端響應所述同步請求,獲取本地同步目錄文件元數(shù)據(jù)信息后發(fā)送給該一個終端; 向量時鐘比較模塊,所述一個終端收到另一終端的本地同步目錄文件元數(shù)據(jù)信息后,根據(jù)所述另一終端的本地同步目錄文件元數(shù)據(jù)信息和自身的本地同步目錄文件元數(shù)據(jù)信息進行向量時鐘比較操作,根據(jù)比較結果執(zhí)行同步操作; 向量時鐘合并模塊,所述兩個終端執(zhí)行同步操作后進行向量時鐘合并操作,分別獲得新的向量時鐘; 所述向量時鐘是由時 鐘分量組成的集合,每個時鐘分量包括通用唯一識別碼UUID和版本號,其中UUID用于唯一的標識客戶端,遵循開放軟件基金會標準,該版本號簡稱版本。
7.如權利要求6所述的文件同步中向量時鐘的實現(xiàn)系統(tǒng),其特征在于,所述向量時鐘自增模塊包括: 輸入模塊,每個終端各自輸入需要調(diào)整的向量時鐘的時鐘分量和版本增量; 調(diào)整模塊,若所述每個終端的向量時鐘中存在與所述需要調(diào)整的向量時鐘的相同的時鐘分量,則調(diào)整該終端的向量時鐘的版本為當前版本與輸入的版本增量之和;否則,先添加所述需要調(diào)整的時鐘分量,分量的識別碼為所述需要調(diào)整時鐘分量的唯一識別碼,版本號為所述需要調(diào)整該終端的向量時鐘的版本為輸入的版本增量。
8.如權利要求6所述的文件同步中向量時鐘的實現(xiàn)系統(tǒng),其特征在于,所述向量時鐘比較模塊包括: 比較模塊,若VCa中任意一時鐘分量的版本均小于等于VCb對應時鐘分量的版本,且VCa中存在至少一時鐘分量的版本小于VCb對應時鐘分量的版本,則比較結果為VCa小于VCb ;若VCa中任意一時鐘分量的版本均等于VCb對應時鐘分量的版本,則比較結果為VCa等于 VCb ; 若VCa中任意一時鐘分量的版本均大于等于VCb對應時鐘分量的版本,且VCa中存在至少一時鐘分量的版本大于VCb對應時鐘分量的版本,則比較結果為VCa大于VCb ; 若VCa中存在至少一時鐘分量的版本小于VCb對應時鐘分量的版本,且VCa中存在至少一時鐘分量的版本大于VCb對應時鐘分量的版本,則比較結果為VCa與VCb沖突; 同步模塊,若VCa小于vcb,說明在所述另一個終端的文件上有操作,同步操作為:更新所述一個終端的相應文件; 若VCa等于vcb,說明在所述兩個終端的文件上均無操作,不進行同步操作;若VCa大于vcb,說明在所述一個終端的文件上有修改操作,同步操作為:更新所述另一個終端的相應文件; 若VCa與VCb沖突,說明在所述兩個終端的文件上均有操作,更新所述兩個終端的相應文件; 其中VCa為所述一個終端的向量時鐘,VCb為所述另一終端的向量時鐘。
9.如權利要求6所述的文件同步中向量時鐘的實現(xiàn)系統(tǒng),其特征在于,所述向量時鐘合并模塊包括: 識別碼合并模塊,將所述兩個向量時鐘的時鐘分量對應的通用唯一識別碼的并集作為所述新的向量時鐘的時鐘分量對應的通用唯一識別碼; 版本合并模塊,將所述新的向量時鐘的任一時鐘分量的版本設置為所述兩個向量時鐘中對應時鐘分量的版本中的最大值,若某向量時鐘不存在對應時鐘分量,則設置新向量時鐘中對應時鐘分量的版本為另一存在的對應時鐘分量的版本。
10.如權利要求6所述的文件同步中向量時鐘的實現(xiàn)系統(tǒng),其特征在于,文件同步操作在多個終端上,該多個終端由權利要求6至9中的兩個終端對的模塊實現(xiàn)同步操作。
全文摘要
本發(fā)明提供一種文件同步系統(tǒng)中向量時鐘的實現(xiàn)方法及系統(tǒng),該方法包括步驟1,當用戶在兩個終端上對文件進行操作時,該兩個終端進行分量版本自增操作,調(diào)整各自的向量時鐘;步驟2,兩個終端中的一個終端向另一個終端發(fā)送數(shù)據(jù)同步請求,該另一終端響應所述同步請求,獲取本地同步目錄文件元數(shù)據(jù)信息后發(fā)送給該一個終端;步驟3,所述一個終端收到另一終端的本地同步目錄文件元數(shù)據(jù)信息后,根據(jù)所述另一終端的本地同步目錄文件元數(shù)據(jù)信息和自身的本地同步目錄文件元數(shù)據(jù)信息進行向量時鐘比較操作,根據(jù)比較結果執(zhí)行同步操作;步驟4,所述兩個終端執(zhí)行同步操作后進行向量時鐘合并操作,分別獲得新的向量時鐘。以此方式實現(xiàn)所有終端數(shù)據(jù)同步。
文檔編號H04L29/08GK103220336SQ201310091759
公開日2013年7月24日 申請日期2013年3月21日 優(yōu)先權日2013年3月21日
發(fā)明者李旭, 劉立坤, 王一帆, 張立新 申請人:中國科學院計算技術研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1