国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      分布式系統(tǒng)版本控制方法、節(jié)點(diǎn)及系統(tǒng)的制作方法

      文檔序號(hào):7928998閱讀:153來源:國(guó)知局
      專利名稱:分布式系統(tǒng)版本控制方法、節(jié)點(diǎn)及系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及通信領(lǐng)域中核心網(wǎng),具體地,涉及一種分布式系統(tǒng)版本控制方法、節(jié)點(diǎn)
      及系統(tǒng)。
      背景技術(shù)
      分布式存儲(chǔ)系統(tǒng)通常具有數(shù)據(jù)冗余存儲(chǔ)機(jī)制,即對(duì)同一份數(shù)據(jù),在不同的節(jié)點(diǎn)上存儲(chǔ)多個(gè)復(fù)本,由此帶來了數(shù)據(jù)存儲(chǔ)的高可靠性,數(shù)據(jù)讀取的高吞吐量等優(yōu)點(diǎn)。但是也存在數(shù)據(jù)多復(fù)本之間需要同步的問題,稱為版本控制問題。 在集中式存儲(chǔ)系統(tǒng)中,版本的控制比較簡(jiǎn)單,可以使用復(fù)本的最后修改時(shí)間作為評(píng)判標(biāo)準(zhǔn),由于時(shí)鐘源唯一,因此,最后被修改的復(fù)本是最新的版本。但是,在分布式系統(tǒng)中,保證各個(gè)節(jié)點(diǎn)時(shí)鐘的高精度同步比較困難,因此,要為復(fù)本制定一個(gè)版本控制方法很困難。但這卻是非常重要的一個(gè)問題,例如某人帳戶的復(fù)本1顯示余額10元,復(fù)本2顯示余額為20元,這時(shí)該分布式系統(tǒng)將很難確定此人的實(shí)際余額,因此,版本控制是分布式系統(tǒng)中一個(gè)亟待解決的問題。 現(xiàn)有分布式系統(tǒng)"Oracle"的"Advanced R印lication"技術(shù)中的版本同步依靠二階段提交協(xié)議。圖1為現(xiàn)有技術(shù)中的二階段提交協(xié)議的流程圖,如圖1所示,在該協(xié)議中,資源管理器的活動(dòng)均由一個(gè)事務(wù)協(xié)調(diào)器的單獨(dú)軟件組件來控制,包括事務(wù)協(xié)調(diào)器通知資源管理器準(zhǔn)備提交事務(wù)(pr印are)、資源管理器回應(yīng)事務(wù)協(xié)調(diào)器(VoteCommit)、事務(wù)協(xié)調(diào)器收集資源管理器的所有響應(yīng)(GlobalCommit)、事務(wù)協(xié)調(diào)器將事務(wù)的結(jié)果通知給資源管理器并接收資源管理器的響應(yīng)(Ack)。如圖1所示,0racle的版本控制方法簡(jiǎn)單,將協(xié)調(diào)者的時(shí)間作為數(shù)據(jù)的版本號(hào),但是一旦協(xié)調(diào)者之間的時(shí)間沒有同步,則系統(tǒng)進(jìn)行數(shù)據(jù)恢復(fù)時(shí),很可能用一個(gè)較早的數(shù)據(jù)覆蓋掉最新的數(shù)據(jù),因此,二階段提交方法解決版本同步問題需要保持時(shí)間同步,這使得系統(tǒng)的可用性下降明顯,并且2階段提交(Two PhaseCommitment,簡(jiǎn)稱2PL)代價(jià)極高。 現(xiàn)有的分布式冗余存儲(chǔ)系統(tǒng)中進(jìn)行版本控制更新時(shí),時(shí)間同步的方法主要有主從式時(shí)間同步化,拜占庭協(xié)議式時(shí)間同步化和收斂函數(shù)式時(shí)間同步化。與本發(fā)明相關(guān)的時(shí)間同步技術(shù)是主從式時(shí)間同步,其中,應(yīng)用最為廣泛的是網(wǎng)絡(luò)時(shí)間協(xié)議((NetworkTimeProtocol,簡(jiǎn)稱NTP)協(xié)議。主從式時(shí)間同步方式中一定有一個(gè)固定的服務(wù)器(Server),該服務(wù)器通過衛(wèi)星同步自身時(shí)間,或者通過互聯(lián)網(wǎng)連接同步更新自身時(shí)間,客戶端(Client)與服務(wù)器進(jìn)行交互,同步自身時(shí)間。 在實(shí)現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題 1.擴(kuò)展性差現(xiàn)有分布式系統(tǒng)的版本控制方法,當(dāng)系統(tǒng)規(guī)模擴(kuò)大到萬級(jí)、十萬級(jí)
      時(shí),對(duì)時(shí)鐘同步的要求比較高,實(shí)現(xiàn)很困難; 2.系統(tǒng)可用性低現(xiàn)有分布式系統(tǒng)中需要所有的復(fù)本都保持最新的狀態(tài),只要一個(gè)復(fù)本所在的節(jié)點(diǎn)出現(xiàn)了問題,數(shù)據(jù)修改等流程就無法進(jìn)行,而在大規(guī)模組網(wǎng)時(shí),節(jié)點(diǎn)故障非常常見,如果要確保數(shù)據(jù)的每一個(gè)鏡像都保持最新的版本,系統(tǒng)的性能下降十分明顯,大大降低了系統(tǒng)的可用性; 3.實(shí)用性差現(xiàn)有分布式系統(tǒng)中,進(jìn)行版本控制更新時(shí),或者通過衛(wèi)星同步自身
      時(shí)間,或者通過互聯(lián)網(wǎng)連接同步更新自身時(shí)間,解決方案都比較復(fù)雜,實(shí)用性不高; 4.成本高、工作量大分布式系統(tǒng)大規(guī)模組網(wǎng)時(shí),時(shí)間同步對(duì)硬件的要求較高,現(xiàn)
      有的時(shí)鐘同步需要手工設(shè)置主、備時(shí)鐘,過多依賴于手動(dòng)配置,在大規(guī)模組網(wǎng)時(shí)工作量非常大。

      發(fā)明內(nèi)容
      本發(fā)明的第一目的是針對(duì)現(xiàn)有技術(shù)中分布式系統(tǒng)的擴(kuò)展性差、實(shí)用性差等缺陷,
      提出一種分布式系統(tǒng)的版本控制方法,以實(shí)現(xiàn)分布式系統(tǒng)的大致時(shí)間同步,提高擴(kuò)展性及實(shí)用性。 本發(fā)明的第二目的是針對(duì)現(xiàn)有技術(shù)中分布式系統(tǒng)的擴(kuò)展性差、實(shí)用性差等缺陷,提出一種分布式版本控制系統(tǒng),以實(shí)現(xiàn)分布式系統(tǒng)的時(shí)間同步,提高分布式系統(tǒng)的擴(kuò)展性和實(shí)用性。 本發(fā)明的第三目的是針對(duì)現(xiàn)有技術(shù)中分布式系統(tǒng)的實(shí)用性差、時(shí)間不同步等缺陷,提出一種分布式系統(tǒng)中的管理節(jié)點(diǎn),以實(shí)現(xiàn)分布式系統(tǒng)的時(shí)間同步,提高分布式系統(tǒng)的擴(kuò)展性和實(shí)用性。 本發(fā)明的第四目的是針對(duì)現(xiàn)有技術(shù)中分布式系統(tǒng)的實(shí)用性差、時(shí)間同步不高等缺陷,提出一種存儲(chǔ)節(jié)點(diǎn),以實(shí)現(xiàn)分布式系統(tǒng)的時(shí)間同步,提高分布式系統(tǒng)的擴(kuò)展性和實(shí)用性。 為實(shí)現(xiàn)上述第一目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種分布式系統(tǒng)的版本控制方法。 根據(jù)本發(fā)明實(shí)施例的分布式系統(tǒng)的版本控制方法,包括在分布式系統(tǒng)的每個(gè)域
      中選取一個(gè)管理節(jié)點(diǎn);在所有管理節(jié)點(diǎn)中選取一個(gè)作為分布式系統(tǒng)的同步源,所有管理節(jié)
      點(diǎn)根據(jù)同步源的時(shí)間進(jìn)行時(shí)間同步;所有管理節(jié)點(diǎn)根據(jù)同步后的時(shí)間控制對(duì)應(yīng)域內(nèi)節(jié)點(diǎn)的
      時(shí)間同步,分布式系統(tǒng)的節(jié)點(diǎn)根據(jù)同步后的時(shí)間對(duì)存儲(chǔ)數(shù)據(jù)的復(fù)本進(jìn)行版本控制。 優(yōu)選地,上述版本控制方法中,還可以包括在該分布式系統(tǒng)中存儲(chǔ)的數(shù)據(jù)中加入
      時(shí)間標(biāo)識(shí)信息、和/或操作版本標(biāo)識(shí)信息,并根據(jù)時(shí)間標(biāo)識(shí)信息、和/或操作版本標(biāo)識(shí)信息
      對(duì)數(shù)據(jù)的多份復(fù)本進(jìn)行版本控制。
      其中,上述時(shí)間標(biāo)識(shí)信息可以包括發(fā)送時(shí)間、接收時(shí)間。 具體地,對(duì)數(shù)據(jù)的多份復(fù)本進(jìn)行版本控制包括對(duì)所述數(shù)據(jù)的N份復(fù)本進(jìn)行修改、讀取或恢復(fù),且滿足W+R > N, N > = 3,其中,W為收到復(fù)本的節(jié)點(diǎn)修改成功的最少響應(yīng)數(shù)量;R為讀取到相同內(nèi)容復(fù)本的最少數(shù)量。 優(yōu)選地,在分布式系統(tǒng)的每個(gè)域中選取一個(gè)管理節(jié)點(diǎn)的操作可以包括在每個(gè)域
      中選取ID號(hào)最小、最大的或在線時(shí)間最長(zhǎng)的節(jié)點(diǎn)作為該域的管理節(jié)點(diǎn)。 為實(shí)現(xiàn)上述第二目的,根據(jù)本發(fā)明的另一個(gè)方面,提供了一種分布式版本控制系統(tǒng)。 根據(jù)本發(fā)明實(shí)施例的分布式版本控制系統(tǒng),包括管理節(jié)點(diǎn),從每個(gè)域內(nèi)的存儲(chǔ)節(jié)點(diǎn)中選取產(chǎn)生,用于與從多個(gè)管理節(jié)點(diǎn)中選取的同步源進(jìn)行時(shí)間同步,并根據(jù)同步后的時(shí)
      6間負(fù)責(zé)對(duì)應(yīng)域內(nèi)各存儲(chǔ)節(jié)點(diǎn)的時(shí)間同步;存儲(chǔ)節(jié)點(diǎn),用于根據(jù)同步后的時(shí)間對(duì)存儲(chǔ)數(shù)據(jù)的復(fù)本進(jìn)行版本控制。 為實(shí)現(xiàn)上述第三目的,根據(jù)本發(fā)明的另一個(gè)方面,提供了一種管理節(jié)點(diǎn)。
      根據(jù)本發(fā)明實(shí)施例的管理節(jié)點(diǎn),從分布式系統(tǒng)的每個(gè)域中選取產(chǎn)生,該管理節(jié)點(diǎn)包括接口模塊,用于與從所有管理節(jié)點(diǎn)中選取的同步源進(jìn)行交互,發(fā)送攜帶請(qǐng)求時(shí)間Tl同步請(qǐng)求消息,從對(duì)應(yīng)的回復(fù)請(qǐng)求消息中,獲得同步源收到所述請(qǐng)求消息的時(shí)間T2,及回復(fù)所述請(qǐng)求消息的時(shí)間T3 ;計(jì)算模塊,用于根據(jù)接收回復(fù)請(qǐng)求消息的接收時(shí)間T4、 Tl、 T2及T3,計(jì)算與同步源時(shí)間系統(tǒng)的相對(duì)差值e ,并根據(jù)相對(duì)差值調(diào)整自身的時(shí)間系統(tǒng)與所述同步源保持同步;處理模塊,用于根據(jù)同步后的時(shí)間對(duì)管理節(jié)點(diǎn)所在域內(nèi)各存儲(chǔ)節(jié)點(diǎn)進(jìn)行時(shí)間同步。 為實(shí)現(xiàn)上述第四目的,根據(jù)本發(fā)明的另一個(gè)方面,提供了一種存儲(chǔ)節(jié)點(diǎn)。 根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)節(jié)點(diǎn),包括時(shí)間同步模塊,用于用于與從分布式系統(tǒng)的
      每個(gè)域中選取產(chǎn)生的管理節(jié)點(diǎn)進(jìn)行時(shí)間同步;存儲(chǔ)模塊,用于保存分布式系統(tǒng)的數(shù)據(jù)及同
      步后的時(shí)間;版本控制模塊,用于根據(jù)同步后的時(shí)間對(duì)存儲(chǔ)數(shù)據(jù)的復(fù)本進(jìn)行版本控制。 本發(fā)明各實(shí)施例的分布式系統(tǒng)的版本控制方法、節(jié)點(diǎn)及系統(tǒng),通過選取若干個(gè)管
      理節(jié)點(diǎn)進(jìn)行時(shí)間同步,然后由管理節(jié)點(diǎn)控制其域內(nèi)各節(jié)點(diǎn)的時(shí)間同步,分級(jí)進(jìn)行同步,同
      步后可以使系統(tǒng)中所有節(jié)點(diǎn)的時(shí)鐘將達(dá)到一個(gè)大致同步的狀態(tài),實(shí)現(xiàn)一定范圍內(nèi)的時(shí)間同
      步。在此基礎(chǔ)上,分布式系統(tǒng)中的各節(jié)點(diǎn)可以根據(jù)同步后的時(shí)間進(jìn)行版本控制等。本發(fā)明各
      實(shí)施例無需時(shí)鐘高度同步,也不需一個(gè)集中的控制節(jié)點(diǎn)來進(jìn)行版本的嚴(yán)格時(shí)間同步,即使
      節(jié)點(diǎn)規(guī)模擴(kuò)大到萬級(jí)、十萬級(jí),使得系統(tǒng)仍然能自動(dòng)進(jìn)行有效的時(shí)間同步、不需手工配置,
      對(duì)外呈現(xiàn)出良好的擴(kuò)展性,自動(dòng)化程度高,適用于大規(guī)模的網(wǎng)絡(luò)。 本發(fā)明各實(shí)施例在時(shí)間同步的基礎(chǔ)上進(jìn)行版本控制,允許系統(tǒng)中存在多個(gè)復(fù)本不一致的情況,可以使系統(tǒng)自動(dòng)分析最新的數(shù)據(jù)并向外提供,大大提高了分布式系統(tǒng)的可用性,可有效解決現(xiàn)有技術(shù)中需要所有復(fù)本保持最新狀態(tài), 一個(gè)節(jié)點(diǎn)出現(xiàn)故障則不可操作,實(shí)用性低等缺陷。 本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變
      得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明
      書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。 下面通過附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。


      附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實(shí)
      施例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中 圖1為現(xiàn)有技術(shù)中的二階段提交協(xié)議的流程圖; 圖2為根據(jù)本發(fā)明實(shí)施例一的分布式系統(tǒng)版本控制方法流程圖; 圖3為圖2中選取管理節(jié)點(diǎn)的示意圖; 圖4(a)為根據(jù)本發(fā)明實(shí)施例二的分布式系統(tǒng)版本控制方法的管理節(jié)點(diǎn)時(shí)間同步示意圖; 圖4(b)為根據(jù)本發(fā)明實(shí)施例二的分布式系統(tǒng)版本控制方法的存儲(chǔ)節(jié)點(diǎn)時(shí)間同步示意圖; 圖5為根據(jù)本發(fā)明實(shí)施例三的分布式系統(tǒng)版本控制方法流程示意圖; 圖6為根據(jù)本發(fā)明的分布式系統(tǒng)版本控制方法應(yīng)用于數(shù)據(jù)修改的實(shí)施例流程示
      意圖; 圖7為根據(jù)本發(fā)明的分布式系統(tǒng)版本控制方法應(yīng)用于數(shù)據(jù)讀取的實(shí)施例流程示 意圖; 圖8為根據(jù)本發(fā)明的分布式系統(tǒng)版本控制方法應(yīng)用于數(shù)據(jù)恢復(fù)的實(shí)施例流程示 意圖; 圖9為根據(jù)本發(fā)明實(shí)施例七的分布式版本控制系統(tǒng)示意圖; 圖10為圖9中管理節(jié)點(diǎn)的實(shí)施例結(jié)構(gòu)示意圖; 圖11為圖9中存儲(chǔ)節(jié)點(diǎn)的實(shí)施例結(jié)構(gòu)示意圖。
      具體實(shí)施例方式
      以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí) 施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。 根據(jù)本發(fā)明實(shí)施例,提供了一種分布式系統(tǒng)版本控制方法及系統(tǒng),下面分別通過 圖2-圖11對(duì)本發(fā)明的版本控制方法、節(jié)點(diǎn)及系統(tǒng)進(jìn)行詳細(xì)說明。
      實(shí)施例一 圖2為根據(jù)本發(fā)明實(shí)施例一的分布式系統(tǒng)版本控制方法流程圖,如圖2所示,本實(shí) 施例包括 步驟S102 :在分布式系統(tǒng)的每個(gè)域中選取一個(gè)管理節(jié)點(diǎn); 步驟S104 :在所有管理節(jié)點(diǎn)中選取一個(gè)作為分布式系統(tǒng)的同步源,所有管理節(jié)點(diǎn) 根據(jù)同步源的時(shí)間進(jìn)行時(shí)間同步; 步驟S106 :所有管理節(jié)點(diǎn)根據(jù)同步后的時(shí)間控制對(duì)應(yīng)域內(nèi)節(jié)點(diǎn)的時(shí)間同步;
      步驟S108 :分布式系統(tǒng)的節(jié)點(diǎn)根據(jù)同步后的時(shí)間對(duì)存儲(chǔ)數(shù)據(jù)的復(fù)本進(jìn)行版本控 制。 本實(shí)施例中,通過在分布式系統(tǒng)的每個(gè)域中選取一個(gè)管理節(jié)點(diǎn),由所有管理節(jié)點(diǎn)
      選取一個(gè)同步源后進(jìn)行時(shí)間同步,然后由管理節(jié)點(diǎn)控制其域內(nèi)各節(jié)點(diǎn)的時(shí)間同步,本實(shí)施
      例采用分級(jí)進(jìn)行同步,同步后可以使系統(tǒng)中所有節(jié)點(diǎn)的時(shí)鐘達(dá)到一個(gè)大致同步的狀態(tài),實(shí)
      現(xiàn)一定范圍內(nèi)的時(shí)間同步。本實(shí)施例通過選取管理節(jié)點(diǎn)來保持分布式系統(tǒng)大致時(shí)間同步的
      方式,即使節(jié)點(diǎn)規(guī)模擴(kuò)大到萬級(jí)、十萬級(jí),系統(tǒng)仍然能自動(dòng)進(jìn)行有效的時(shí)間同步、不需手工
      配置,可以對(duì)外呈現(xiàn)出良好的擴(kuò)展性,自動(dòng)化程度高,適用于大規(guī)模的網(wǎng)絡(luò)。 圖3為圖2中選取管理節(jié)點(diǎn)的示意圖,如圖3所示,系統(tǒng)包括節(jié)點(diǎn)A、 B、 C. . . U、 V,
      整個(gè)系統(tǒng)可以分為4個(gè)域,從每個(gè)域中選取一個(gè)管理節(jié)點(diǎn),圖3中管理節(jié)點(diǎn)為節(jié)點(diǎn)C、 H、 M、
      T。管理節(jié)點(diǎn)硬件上和域內(nèi)的其它存儲(chǔ)節(jié)點(diǎn)沒有區(qū)別,只是在時(shí)間同步時(shí)負(fù)責(zé)同步管理域內(nèi)
      的存儲(chǔ)節(jié)點(diǎn)的時(shí)間,存儲(chǔ)節(jié)點(diǎn)是實(shí)際負(fù)責(zé)存儲(chǔ)數(shù)據(jù)的節(jié)點(diǎn)。 每個(gè)域中選取一個(gè)管理節(jié)點(diǎn)可以采用多種方式,如每個(gè)域的所有節(jié)點(diǎn)中選取ID 號(hào)最小、或在線時(shí)間最長(zhǎng)的節(jié)點(diǎn)作為該域的管理節(jié)點(diǎn)。還可以采用域中的其中一個(gè)節(jié)點(diǎn)向 其余節(jié)點(diǎn)通告其作為管理節(jié)點(diǎn)的請(qǐng)求消息,在其余節(jié)點(diǎn)均接受時(shí),將該節(jié)點(diǎn)作為該域的管
      8理節(jié)點(diǎn)。選取管理節(jié)點(diǎn)的方式有很多,本發(fā)明不限于上述兩種選取方式。
      在選取完管理節(jié)點(diǎn)后,步驟S104可以在所有的管理節(jié)點(diǎn)中選取一個(gè)管理節(jié)點(diǎn)作 為同步源,同樣地,選取同步源也可以采用與選取管理節(jié)點(diǎn)相類似的方式。下面以在所有管 理節(jié)點(diǎn)中選取在線時(shí)間最長(zhǎng)的管理節(jié)點(diǎn)作為同步源為例進(jìn)行說明 1)管理節(jié)點(diǎn)可以按照預(yù)先定義好的順序發(fā)起查詢請(qǐng)求,例如在以省為一個(gè)域且每 個(gè)域中含有一個(gè)管理節(jié)點(diǎn)的全國(guó)性系統(tǒng)中,按照統(tǒng)一的拼音字頭順序?qū)⑺泄芾砉?jié)點(diǎn)依次 排列,選舉由排名第一,即拼音最靠前的節(jié)點(diǎn)發(fā)起在線時(shí)間查詢請(qǐng)求,本實(shí)施例以安徽省對(duì) 應(yīng)域的管理節(jié)點(diǎn)發(fā)起查詢請(qǐng)求,且在該查詢請(qǐng)求中加入自己的在線時(shí)間及ID信息為例;
      2)每個(gè)收到該消息的管理節(jié)點(diǎn)比較消息中的在線時(shí)間與自己在線時(shí)間,如果消息 中的在線時(shí)間大于自己的在線時(shí)間,則將該消息中的ID以及在線時(shí)間信息向后一管理節(jié) 點(diǎn)傳遞,否則傳遞自身的ID以及在線時(shí)間; 3)當(dāng)發(fā)起查詢請(qǐng)求的管理節(jié)點(diǎn),如安徽省的管理節(jié)點(diǎn)收到返回的消息時(shí),獲知 消息中的ID及在線時(shí)間信息,將消息中的ID對(duì)應(yīng)的管理節(jié)點(diǎn)作為系統(tǒng)的標(biāo)準(zhǔn)時(shí)間同步源, 并且向所有的管理節(jié)點(diǎn)通知選舉結(jié)果,即將ID號(hào)發(fā)送給其余的管理節(jié)點(diǎn)。
      在選取同步源之后,即可根據(jù)同步源的時(shí)間系統(tǒng)對(duì)所有管理節(jié)點(diǎn)進(jìn)行時(shí)間同步。
      實(shí)施例二 圖4(a)為根據(jù)本發(fā)明實(shí)施例二的分布式系統(tǒng)版本控制方法的管理節(jié)點(diǎn)時(shí)間同步 示意圖,圖4(b)為根據(jù)本發(fā)明實(shí)施例二的分布式系統(tǒng)版本控制方法的存儲(chǔ)節(jié)點(diǎn)時(shí)間同步 示意圖。由于管理節(jié)點(diǎn)與同步源進(jìn)行時(shí)間同步和管理節(jié)點(diǎn)與域內(nèi)的存儲(chǔ)節(jié)點(diǎn)可以采用相同 的時(shí)間同步方式。 如圖4(a)所示,本實(shí)施例中管理節(jié)點(diǎn)與選取的同步源進(jìn)行時(shí)間同步包括 1)需要同步時(shí)間的管理節(jié)點(diǎn)向同步源發(fā)起同步請(qǐng)求消息,其中帶有發(fā)送請(qǐng)求時(shí)間
      T1,T1為管理節(jié)點(diǎn)以自身時(shí)間系統(tǒng)為參照發(fā)送同步請(qǐng)求的時(shí)間; 2)同步源收到此請(qǐng)求時(shí)回復(fù)一條消息,其中帶有收到此消息的時(shí)間T2及回復(fù)此 消息的時(shí)間T3,T2為同步源以自身時(shí)間系統(tǒng)為參照收到同步請(qǐng)求的時(shí)間,T3為同步源以自 身時(shí)間系統(tǒng)為參照回復(fù)該消息的時(shí)間; 3)管理節(jié)點(diǎn)收到消息后,記錄收到該消息的時(shí)間(以自身時(shí)間系統(tǒng)為參照)T4 ; 4)管理節(jié)點(diǎn)根據(jù)接收T4、T1、T2及T3,計(jì)算與同步源時(shí)間系統(tǒng)的相對(duì)差值e 。 假設(shè)下列參數(shù)的含義如下 9 :同步源與管理節(jié)點(diǎn)時(shí)間系統(tǒng)的相對(duì)差值 S 1 :請(qǐng)求消息在網(wǎng)上傳播所消耗的時(shí)間 S 2 :回復(fù)消息在網(wǎng)上傳播所消耗的時(shí)間,假設(shè)S 1 = S 2 則有方程如下1)T4 = T3-e+0 2 2)T2 = Tl+e+。l 3) S 1 = S 2
      「,卞曰n (T2-T1)-(T4-T3)" ^ (72 - 71) + (J4 _ 73)可得6> = -^-^1 = 52 = ^--^
      2 2 在獲得相對(duì)差值e之后,管理節(jié)點(diǎn)將自身的時(shí)間加上該差值e ,即可獲得與同步 源保持時(shí)間同步的時(shí)間系統(tǒng)。在通過上述方法進(jìn)行時(shí)間同步時(shí),還可以同時(shí)獲得網(wǎng)絡(luò)傳播
      的消耗時(shí)間si= S2,以作他用,如管理人員根據(jù)此時(shí)延能夠判斷網(wǎng)絡(luò)是否擁堵;或者節(jié)
      點(diǎn)根據(jù)此時(shí)延設(shè)定自身傳輸超時(shí)計(jì)時(shí)器等。
      圖4(b)為根據(jù)本發(fā)明實(shí)施例二的分布式系統(tǒng)版本控制方法的存儲(chǔ)節(jié)點(diǎn)時(shí)間同步 示意圖。在管理節(jié)點(diǎn)與同步源進(jìn)行時(shí)間同步后,管理節(jié)點(diǎn)即可作為對(duì)應(yīng)域內(nèi)的時(shí)間同步源, 對(duì)域內(nèi)的各存儲(chǔ)節(jié)點(diǎn)進(jìn)行時(shí)間同步。如圖4(b)所示,本實(shí)施例中管理節(jié)點(diǎn)與選取的同步源 進(jìn)行時(shí)間同步包括 1)域內(nèi)的各存儲(chǔ)節(jié)點(diǎn)向管理節(jié)點(diǎn)發(fā)起同步請(qǐng)求消息,其中帶有發(fā)送請(qǐng)求時(shí)間 Tl';
      T3';
      2) 管理節(jié)點(diǎn)回復(fù)此消息,其中帶有收到此消息的時(shí)間T2'及回復(fù)此消息的時(shí)間
      3) 域內(nèi)節(jié)點(diǎn)收到消息后,記錄收到該消息的時(shí)間T4';
      4) 節(jié)點(diǎn)根據(jù)接收T4'、T1'、T2'及T3',計(jì)算與管理節(jié)點(diǎn)時(shí)間系統(tǒng)的相對(duì)差值e '。 與上述計(jì)算過程類似,可得<formula>formula see original document page 10</formula>在獲得相對(duì)差值e '之后,存儲(chǔ)節(jié)點(diǎn)將自身的時(shí)間加上該差 值e ',即可獲得與管理節(jié)點(diǎn)保持時(shí)間同步的時(shí)間系統(tǒng)。 管理節(jié)點(diǎn)硬件上和域內(nèi)的其它存儲(chǔ)節(jié)點(diǎn)沒有區(qū)別,只是在時(shí)間同步時(shí)負(fù)責(zé)同步管 理域內(nèi)的存儲(chǔ)節(jié)點(diǎn)的時(shí)間,管理節(jié)點(diǎn)進(jìn)行時(shí)間同步后,即可作為分布式系統(tǒng)的普通節(jié)點(diǎn),參 與后續(xù)的版本控制過程。 上述方法實(shí)施例通過選舉管理節(jié)點(diǎn),進(jìn)行時(shí)間同步,通過對(duì)全網(wǎng)節(jié)點(diǎn)進(jìn)行一定范
      圍內(nèi)的時(shí)鐘同步,可以在類似歸屬用戶服務(wù)器(Home SubscriberServer,簡(jiǎn)稱HSS)這種應(yīng) 用場(chǎng)景的大規(guī)模數(shù)據(jù)存儲(chǔ)系統(tǒng)中保證數(shù)據(jù)的一致性,即便節(jié)點(diǎn)規(guī)模擴(kuò)大到萬級(jí),十萬級(jí)依 然能夠進(jìn)行有效的同步控制,同時(shí)本發(fā)明各實(shí)施例的時(shí)間同步簡(jiǎn)單易實(shí)現(xiàn),且自動(dòng)化程度高。 實(shí)施例三 圖5為根據(jù)本發(fā)明實(shí)施例三的分布式系統(tǒng)版本控制方法流程示意圖。如圖5所示, 本實(shí)施例包括 步驟S202 :在分布式系統(tǒng)的每個(gè)域中選取一個(gè)管理節(jié)點(diǎn); 步驟S204 :在所有管理節(jié)點(diǎn)中選取一個(gè)作為分布式系統(tǒng)的同步源,所有管理節(jié)點(diǎn) 根據(jù)同步源的時(shí)間進(jìn)行時(shí)間同步; 步驟S206 :管理節(jié)點(diǎn)根據(jù)同步后的時(shí)間控制對(duì)應(yīng)域內(nèi)節(jié)點(diǎn)的時(shí)間同步; 步驟S208 :在系統(tǒng)中存儲(chǔ)的數(shù)據(jù)中加入時(shí)間標(biāo)識(shí)信息、和/或操作版本標(biāo)識(shí)信息,
      根據(jù)上述信息對(duì)數(shù)據(jù)的多份復(fù)本進(jìn)行版本控制,如讀取、修改及恢復(fù)等。 在分布式系統(tǒng)中的各節(jié)點(diǎn)時(shí)間同步后,根據(jù)同步后各節(jié)點(diǎn)的時(shí)間,在存儲(chǔ)的數(shù)據(jù) 中加入時(shí)間標(biāo)識(shí)信息,或加入操作版本標(biāo)識(shí)信息,或者兩種信息均加入,以實(shí)現(xiàn)對(duì)數(shù)據(jù)多份 復(fù)本的版本控制,如在讀取、恢復(fù)或修改時(shí)可以對(duì)時(shí)間標(biāo)識(shí)最新的數(shù)據(jù)進(jìn)行操作。
      本實(shí)施例中數(shù)據(jù)的時(shí)間標(biāo)識(shí)信息可以包括發(fā)送時(shí)間、接收時(shí)間等,其中,發(fā)送時(shí)間 為發(fā)送者以自身時(shí)間為參照將該數(shù)據(jù)發(fā)送到多份復(fù)本所在節(jié)點(diǎn)時(shí)的時(shí)間;接收時(shí)間為復(fù)本 所在節(jié)點(diǎn)接收該數(shù)據(jù)時(shí)以自身時(shí)間系統(tǒng)為參照的時(shí)間。根據(jù)上述接收時(shí)間和發(fā)送時(shí)間的差 值,還可以計(jì)算獲得數(shù)據(jù)在復(fù)本所在節(jié)點(diǎn)的相對(duì)保存時(shí)間。
      上述實(shí)施例加入了時(shí)間標(biāo)識(shí)信息和/或版本操作標(biāo)識(shí)信息之后,可以采用多種方
      式對(duì)數(shù)據(jù)的多份復(fù)本進(jìn)行版本控制 1.將發(fā)送時(shí)間最遲的數(shù)據(jù)為最新的數(shù)據(jù)。 如同一數(shù)據(jù),第1份復(fù)本中數(shù)據(jù)的發(fā)送時(shí)間為5分鐘前,其他2份復(fù)本中數(shù)據(jù)的 發(fā)送時(shí)間為2分鐘前,則該2份復(fù)本的數(shù)據(jù)可以認(rèn)為是最新的數(shù)據(jù),可以對(duì)其進(jìn)行讀取、修 改、恢復(fù)等操作。 這種方式適用于全網(wǎng)所有節(jié)點(diǎn)的時(shí)鐘同步的情況下,因?yàn)樾枰?jié)點(diǎn)以自身的時(shí)間
      系統(tǒng)為參照加入數(shù)據(jù)的發(fā)送時(shí)間,需要保證時(shí)間同步。 2.將相對(duì)保存保存時(shí)間最短的數(shù)據(jù)作為最新的數(shù)據(jù) 如同一數(shù)據(jù),第1份復(fù)本中數(shù)據(jù)的相對(duì)保存時(shí)間為5分鐘,其他2份復(fù)本中數(shù)據(jù) 的相對(duì)保存時(shí)間為2分鐘,則該2份復(fù)本的數(shù)據(jù)可以認(rèn)為是最新的數(shù)據(jù),可以對(duì)其進(jìn)行讀 取、修改、恢復(fù)等操作。 如果發(fā)送數(shù)據(jù)者加入的數(shù)據(jù)發(fā)送時(shí)間即使是一致的,但考慮到網(wǎng)絡(luò)中的延遲,到 達(dá)多份復(fù)本所在節(jié)點(diǎn)時(shí)各節(jié)點(diǎn)的接收時(shí)間可能是不一致的,因此,計(jì)算出的相對(duì)保存時(shí)間 可能也不一樣,因此,這種方式適用于延時(shí)不重要的情況。
      3.將操作版本標(biāo)識(shí)信息最高的數(shù)據(jù)作為最新的數(shù)據(jù) 操作版本標(biāo)識(shí)信息可以為數(shù)據(jù)的版本號(hào),版本號(hào)最高的即為最新的數(shù)據(jù),在具體 實(shí)現(xiàn)時(shí),可以在對(duì)數(shù)據(jù)進(jìn)行修改時(shí),將該數(shù)據(jù)的修改次數(shù)進(jìn)行更新,如果哪份數(shù)據(jù)的修改次 數(shù)最多,則也可以將其作為最新的數(shù)據(jù)。 4.將時(shí)間標(biāo)識(shí)信息和操作版本標(biāo)識(shí)信息綜合考慮作為最新的數(shù)據(jù) 在數(shù)據(jù)的多份復(fù)本的發(fā)送時(shí)間、相對(duì)保存時(shí)間、或者操作版本標(biāo)識(shí)信息相同的情
      況下,可以結(jié)合上述3種情況,綜合考慮,獲得最新的數(shù)據(jù)進(jìn)行版本控制。 本實(shí)施例通過選舉管理節(jié)點(diǎn),進(jìn)行時(shí)間同步,并在此基礎(chǔ)上對(duì)數(shù)據(jù)加入時(shí)間標(biāo)識(shí)
      信息、操作版本標(biāo)識(shí)信息,后續(xù)可以結(jié)合數(shù)據(jù)內(nèi)容來進(jìn)行版本控制,進(jìn)而實(shí)現(xiàn)存儲(chǔ)系統(tǒng)的數(shù)
      據(jù)存儲(chǔ)、修改、讀取和恢復(fù)等,從而可以有效地進(jìn)行版本控制,實(shí)用性高。 本發(fā)明在分布式系統(tǒng)的所有節(jié)點(diǎn)時(shí)間同步后,可以結(jié)合時(shí)間標(biāo)識(shí)信息、操作版本
      信息進(jìn)行版本控制。下面對(duì)本發(fā)明的版本控制方法進(jìn)行舉例說明 本發(fā)明在時(shí)間同步后進(jìn)行版本控制,適用于分布式系統(tǒng)中每份數(shù)據(jù)存儲(chǔ)N份復(fù)本 的情況(N>= 3),設(shè)系統(tǒng)中每份數(shù)據(jù)存在N份復(fù)本,W為收到W份以上復(fù)本所在節(jié)點(diǎn)的修 改成功的響應(yīng),即W為收到復(fù)本的節(jié)點(diǎn)修改成功的最少響應(yīng)數(shù)量,R為讀取到相同內(nèi)容復(fù)本 的最少數(shù)量,即讀取的R份以上復(fù)本內(nèi)容相同,當(dāng)滿足W+R > N時(shí),稱滿足這種條件的配置 為合法配置。在分布式系統(tǒng)中,由于每份數(shù)據(jù)存儲(chǔ)的復(fù)本數(shù)N是預(yù)先定義的,因此,可以在 系統(tǒng)中預(yù)先配置W、 R與N的關(guān)系,在讀取、修改時(shí)根據(jù)改合法配置進(jìn)行版本控制。
      舉例說明如下N = 3,W = 2,R = 2,表示系統(tǒng)中每份數(shù)據(jù)存在3份復(fù)本,W二 2表 示至少修改2份復(fù)本才算寫入修改成功,R = 2表示至少讀取2份才算讀取成功,此配置一 個(gè)合法配置,因?yàn)閃+R > N。同理,當(dāng)N 二4時(shí),W二3,R二2或者W = 1, R = 4都是一個(gè)
      合法配置。 實(shí)施例四 圖6為根據(jù)本發(fā)明的分布式系統(tǒng)版本控制方法應(yīng)用于數(shù)據(jù)修改的實(shí)施例流程示意圖。如圖6所示,本實(shí)施例包括 步驟S302 :分布式系統(tǒng)中某前端節(jié)點(diǎn)接收到某數(shù)據(jù)的修改請(qǐng)求,其中前端節(jié)點(diǎn)為 系統(tǒng)內(nèi)第一個(gè)接收到系統(tǒng)外數(shù)據(jù)修改請(qǐng)求的普通存儲(chǔ)節(jié)點(diǎn),每個(gè)存儲(chǔ)節(jié)點(diǎn)均可以作為一個(gè) 前端節(jié)點(diǎn),分布式系統(tǒng)如圖3所示,可以對(duì)外呈環(huán)鏈狀,當(dāng)外部系統(tǒng)向系統(tǒng)發(fā)送修改請(qǐng)求 時(shí),第一個(gè)接收的節(jié)點(diǎn)作為前端節(jié)點(diǎn),前端節(jié)點(diǎn)接收到該修改請(qǐng)求后,查詢獲得該數(shù)據(jù)的N 份復(fù)本所在節(jié)點(diǎn); 步驟S304 :在修改請(qǐng)求中加入發(fā)送時(shí)間并向數(shù)據(jù)的N份復(fù)本所在節(jié)點(diǎn)轉(zhuǎn)發(fā)該修改
      請(qǐng)求,其中,發(fā)送時(shí)間為前端節(jié)點(diǎn)根據(jù)自身時(shí)鐘發(fā)送修改請(qǐng)求時(shí)對(duì)應(yīng)的時(shí)間; 步驟S306 :前端節(jié)點(diǎn)判斷是否收到W份成功響應(yīng),是則執(zhí)行步驟S308,否則執(zhí)行步
      驟S310 ; 步驟S308 :對(duì)數(shù)據(jù)的發(fā)送時(shí)間及操作版本標(biāo)識(shí)信息進(jìn)行更新,結(jié)束; 步驟S310 :前端節(jié)點(diǎn)返回?cái)?shù)據(jù)修改失敗,通知復(fù)本所在節(jié)點(diǎn)恢復(fù)修改請(qǐng)求失敗之
      前的數(shù)據(jù)。 下面以N = 3, W = 2, R = 2為例,對(duì)圖6版本控制方法應(yīng)用于數(shù)據(jù)修改的流程進(jìn) 行說明 A、前端節(jié)點(diǎn)在數(shù)據(jù)修改請(qǐng)求中寫入發(fā)送時(shí)的時(shí)間,以自己的時(shí)鐘為準(zhǔn),并把此消 息發(fā)送給3個(gè)復(fù)本所在節(jié)點(diǎn); B、前端節(jié)點(diǎn)如果收到兩個(gè)或兩個(gè)以上節(jié)點(diǎn)的響應(yīng)且返回修改成功,則前端節(jié)點(diǎn)對(duì) 外返回修改成功; C、如果兩個(gè)或兩個(gè)以上復(fù)本所在節(jié)點(diǎn)都離線或返回修改失敗,則前端節(jié)點(diǎn)由于收 到少于2份成功接受的修改請(qǐng)求,對(duì)外返回修改失敗,通知節(jié)點(diǎn)回滾已寫入的數(shù)據(jù);
      D、成功接受修改請(qǐng)求的節(jié)點(diǎn),將數(shù)據(jù)的發(fā)送時(shí)間,到達(dá)時(shí)間,和數(shù)據(jù)內(nèi)容一起寫入 數(shù)據(jù)庫(kù),并將該數(shù)據(jù)的版本操作標(biāo)識(shí)信息進(jìn)行修改,本實(shí)施例以修改次數(shù)為例,每成功修改 一次數(shù)據(jù),對(duì)該數(shù)據(jù)的修改次數(shù)加一,并保存最新的修改次數(shù)。 本實(shí)施例在通過選舉管理節(jié)點(diǎn),進(jìn)行時(shí)間同步后,結(jié)合了時(shí)間標(biāo)識(shí)來進(jìn)行版本控 制,進(jìn)而實(shí)現(xiàn)存儲(chǔ)系統(tǒng)的數(shù)據(jù)存儲(chǔ)和修改,可以有效地進(jìn)行版本控制,實(shí)用性高。本實(shí)施 例應(yīng)用于數(shù)據(jù)修改時(shí)的版本控制方法,以時(shí)間標(biāo)識(shí)信息和操作版本標(biāo)識(shí)信息結(jié)合來生成數(shù) 據(jù),進(jìn)行版本控制,可以以較低的代價(jià)在大規(guī)模網(wǎng)絡(luò)中進(jìn)行有效的版本控制。
      實(shí)施例五 圖7為根據(jù)本發(fā)明的分布式系統(tǒng)版本控制方法應(yīng)用于數(shù)據(jù)讀取的實(shí)施例流程示 意圖。如圖7所示,本實(shí)施例包括 步驟S402 :前端節(jié)點(diǎn)接收數(shù)據(jù)讀取請(qǐng)求,向該數(shù)據(jù)的N份復(fù)本所在節(jié)點(diǎn)轉(zhuǎn)發(fā)該讀 取請(qǐng)求; 步驟S404 :復(fù)本所在節(jié)點(diǎn)取出數(shù)據(jù)的時(shí)間標(biāo)識(shí)信息,獲得相對(duì)修改時(shí)間,返回前 端節(jié)點(diǎn); 步驟S406 :前端節(jié)點(diǎn)判斷是否有R份以上復(fù)本所在節(jié)點(diǎn)返回的數(shù)據(jù)相同,是則返 回該數(shù)據(jù)的查詢結(jié)果,結(jié)束; 步驟S408 :前端節(jié)點(diǎn)返回查找失敗結(jié)果。 下面仍以N = 3, W = 2, R = 2為例,對(duì)圖7版本控制方法應(yīng)用于數(shù)據(jù)讀取的流程進(jìn)行說明 A、前端節(jié)點(diǎn)接收數(shù)據(jù)讀取請(qǐng)求,并把此消息發(fā)送給3個(gè)復(fù)本所在節(jié)點(diǎn); B、復(fù)本所在節(jié)點(diǎn)取出數(shù)據(jù)的發(fā)送時(shí)間、到達(dá)時(shí)間,當(dāng)前時(shí)間減去到達(dá)時(shí)間得出的
      相對(duì)保存時(shí)間,及數(shù)據(jù)修改次數(shù),返回前端節(jié)點(diǎn); C、如果兩個(gè)或兩個(gè)以上節(jié)點(diǎn)無響應(yīng)或返回讀取失敗,前端節(jié)點(diǎn)返回查找失??;
      D、如果兩個(gè)或兩個(gè)以上節(jié)點(diǎn)有響應(yīng),系統(tǒng)比較三份數(shù)據(jù)的內(nèi)容,如果三份數(shù)據(jù)內(nèi) 容有兩份或三份的內(nèi)容相同,則返回此內(nèi)容,如果三份數(shù)據(jù)內(nèi)容各不相同,則說明系統(tǒng)中出 現(xiàn)了數(shù)據(jù)不一致的情況,因此將返回查找失敗。 判斷數(shù)據(jù)是否相同可參見實(shí)施例三中采用多種方式對(duì)數(shù)據(jù)的多份復(fù)本進(jìn)行版本 控制的4種方式根據(jù)發(fā)送時(shí)間、根據(jù)數(shù)據(jù)修改次數(shù)、根據(jù)相對(duì)保存時(shí)間、或其結(jié)合判斷返 回的數(shù)據(jù)是否相同。 本實(shí)施例在通過選舉管理節(jié)點(diǎn),進(jìn)行時(shí)間同步后,結(jié)合了時(shí)間標(biāo)識(shí)和操作版本標(biāo)
      識(shí)信息來進(jìn)行版本控制,進(jìn)而實(shí)現(xiàn)存儲(chǔ)系統(tǒng)的數(shù)據(jù)讀取,可以有效地進(jìn)行版本控制,實(shí)用性
      高。本實(shí)施例加入了版本操作標(biāo)識(shí)信息,在版本控制時(shí)可以根據(jù)時(shí)間、數(shù)據(jù)修改次數(shù)和數(shù)據(jù)
      內(nèi)容是否一致,來判斷數(shù)據(jù)是否相同即數(shù)據(jù)是否同步。本實(shí)施例解決了精確時(shí)間同步困難
      的問題,做到了一定范圍內(nèi)的時(shí)間同步,本實(shí)施例允許系統(tǒng)中多個(gè)復(fù)本存在不一致的情況,
      然后系統(tǒng)從中選擇一份最新的數(shù)據(jù)提供給用戶,使得系統(tǒng)可以容錯(cuò),大大提高了系統(tǒng)的可
      用性和擴(kuò)展性。 實(shí)施例六 圖8為根據(jù)本發(fā)明的分布式系統(tǒng)版本控制方法應(yīng)用于數(shù)據(jù)恢復(fù)的實(shí)施例流程示 意圖。如圖8所示,本實(shí)施例包括 步驟S502 :故障恢復(fù)節(jié)點(diǎn)向所述數(shù)據(jù)的其它N-l份復(fù)本所在節(jié)點(diǎn)發(fā)送同步請(qǐng)求;
      步驟S503 :復(fù)本所在節(jié)點(diǎn)取出數(shù)據(jù)的時(shí)間標(biāo)識(shí)信息,操作版本標(biāo)識(shí)信息等,返回 前端節(jié)點(diǎn); 步驟S504 :判斷是否讀取R份數(shù)據(jù)成功,是則執(zhí)行步驟S505,否則執(zhí)行步驟S506 ;
      步驟S505 :返回讀取失敗,數(shù)據(jù)恢復(fù)失敗,結(jié)束; 步驟S506 :判斷版本是否一致,是則執(zhí)行步驟S510,否則執(zhí)行步驟S508 ; 步驟S508 :返回修改次數(shù)最多的數(shù)據(jù),故障恢復(fù)節(jié)點(diǎn)采用此數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù),
      數(shù)據(jù)恢復(fù)結(jié)束; 步驟S510 :判斷返回的數(shù)據(jù)是否發(fā)送時(shí)間一致,是執(zhí)行步驟S514,否則執(zhí)行步驟 S516 ; 步驟S512 :返回發(fā)送時(shí)間較晚的數(shù)據(jù)最為最新的數(shù)據(jù),故障恢復(fù)節(jié)點(diǎn)采用此數(shù)據(jù) 進(jìn)行數(shù)據(jù)恢復(fù),數(shù)據(jù)恢復(fù)結(jié)束; 步驟S514:判斷相對(duì)保存時(shí)間是否一致,是則執(zhí)行步驟S518,否則執(zhí)行步驟 S516 ; 步驟S516 :返回相對(duì)保存時(shí)間較晚的數(shù)據(jù),故障恢復(fù)節(jié)點(diǎn)采用此數(shù)據(jù)進(jìn)行數(shù)據(jù)恢 復(fù),數(shù)據(jù)恢復(fù)結(jié)束; 步驟S518 :返回任意一份數(shù)據(jù),故障恢復(fù)節(jié)點(diǎn)采用此數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù),數(shù)據(jù)恢 復(fù)結(jié)束。
      13
      下面仍以N = 3, W = 2, R = 2為例,對(duì)圖8版本控制方法應(yīng)用于數(shù)據(jù)恢復(fù)的流程 進(jìn)行說明 A、當(dāng)節(jié)點(diǎn)E從故障中恢復(fù)后,將同步其上存儲(chǔ)的所有數(shù)據(jù),對(duì)于節(jié)點(diǎn)E上存儲(chǔ)的某 條數(shù)據(jù)來說,在其他兩個(gè)節(jié)點(diǎn)E1、E2上都有復(fù)本; B、節(jié)點(diǎn)E向節(jié)點(diǎn)E1、E2發(fā)出同步請(qǐng)求,只有E1、E2都回應(yīng)才進(jìn)行數(shù)據(jù)恢復(fù)同步;
      C、節(jié)點(diǎn)E收到回應(yīng)時(shí),將比兩份復(fù)本的修改次數(shù),當(dāng)修改次數(shù)一樣時(shí)將比較數(shù)據(jù) 發(fā)送時(shí)間,當(dāng)數(shù)據(jù)發(fā)送時(shí)間一樣時(shí),將比較相對(duì)數(shù)據(jù)保存時(shí)間,從中取得一份較新的數(shù)據(jù)源 進(jìn)行數(shù)據(jù)同步; D、節(jié)點(diǎn)E直到完成了數(shù)據(jù)恢復(fù)才能向外提供服務(wù)。 同實(shí)施例四類似,本實(shí)施例進(jìn)行時(shí)間同步后,結(jié)合了時(shí)間標(biāo)識(shí)和操作版本標(biāo)識(shí)信 息來進(jìn)行數(shù)據(jù)恢復(fù)控制,可以有效地進(jìn)行版本恢復(fù)控制,實(shí)用性高。本實(shí)施例解決了精確時(shí) 間同步困難的問題,做到了一定范圍內(nèi)的時(shí)間同步,且允許系統(tǒng)中多個(gè)復(fù)本存在不一致的 情況,然后系統(tǒng)從中選擇一份最新的數(shù)據(jù)提供給用戶,使得系統(tǒng)可以容錯(cuò),大大提高了系統(tǒng) 的可用性和擴(kuò)展性。 上述一個(gè)或多個(gè)方法實(shí)施例具有以下有益效果 1.現(xiàn)有分布式系統(tǒng)的版本控制方法往往依賴于全網(wǎng)時(shí)鐘精確同步,然而,在大規(guī) 模網(wǎng)絡(luò)中,這是非常困難的。本發(fā)明上述各實(shí)施例提出的版本控制方法,以時(shí)間標(biāo)識(shí)和操作 版本標(biāo)識(shí)信息來生成數(shù)據(jù),同時(shí)還結(jié)合了比較數(shù)據(jù)內(nèi)容來協(xié)助進(jìn)行版本控制,可以以較低 的代價(jià)在大規(guī)模網(wǎng)絡(luò)中進(jìn)行有效的版本控制。 2.現(xiàn)有的時(shí)鐘同步方案依賴于手動(dòng)配置,在大規(guī)模組網(wǎng)時(shí)將會(huì)是非常大的工作 量,上述各實(shí)施例提出的時(shí)間同步方法自動(dòng)化的選舉同步源,自動(dòng)化的進(jìn)行時(shí)鐘同步操作, 自動(dòng)化程度高。 3.現(xiàn)有方案實(shí)現(xiàn)大規(guī)模的系統(tǒng)是非常困難的,然而上述各實(shí)施例可以用于10萬 級(jí)別的大規(guī)模分布式冗余存儲(chǔ)系統(tǒng),使得系統(tǒng)具有良好的擴(kuò)展性。 4.現(xiàn)有方案需要使得所有的復(fù)本都保持最新的狀態(tài),一旦由一個(gè)節(jié)點(diǎn)出現(xiàn)故障,
      則操作無法成功完成,降低了系統(tǒng)可用性,上述各實(shí)施例可以允許系統(tǒng)中多個(gè)復(fù)本存在不
      一致的情況,然后系統(tǒng)將從中選擇一份最新的復(fù)本提供給用戶使得系統(tǒng)可以容錯(cuò),提高了
      系統(tǒng)可用性。 實(shí)施例七 圖9為根據(jù)本發(fā)明實(shí)施例七的分布式版本控制系統(tǒng)示意圖。如圖9所示,本實(shí)施 例包括節(jié)點(diǎn)A、B、 C. . . U、 V,其中節(jié)點(diǎn)C、 H、M、 T為管理節(jié)點(diǎn),其余節(jié)點(diǎn)為存儲(chǔ)節(jié)點(diǎn)。其中:
      管理節(jié)點(diǎn),從每個(gè)域內(nèi)的存儲(chǔ)節(jié)點(diǎn)中選取產(chǎn)生,用于與從多個(gè)管理節(jié)點(diǎn)中選取的 同步源進(jìn)行時(shí)間同步,并根據(jù)同步后的時(shí)間負(fù)責(zé)對(duì)應(yīng)域內(nèi)各存儲(chǔ)節(jié)點(diǎn)的時(shí)間同步,具體可 參見方法實(shí)施例一、二和實(shí)施例三中的時(shí)間同步的相關(guān)說明,實(shí)現(xiàn)與選取的同步源的時(shí)間 同步,并負(fù)責(zé)本域內(nèi)存儲(chǔ)節(jié)點(diǎn)的時(shí)間同步; 存儲(chǔ)節(jié)點(diǎn),用于與對(duì)應(yīng)域內(nèi)的管理節(jié)點(diǎn)進(jìn)行時(shí)間同步,并根據(jù)同步后的時(shí)間對(duì)存 儲(chǔ)數(shù)據(jù)的復(fù)本進(jìn)行版本控制。存儲(chǔ)節(jié)點(diǎn)與管理節(jié)點(diǎn)的時(shí)間同步可參照?qǐng)D4(b)的相關(guān)說明, 在管理節(jié)點(diǎn)進(jìn)行系統(tǒng)時(shí)間同步結(jié)束后,即可加入域內(nèi)成為普通的存儲(chǔ)節(jié)點(diǎn),進(jìn)行版本控制。 版本控制的相關(guān)說明可參照?qǐng)D5-圖8的相關(guān)說明,在此不對(duì)相同或類似內(nèi)容進(jìn)行重復(fù)說
      14明。 本實(shí)施例通過選取管理節(jié)點(diǎn)來保持分布式系統(tǒng)大致時(shí)間同步的方式,即使節(jié)點(diǎn)規(guī) 模擴(kuò)大到萬級(jí)、十萬級(jí),系統(tǒng)仍然能自動(dòng)進(jìn)行有效的時(shí)間同步、不需手工配置,可以對(duì)外呈 現(xiàn)出良好的擴(kuò)展性,自動(dòng)化程度高,適用于大規(guī)模的網(wǎng)絡(luò),并且,本實(shí)施例的版本控制方法 可以允許系統(tǒng)中數(shù)據(jù)存在不一致的情況,提高了系統(tǒng)的可用性。
      實(shí)施例八 圖10為圖9中管理節(jié)點(diǎn)的實(shí)施例結(jié)構(gòu)示意圖,如圖IO所示,本實(shí)施例中管理節(jié)點(diǎn) 包括 接口模塊2,用于與從所有管理節(jié)點(diǎn)中選取的同步源進(jìn)行交互,發(fā)送攜帶請(qǐng)求時(shí)間 Tl同步請(qǐng)求消息,從對(duì)應(yīng)的回復(fù)請(qǐng)求消息中,獲得同步源收到請(qǐng)求消息的時(shí)間T2,及回復(fù) 請(qǐng)求消息的時(shí)間T3 ; 計(jì)算模塊4,用于根據(jù)接收回復(fù)請(qǐng)求消息的接收時(shí)間T4、所述T1、T2及T3,計(jì)算與 同步源時(shí)間系統(tǒng)的相對(duì)差值e ,并根據(jù)相對(duì)差值調(diào)整自身的時(shí)間系統(tǒng)與同步源保持同步;
      處理模塊6,用于根據(jù)同步后的時(shí)間對(duì)域內(nèi)各存儲(chǔ)節(jié)點(diǎn)進(jìn)行時(shí)間同步。
      管理節(jié)點(diǎn)具體的時(shí)間同步過程可參見圖4(a)的相關(guān)同步說明。
      實(shí)施例九 圖11為圖9中存儲(chǔ)節(jié)點(diǎn)的實(shí)施例結(jié)構(gòu)示意圖。如圖11所示,本實(shí)施例中存儲(chǔ)節(jié) 節(jié)點(diǎn)包括 時(shí)間同步模塊l,用于與從分布式系統(tǒng)的對(duì)應(yīng)域中選取產(chǎn)生的對(duì)應(yīng)的管理節(jié)點(diǎn)進(jìn) 行時(shí)間同步,即該存儲(chǔ)節(jié)點(diǎn)所歸屬的域內(nèi)的管理節(jié)點(diǎn)進(jìn)行時(shí)間同步; 存儲(chǔ)模塊3,用于保存分布式系統(tǒng)的數(shù)據(jù)及同步后的時(shí)間,數(shù)據(jù)中可以包含時(shí)間標(biāo) 識(shí)信息、和/或操作版本標(biāo)識(shí)信息,時(shí)間標(biāo)識(shí)信息可以包含數(shù)據(jù)的發(fā)送時(shí)間和/或接收時(shí) 間。 版本控制模塊5,用于根據(jù)同步后的時(shí)間對(duì)存儲(chǔ)數(shù)據(jù)的復(fù)本進(jìn)行版本控制,具體 地,在存儲(chǔ)節(jié)點(diǎn)為接收數(shù)據(jù)修改、讀取或恢復(fù)請(qǐng)求的前端節(jié)點(diǎn)時(shí),對(duì)所請(qǐng)求的數(shù)據(jù)的多份復(fù) 本進(jìn)行版本控制。 本實(shí)施例中存儲(chǔ)模塊3還可以存儲(chǔ)數(shù)據(jù)的版本操作標(biāo)識(shí)信息,即一份數(shù)據(jù)可以對(duì) 應(yīng)保存其發(fā)送時(shí)間、接收時(shí)間、數(shù)據(jù)版本信息(如修改次數(shù)等)。 在分布式系統(tǒng)中,某一個(gè)節(jié)點(diǎn)并不只作為管理節(jié)點(diǎn)、或存儲(chǔ)節(jié)點(diǎn)、或前端節(jié)點(diǎn),有 時(shí)可能結(jié)合在一起,如某節(jié)點(diǎn)在時(shí)間同步過程中被選取出來作為域內(nèi)的管理節(jié)點(diǎn);在時(shí)間 同步后,即可加入域內(nèi)成為普通的存儲(chǔ)節(jié)點(diǎn);如果是第一個(gè)接收外部系統(tǒng)請(qǐng)求消息的節(jié)點(diǎn), 還可能作為前端節(jié)點(diǎn)進(jìn)行版本控制。因此,在本發(fā)明各實(shí)施例中例舉的分布式系統(tǒng)中,管理 節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)可能集成到一個(gè)節(jié)點(diǎn)上,在不同的過程中擔(dān)當(dāng)不同的功能。其中上述方法 發(fā)明的各個(gè)實(shí)施例可以在具備圖io-圖11結(jié)構(gòu)圖所示結(jié)構(gòu)的管理節(jié)點(diǎn)及存儲(chǔ)節(jié)點(diǎn)中實(shí)現(xiàn), 如果某節(jié)點(diǎn)在不同的過程中擔(dān)當(dāng)管理節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn),則相應(yīng)的,該節(jié)點(diǎn)同時(shí)具備圖10中 管理節(jié)點(diǎn)和圖11中存儲(chǔ)節(jié)點(diǎn)的內(nèi)部功能模塊。 綜上所述,本發(fā)明上述一個(gè)或多個(gè)實(shí)施例具有如下優(yōu)點(diǎn)
      1.擴(kuò)展性好 本發(fā)明各實(shí)施例提出的復(fù)本版本控制方法及分布式版本控制系統(tǒng),無需時(shí)鐘高度同步,亦無須一個(gè)集中的控制點(diǎn)來進(jìn)行復(fù)本版本的嚴(yán)格同步,使得系統(tǒng)對(duì)外呈現(xiàn)出良好的 擴(kuò)展性,可以用于10萬級(jí)別的大規(guī)模分布式冗余存儲(chǔ)系統(tǒng),使得系統(tǒng)具有良好的擴(kuò)展性。
      2.系統(tǒng)可用性高 本發(fā)明各實(shí)施例允許系統(tǒng)中存在多個(gè)復(fù)本版本不一致的情況,并應(yīng)用新的版本控
      制方法,使得系統(tǒng)能夠自動(dòng)區(qū)分出哪個(gè)數(shù)據(jù)復(fù)本代表了數(shù)據(jù)的最新的版本并將最新的數(shù)據(jù)
      提供給請(qǐng)求者,即使某些復(fù)本出現(xiàn)問題,但仍然可以正常讀取和修改數(shù)據(jù),系統(tǒng)將從中選擇
      一份最新的復(fù)本提供給用戶使得系統(tǒng)可以容錯(cuò),提高了系統(tǒng)可用性。 3.高度自動(dòng)化的時(shí)鐘同步方法 本發(fā)明各實(shí)施例需要全網(wǎng)所有節(jié)點(diǎn)進(jìn)行時(shí)鐘同步,然而,現(xiàn)有方案直接應(yīng)用于 D-HSS如此的大規(guī)模網(wǎng)絡(luò)從工作量上來說需要大量手動(dòng)配置,本發(fā)明因此提出了一種新的 時(shí)鐘同步方法,即便節(jié)點(diǎn)規(guī)模擴(kuò)大到萬級(jí),十萬級(jí)依然能夠進(jìn)行有效的時(shí)鐘同步,同時(shí)不需 要進(jìn)行手動(dòng)配置,自動(dòng)化程度高,同時(shí)這種版本控制方法對(duì)硬件的要求不高。
      4.可靠性高 本發(fā)明的版本控制方法及系統(tǒng),采用管理節(jié)點(diǎn)進(jìn)行時(shí)鐘同步的方式,使得分布式 冗余存儲(chǔ)系統(tǒng)能夠在擴(kuò)展到10萬節(jié)點(diǎn)規(guī)模時(shí)仍然保持一個(gè)很高的效率,同時(shí)可靠性也能 達(dá)到99. 999%。 本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過 程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序 在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、 RAM、磁碟或者 光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。 最后應(yīng)說明的是以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明, 盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,對(duì)于本領(lǐng)域的技術(shù)人員來說,其依然可 以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換。 凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的 保護(hù)范圍之內(nèi)。
      1權(quán)利要求
      一種分布式系統(tǒng)版本控制方法,其特征在于,包括在分布式系統(tǒng)的每個(gè)域中選取一個(gè)管理節(jié)點(diǎn);在所有管理節(jié)點(diǎn)中選取一個(gè)作為所述分布式系統(tǒng)的同步源,所有管理節(jié)點(diǎn)根據(jù)所述同步源的時(shí)間進(jìn)行時(shí)間同步;所有管理節(jié)點(diǎn)根據(jù)同步后的時(shí)間控制對(duì)應(yīng)域內(nèi)節(jié)點(diǎn)的時(shí)間同步;所述分布式系統(tǒng)的節(jié)點(diǎn)根據(jù)同步后的時(shí)間對(duì)存儲(chǔ)數(shù)據(jù)的復(fù)本進(jìn)行版本控制。
      2. 根據(jù)權(quán)利要求l所述的方法,其特征在于,還包括在所述分布式系統(tǒng)中存儲(chǔ)的數(shù)據(jù)中加入時(shí)間標(biāo)識(shí)信息、和/或操作版本標(biāo)識(shí)信息,根 據(jù)所述時(shí)間標(biāo)識(shí)信息、和/或操作版本標(biāo)識(shí)信息對(duì)數(shù)據(jù)的多份復(fù)本進(jìn)行版本控制。
      3 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述時(shí)間標(biāo)識(shí)信息包括發(fā)送時(shí)間、接收 時(shí)間。
      4. 根據(jù)權(quán)利要求1-3中任一項(xiàng)所述的方法,其特征在于,對(duì)所述存儲(chǔ)數(shù)據(jù)的復(fù)本進(jìn)行 版本控制具體包括對(duì)所述數(shù)據(jù)的N份復(fù)本進(jìn)行修改、讀取或恢復(fù),且滿足W+R > N, N > = 3,其中,W為收 到復(fù)本的節(jié)點(diǎn)修改成功的最少響應(yīng)數(shù)量;R為讀取到相同內(nèi)容復(fù)本的最少數(shù)量。
      5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,對(duì)所述數(shù)據(jù)的N份復(fù)本進(jìn)行修改的操作具 體包括接收所述數(shù)據(jù)對(duì)應(yīng)修改請(qǐng)求的前端節(jié)點(diǎn),在所述修改請(qǐng)求中加入發(fā)送時(shí)間并向所述數(shù) 據(jù)的N份復(fù)本所在節(jié)點(diǎn)轉(zhuǎn)發(fā)所述修改請(qǐng)求,所述發(fā)送時(shí)間為所述前端節(jié)點(diǎn)根據(jù)自身時(shí)鐘發(fā) 送所述修改請(qǐng)求時(shí)對(duì)應(yīng)的時(shí)間;當(dāng)W份以上復(fù)本所在節(jié)點(diǎn)成功接受所述修改請(qǐng)求時(shí),更新所述數(shù)據(jù)及對(duì)應(yīng)的所述發(fā)送 時(shí)間。
      6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,當(dāng)W份以上復(fù)本所在節(jié)點(diǎn)接受所述修改請(qǐng) 求時(shí)還包括更新所述修改請(qǐng)求的到達(dá)時(shí)間;和/或更新所述數(shù)據(jù)的操作版本標(biāo)識(shí)信息。
      7. 根據(jù)權(quán)利要求5所述的方法,其特征在于,還包括當(dāng)W份以上復(fù)本所在節(jié)點(diǎn)接受所述修改請(qǐng)求失敗時(shí),所述前端節(jié)點(diǎn)通知所述N份復(fù)本 所在節(jié)點(diǎn)恢復(fù)修改請(qǐng)求失敗之前的數(shù)據(jù)。
      8. 根據(jù)權(quán)利要求4所述的方法,其特征在于,對(duì)所述數(shù)據(jù)的N份復(fù)本進(jìn)行讀取的操作具 體包括接收所述數(shù)據(jù)對(duì)應(yīng)讀取查詢請(qǐng)求的前端節(jié)點(diǎn),向所述數(shù)據(jù)的N份復(fù)本所在節(jié)點(diǎn)轉(zhuǎn)發(fā)所 述查詢請(qǐng)求;當(dāng)R份以上復(fù)本所在節(jié)點(diǎn)返回的數(shù)據(jù)相同時(shí),所述前端節(jié)點(diǎn)返回所述數(shù)據(jù)的查詢結(jié)果。
      9. 根據(jù)權(quán)利要求8所述的方法,其特征在于,對(duì)所述數(shù)據(jù)的N份復(fù)本進(jìn)行讀取的操作還 包括所述數(shù)據(jù)的N份復(fù)本所在節(jié)點(diǎn)讀取所述數(shù)據(jù)及對(duì)應(yīng)的時(shí)間標(biāo)識(shí)信息,并返回至所述前 端節(jié)點(diǎn);所述前端節(jié)點(diǎn)根據(jù)所述時(shí)間標(biāo)識(shí)信息判斷返回的數(shù)據(jù)是否相同。
      10. 根據(jù)權(quán)利要求8或9所述的方法,其特征在于,對(duì)所述數(shù)據(jù)的N份復(fù)本進(jìn)行讀取的操作還包括所述數(shù)據(jù)的N份復(fù)本所在節(jié)點(diǎn)讀取所述數(shù)據(jù)對(duì)應(yīng)的操作版本標(biāo)識(shí)信息,并返回至所述前端節(jié)點(diǎn);所述前端節(jié)點(diǎn)根據(jù)所述操作版本標(biāo)識(shí)信息判斷返回的數(shù)據(jù)是否相同。
      11. 根據(jù)權(quán)利要求4所述的方法,其特征在于,對(duì)所述數(shù)據(jù)的N份復(fù)本進(jìn)行恢復(fù)的操作具體包括故障恢復(fù)節(jié)點(diǎn)向所述數(shù)據(jù)的其它N-l份復(fù)本所在節(jié)點(diǎn)發(fā)送同步請(qǐng)求;當(dāng)接收到R個(gè)所述數(shù)據(jù)的返回響應(yīng)時(shí),根據(jù)最新的所述數(shù)據(jù)進(jìn)行同步。
      12. 根據(jù)權(quán)利要求11所述的方法,其特征在于,所述最新的數(shù)據(jù)為操作版本最高、所述數(shù)據(jù)的發(fā)送時(shí)間最新、和/或所述數(shù)據(jù)的相對(duì)保存時(shí)間最短對(duì)應(yīng)的數(shù)據(jù),所述相對(duì)保存時(shí)間為所述數(shù)據(jù)的到達(dá)時(shí)間與所述發(fā)送時(shí)間的時(shí)間差。
      13. 根據(jù)權(quán)利要求1-3中任一項(xiàng)所述的方法,其特征在于,所述在分布式系統(tǒng)的每個(gè)域中選取一個(gè)管理節(jié)點(diǎn)的操作包括在每個(gè)域中選取ID號(hào)最小、最大的或在線時(shí)間最長(zhǎng)的節(jié)點(diǎn)作為該域的管理節(jié)點(diǎn)。
      14. 根據(jù)權(quán)利要求1-3中任一項(xiàng)所述的方法,其特征在于,所述在分布式系統(tǒng)的每個(gè)域中選取一個(gè)管理節(jié)點(diǎn)的操作包括域中的其中一個(gè)節(jié)點(diǎn)向其余節(jié)點(diǎn)通告其作為管理節(jié)點(diǎn)的請(qǐng)求消息;在其余節(jié)點(diǎn)均返回對(duì)應(yīng)的請(qǐng)求接受響應(yīng)時(shí),將所述發(fā)送請(qǐng)求消息的節(jié)點(diǎn)作為所述域的管理節(jié)點(diǎn)。
      15. 根據(jù)權(quán)利要求1-3中任一項(xiàng)所述的方法,其特征在于,所述在所有管理節(jié)點(diǎn)中選取一個(gè)管理節(jié)點(diǎn)作為所述分布式系統(tǒng)的同步源的操作包括在所有管理節(jié)點(diǎn)中選取在線時(shí)間最長(zhǎng)的管理節(jié)點(diǎn)作為所述同步源。
      16. 根據(jù)權(quán)利要求1-3中任一項(xiàng)所述的方法,其特征在于,所述所有管理節(jié)點(diǎn)根據(jù)所述同步源的時(shí)間進(jìn)行時(shí)間同步的操作包括管理節(jié)點(diǎn)根據(jù)自身的時(shí)間系統(tǒng)向所述同步源發(fā)送攜帶請(qǐng)求時(shí)間Tl的同步請(qǐng)求消息;所述同步源以自身的時(shí)間系統(tǒng)在對(duì)應(yīng)的回復(fù)請(qǐng)求消息中,攜帶收到所述請(qǐng)求消息的時(shí)間T2,及回復(fù)所述請(qǐng)求消息的時(shí)間T3 ;所述管理節(jié)點(diǎn)根據(jù)接收所述回復(fù)請(qǐng)求消息的接收時(shí)間T4、所述Tl、 T2及T3,計(jì)算與所述同步源時(shí)間系統(tǒng)的相對(duì)差值e :e=(T2-T1);(T4-T3)。
      17. —種分布式版本控制系統(tǒng),其特征在于,包括管理節(jié)點(diǎn),從每個(gè)域內(nèi)的存儲(chǔ)節(jié)點(diǎn)中選取產(chǎn)生,用于與從所述多個(gè)管理節(jié)點(diǎn)中選取的同步源進(jìn)行時(shí)間同步,并根據(jù)同步后的時(shí)間負(fù)責(zé)對(duì)應(yīng)域內(nèi)各存儲(chǔ)節(jié)點(diǎn)的時(shí)間同步;存儲(chǔ)節(jié)點(diǎn),用于根據(jù)同步后的時(shí)間對(duì)存儲(chǔ)數(shù)據(jù)的復(fù)本進(jìn)行版本控制。
      18. 根據(jù)權(quán)利要求17所述的系統(tǒng),其特征在于,所述管理節(jié)點(diǎn)包括接口模塊,用于與所述同步源進(jìn)行交互,發(fā)送攜帶請(qǐng)求時(shí)間T1同步請(qǐng)求消息,從對(duì)應(yīng)的回復(fù)請(qǐng)求消息中,獲得所述同步源收到所述請(qǐng)求消息的時(shí)間T2,及回復(fù)所述請(qǐng)求消息的時(shí)間T3 ;計(jì)算模塊,用于根據(jù)接收所述回復(fù)請(qǐng)求消息的接收時(shí)間T4、所述T1、T2及T3,計(jì)算與所述同步源時(shí)間系統(tǒng)的相對(duì)差值e ,并根據(jù)所述相對(duì)差值調(diào)整自身的時(shí)間系統(tǒng)與所述同步源保持同步;處理模塊,用于根據(jù)同步后的時(shí)間對(duì)域內(nèi)各存儲(chǔ)節(jié)點(diǎn)進(jìn)行時(shí)間同步。
      19. 根據(jù)權(quán)利要求17或18所述的系統(tǒng),其特征在于,所述存儲(chǔ)節(jié)點(diǎn)包括時(shí)間同步模塊,用于與對(duì)應(yīng)的管理節(jié)點(diǎn)進(jìn)行時(shí)間同步;存儲(chǔ)模塊,用于保存分布式系統(tǒng)的數(shù)據(jù)及同步后的時(shí)間,所述數(shù)據(jù)中包含時(shí)間標(biāo)識(shí)信息,所述時(shí)間標(biāo)識(shí)信息包含所述數(shù)據(jù)的發(fā)送時(shí)間和/或接收時(shí)間。
      20. 根據(jù)權(quán)利要求19所述的系統(tǒng),其特征在于,所述存儲(chǔ)節(jié)點(diǎn)還包括版本控制模塊,用于在所述存儲(chǔ)節(jié)點(diǎn)為接收數(shù)據(jù)修改、讀取或恢復(fù)請(qǐng)求的前端節(jié)點(diǎn)時(shí),對(duì)所請(qǐng)求的數(shù)據(jù)的多份復(fù)本進(jìn)行版本控制。
      21. —種管理節(jié)點(diǎn),其特征在于,從分布式系統(tǒng)的每個(gè)域中選取產(chǎn)生,所述管理節(jié)點(diǎn)包括接口模塊,用于與從所有管理節(jié)點(diǎn)中選取的同步源進(jìn)行交互,發(fā)送攜帶請(qǐng)求時(shí)間Tl同步請(qǐng)求消息,從對(duì)應(yīng)的回復(fù)請(qǐng)求消息中,獲得所述同步源收到所述請(qǐng)求消息的時(shí)間T2,及回復(fù)所述請(qǐng)求消息的時(shí)間T3 ;計(jì)算模塊,用于根據(jù)接收所述回復(fù)請(qǐng)求消息的接收時(shí)間T4、所述T1、T2及T3,計(jì)算與所述同步源時(shí)間系統(tǒng)的相對(duì)差值e ,并根據(jù)所述相對(duì)差值調(diào)整自身的時(shí)間系統(tǒng)與所述同步源保持同步;處理模塊,用于根據(jù)同步后的時(shí)間對(duì)管理節(jié)點(diǎn)所在域內(nèi)各存儲(chǔ)節(jié)點(diǎn)進(jìn)行時(shí)間同步。
      22. —種存儲(chǔ)節(jié)點(diǎn),其特征在于,包括時(shí)間同步模塊,用于與從分布式系統(tǒng)的每個(gè)域中選取產(chǎn)生的管理節(jié)點(diǎn)進(jìn)行時(shí)間同步;存儲(chǔ)模塊,用于保存分布式系統(tǒng)的數(shù)據(jù)及同步后的時(shí)間;版本控制模塊,用于根據(jù)同步后的時(shí)間對(duì)存儲(chǔ)數(shù)據(jù)的復(fù)本進(jìn)行版本控制。
      23. 根據(jù)權(quán)利要求22所述的存儲(chǔ)節(jié)點(diǎn),其特征在于,所述存儲(chǔ)模塊中的存儲(chǔ)的所述數(shù)據(jù)中包含時(shí)間標(biāo)識(shí)信息、和/或操作版本標(biāo)識(shí)信息;所述時(shí)間標(biāo)識(shí)信息包含所述數(shù)據(jù)的發(fā)送時(shí)間和/或接收時(shí)間。
      全文摘要
      本發(fā)明公開了一種分布式系統(tǒng)版本控制方法、節(jié)點(diǎn)及系統(tǒng),其中,該方法包括在分布式系統(tǒng)的每個(gè)域中選取一個(gè)管理節(jié)點(diǎn);在所有管理節(jié)點(diǎn)中選取一個(gè)作為分布式系統(tǒng)的同步源,所有管理節(jié)點(diǎn)根據(jù)同步源的時(shí)間進(jìn)行時(shí)間同步;所有管理節(jié)點(diǎn)根據(jù)同步后的時(shí)間控制對(duì)應(yīng)域內(nèi)節(jié)點(diǎn)的時(shí)間同步;分布式系統(tǒng)的節(jié)點(diǎn)根據(jù)同步后的時(shí)間對(duì)存儲(chǔ)數(shù)據(jù)的復(fù)本進(jìn)行版本控制。本發(fā)明各實(shí)施例可以實(shí)現(xiàn)分布式系統(tǒng)的大致時(shí)間同步,提高擴(kuò)展性及實(shí)用性,解決現(xiàn)有技術(shù)中分布式系統(tǒng)的擴(kuò)展性差、實(shí)用性差等缺陷。
      文檔編號(hào)H04L29/08GK101753609SQ200810239929
      公開日2010年6月23日 申請(qǐng)日期2008年12月15日 優(yōu)先權(quán)日2008年12月15日
      發(fā)明者歐陽(yáng)聰星, 王光霽, 薛海強(qiáng), 魏冰 申請(qǐng)人:中國(guó)移動(dòng)通信集團(tuán)公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1