專利名稱:對等網(wǎng)絡(luò)中的節(jié)點的獨立重新啟動的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉 及對等網(wǎng)絡(luò)。所述網(wǎng)絡(luò)是由一組管理其自身的互連節(jié)點構(gòu)成的。
背景技術(shù):
所述對等網(wǎng)絡(luò)可以被用于不同的應(yīng)用,特別是電信。對于所述應(yīng)用中的一些而言,節(jié)點必須保存數(shù)據(jù)。這個數(shù)據(jù)可以是與通信會話有關(guān)的數(shù)據(jù)并且必須之后針對屬于同一會話的任何新事件而再次被找到。對等網(wǎng)絡(luò)可以被用作分布式存儲器,并且每個節(jié)點保存可經(jīng)由分布式散列表訪問的一些數(shù)據(jù)。一些應(yīng)用需要高容錯率。因此,為了防止網(wǎng)絡(luò)節(jié)點之一的故障不可逆地破壞其所保存的數(shù)據(jù)部分,該數(shù)據(jù)可以在另一節(jié)點上被復(fù)制。這個稱作“buddy復(fù)制”的傳統(tǒng)冗余機制使得系統(tǒng)能夠容許影響對等網(wǎng)絡(luò)的最多的錯誤。對等網(wǎng)絡(luò)的一個實現(xiàn)在由Ian Stoica, Robert Morris, David Karger, M. FransKaashoek 和 Hari Balakrishanan 所著的文獻 “Chord:A scalable peer-to-peer LookupService for Internet Applications,,(ACP SIGC0MM2001, San Diego, CA,2001 年 8 月;pp. 149-160)中被詳細(xì)說明。存在一些描述了用于改進“Chord”網(wǎng)絡(luò)中的容錯的方法的文獻。例如,由HaifengYu,Philip B. Gibbons 和 Suman Nath 所著的文獻“Availability of multi-objectoperations”建議檢查數(shù)據(jù)是如何在這種網(wǎng)絡(luò)內(nèi)被復(fù)制的。網(wǎng)絡(luò)節(jié)點中的每一個都包含使得系統(tǒng)能夠運行的軟件模塊。這些軟件模塊使得節(jié)點能夠利用預(yù)定義的協(xié)議通信、處理來自其他節(jié)點或來自對等網(wǎng)絡(luò)外的系統(tǒng)的請求、管理數(shù)據(jù)復(fù)制,等等。不時地,這些軟件模塊可能需要更改或更新。軟件更新機制需要臨時關(guān)閉節(jié)點,即使正在做的事情是安裝僅糾正一個小問題的新版本,或提供新的次級組件。然而,在對等網(wǎng)絡(luò)中,這個重新啟動造成兩個問題。首先,由于節(jié)點具有保存的數(shù)據(jù),因此這個數(shù)據(jù)必須在重啟階段被保留。其次,對于一些應(yīng)用而言,例如電信應(yīng)用,確保對等網(wǎng)絡(luò)的服務(wù)連續(xù)性是很重要的。換言之,在節(jié)點重啟期間,對等網(wǎng)絡(luò)必須繼續(xù)操作并且對于預(yù)期的應(yīng)用服務(wù)的用戶的設(shè)備而言透明地提供該應(yīng)用服務(wù)。
發(fā)明內(nèi)容
本發(fā)明的目的是解決這兩個問題。為此,它包括一種用于重新啟動由一組節(jié)點構(gòu)成的對等網(wǎng)絡(luò)的方法。這個方法的新穎性在于它包括確定要重新啟動的第一節(jié)點和對于該要重新啟動的節(jié)點而言已知的一組節(jié)點的步驟,其中,每個要重新啟動的節(jié)點在重啟之前實施以下步驟 從已知的節(jié)點之中推選出一個節(jié)點, 所述要重新啟動的節(jié)點發(fā)送包含(在前一步驟期間所推選出的)下一個節(jié)點的標(biāo)識符的消息給已知的節(jié)點;并且當(dāng)接收所述消息時,每個節(jié)點實施以下步驟·備份所復(fù)制的會話,這包括確定在該節(jié)點和要重新啟動的節(jié)點之間的所復(fù)制的會話,并且再次復(fù)制它們,·基于所述消息的內(nèi)容檢驗該節(jié)點是否是下一個節(jié)點,并且如果是則將正討論的節(jié)點看做是要重新啟動的節(jié)點。根據(jù)本發(fā)明的一個實施例,備份的步驟包括等待直到要重新啟動的節(jié)點已經(jīng)重新起動,然后將所復(fù)制的會話復(fù)制到該節(jié)點中。所述消息也可以包含下一節(jié)點的標(biāo)識 符,并且在該情況下,備份的步驟包括將所復(fù)制的會話復(fù)制到已知節(jié)點中的任一個中,除了下一節(jié)點和要重新啟動的節(jié)點。推選的步驟可以包括在部署于處理設(shè)備上的節(jié)點之中確定下一個節(jié)點,所述處理設(shè)備與要重新啟動的節(jié)點部署于其上的那個設(shè)備不同。本發(fā)明的另一個目的是已知包括多個節(jié)點的對等網(wǎng)絡(luò),至少一些所述節(jié)點實現(xiàn)之前描述的方法。因此,本發(fā)明提出了一種用于順次地重新啟動節(jié)點的機制,所述節(jié)點結(jié)合了一種用于在網(wǎng)絡(luò)內(nèi)動態(tài)地重新部署所復(fù)制的數(shù)據(jù)的策略。在每一刻,沒有正在重新啟動的節(jié)點都足以提供應(yīng)用服務(wù)。另外,所述機制不需要人工干預(yù)每個節(jié)點自動確定要重新啟動的下一個節(jié)點。另外,所述節(jié)點能夠獨立地實現(xiàn)所述機制。它不需要集中式的或外部的設(shè)備。
參考附圖,通過閱讀下面的描述,本發(fā)明及其優(yōu)點將變得更加明顯,所述附圖示意性地示出了對等網(wǎng)絡(luò)。
具體實施例方式圖I所示的對等網(wǎng)絡(luò)R由節(jié)點N1、N2、N3、N4、N5構(gòu)成。在節(jié)點內(nèi)保存的每個數(shù)據(jù)都在另一個分離的節(jié)點中被復(fù)制。因此,在節(jié)點NI中保存的數(shù)據(jù)D被復(fù)制在節(jié)點N3中。這樣,如果節(jié)點NI出故障,則該數(shù)據(jù)D將仍然在對等網(wǎng)絡(luò)R內(nèi)可用。除了這個數(shù)據(jù)之外,節(jié)點還擁有軟件模塊。這些軟件模塊被用來實現(xiàn)管理對等網(wǎng)絡(luò)的特定機制和算法。所述特定機制和算法例如可以符合上述“ Chord ”文獻。根據(jù)本發(fā)明,它還擁有被配置為更新之前提到的軟件模塊的軟件模塊。如將要看到的那樣,這些軟件模塊包括兩個功能一個功能在收到重新啟動消息時被觸發(fā),而另一個在重新啟動時被觸發(fā)。假設(shè)所有節(jié)點擁有相同的軟件模塊。這個假設(shè)使之能夠簡化本發(fā)明的概要,但是本發(fā)明可以適用于包括有區(qū)別的節(jié)點的網(wǎng)絡(luò)。本發(fā)明的方法包括確定要啟動的第一節(jié)點的第一步驟。該方法的這個初始化是通過發(fā)送消息給所確定的節(jié)點的外部設(shè)備來完成的。這個外部設(shè)備可以是對等網(wǎng)絡(luò)的控制臺,由此編程者可以觸發(fā)嵌入節(jié)點內(nèi)的軟件模塊的更新或替換。
這個消息被所確定的節(jié)點接收,并且致使重新啟動功能的觸發(fā)。這個重新啟動功能包括從對于該確定的節(jié)點而言已知的節(jié)點之中推選出下一個節(jié)點的步驟。這組已知節(jié)點當(dāng)啟動時等同于節(jié)點組。然而,由于開始重新啟動,這兩組將會分化。這是因為當(dāng)節(jié)點重新啟動時,它獲得新的身份,并且盡管它是同一個機器,它也作為一個不同的節(jié)點運轉(zhuǎn)。因此,在本發(fā)明的方法過程中,將有越來越少的節(jié)點屬于最初的已知節(jié)點組。在最初的已知節(jié)點組內(nèi),必須推選出在它自己之后將重新啟動的節(jié)點。這個選擇可以利用不同的準(zhǔn)則來繼續(xù)?!獋€有效的準(zhǔn)則是推選部署于與它自己的設(shè)備不同的處理設(shè)備中的節(jié)點。這是因為在對等網(wǎng)絡(luò)中,節(jié)點部署于一組機器或處理設(shè)備中,它們的數(shù)量通常少于節(jié)點。實際上, 多個節(jié)點通常部署在單個機器中。為了在重新啟動過程期間避免網(wǎng)絡(luò)N內(nèi)的負(fù)載不均衡,根據(jù)處理設(shè)備在時間上分散節(jié)點的重新啟動是有利的。這個選項防止了一些機器在給定時刻具有比其他機器多的多的節(jié)點這一情形,這會導(dǎo)致系統(tǒng)性能損耗。另一個實現(xiàn)可以包括跟隨部署于對等網(wǎng)絡(luò)中的分布式散列表(DHT)的環(huán)形。這兩個實現(xiàn)也可以組合。其他可選方案當(dāng)然也是可行的,但是應(yīng)當(dāng)指出,下一個節(jié)點是由對等網(wǎng)絡(luò)的節(jié)點本身來確定的,無須外部集中式設(shè)備介入。本發(fā)明的優(yōu)點之一是提供了由對等網(wǎng)絡(luò)管理的完全獨立的過程。重新啟動功能的第二步驟是發(fā)送消息M給已知節(jié)點的子集的步驟。這個消息包含下一個節(jié)點的標(biāo)識符。它也可以包含所確定的節(jié)點(消息發(fā)送方)的標(biāo)識符和已知節(jié)點的子集中的節(jié)點的標(biāo)識符。一旦消息M的集合已經(jīng)被正確地發(fā)送,節(jié)點就能夠重新啟動。如本領(lǐng)域技術(shù)人員已知的那樣,重新啟動可以包括幾個預(yù)處理操作,例如終止與其他節(jié)點的開放通信信道(socket)等。重新啟動功能可以對應(yīng)于一個關(guān)鍵階段,在該階段期間節(jié)點停止創(chuàng)建新會話。本發(fā)明的方法還包括接收功能,其通過接收如之前所述的消息而被觸發(fā)。這個接收功能包括備份所復(fù)制的會話這一步驟。該步驟包括首先確定受影響的會話,即在接收該消息的節(jié)點與發(fā)送該消息的節(jié)點之間被復(fù)制的那些會話。知道哪些節(jié)點擁有“原生”版本以及哪些擁有拷貝并不重要;唯一重要的是確定在這兩個節(jié)點之間被復(fù)制的會話。由于發(fā)送的節(jié)點必須重新啟動,兩個拷貝之一將從對等網(wǎng)絡(luò)中消失,并且挑戰(zhàn)是維持信息的冗余,即使是在網(wǎng)絡(luò)N的這個重新啟動階段。為此,幾個實施例是可行的。在第一實施例中,節(jié)點等待直到發(fā)送的節(jié)點已經(jīng)重新啟動。只要發(fā)送的節(jié)點已經(jīng)再次變?yōu)榧せ?,它就觸發(fā)將之前確定的會話數(shù)據(jù)復(fù)制到該發(fā)送的節(jié)點中這一步驟。在第二實施例中,節(jié)點觸發(fā)對安全節(jié)點的確定并且將會話數(shù)據(jù)復(fù)制到該安全節(jié)點中。這個安全節(jié)點可以是已知節(jié)點的子集中的任一節(jié)點,除了該發(fā)送的節(jié)點和要重新啟動的下一節(jié)點(其可能作為消息參數(shù)而被發(fā)送)。所述接收功能還包括檢驗接收的節(jié)點是否是由該發(fā)送的節(jié)點所確定的下一個節(jié)點的步驟。為此,下一個節(jié)點的標(biāo)識符必須被包括在所述消息內(nèi)。在該情形下,接收的節(jié)點必須被看作是要重新啟動的節(jié)點,并且所述重新啟動功能因而被自動觸發(fā)。一旦所有節(jié)點已經(jīng)重新啟動,該過程就結(jié)束,即當(dāng)不再有任何節(jié)點還屬于最初的已知節(jié)點集合時(所有節(jié)點已經(jīng)重新啟動并且更改身份)。
通過本發(fā)明的方法,會話的數(shù)據(jù)被保存并且在整個過程期間都是可用的,并且對等網(wǎng)絡(luò)保持可操作。此外,會話數(shù)據(jù)仍然是復(fù)制的,并且對等網(wǎng)絡(luò)繼續(xù)遵循容錯的要求。
權(quán)利要求
1.一種用于重新啟動由一組節(jié)點(NI,N2, N3, N4, N5)構(gòu)成的對等網(wǎng)絡(luò)(N)的方法,其特征在于,包括確定要重新啟動的第一節(jié)點和對于該要重新啟動的節(jié)點而言已知的節(jié)點子集的步驟,其中,每個要重新啟動的節(jié)點在重新啟動之前實施以下步驟 從所述已知的節(jié)點之中推選出ー個節(jié)點, 所述要重新啟動的節(jié)點發(fā)送包含下一個節(jié)點的標(biāo)識符的消息(M)給所述已知的節(jié)點; 以及當(dāng)收到所述消息時,每個節(jié)點實施以下步驟 備份復(fù)制的會話,這包括確定在該節(jié)點與所述要重新啟動的節(jié)點之間的復(fù)制的會話(D)并且再次復(fù)制它們, 基于所述消息中的內(nèi)容來檢驗該節(jié)點是否是所述下ー個節(jié)點,并且如果是則將該節(jié)點看作是要重新啟動的節(jié)點。
2.根據(jù)權(quán)利要求I所述的方法,其中,備份的所述步驟包括等待直到所述要重新啟動的節(jié)點已經(jīng)重新啟動,然后將所述復(fù)制的會話復(fù)制到該要重新啟動的節(jié)點中。
3.根據(jù)權(quán)利要求I所述的方法,其中,備份的所述步驟包括將所述復(fù)制的會話復(fù)制到所述已知的節(jié)點中的任ー個中,除了所述下ー個節(jié)點和所述要重新啟動的節(jié)點。
4.根據(jù)前述任ー權(quán)利要求所述的方法,其中,推選的所述步驟包括從在與所述要重新啟動的節(jié)點部署于其上的設(shè)備不同的處理設(shè)備上所部署的節(jié)點之中確定下ー個節(jié)點。
5.ー種包括多個節(jié)點的對等網(wǎng)絡(luò),所述節(jié)點中的至少ー些擁有用于當(dāng)從要重新啟動的節(jié)點接收包含下一個節(jié)點的標(biāo)識符的消息時實施以下步驟的裝置 備份復(fù)制的會話,這包括確定在所述節(jié)點與所述要重新啟動的節(jié)點之間的復(fù)制的會話(D)并且再次復(fù)制它們, 基于所述消息中的內(nèi)容來檢驗所述節(jié)點是否是所述下ー個節(jié)點,并且如果是則將所述節(jié)點看作是要重新啟動的節(jié)點。
全文摘要
本發(fā)明涉及一種用于重新啟動由一組節(jié)點(N1,N2,N3,N4,N5)構(gòu)成的對等網(wǎng)絡(luò)(N)的方法。所述方法包括確定要重新啟動的第一節(jié)點以及對于該第一節(jié)點而言已知的一組節(jié)點的步驟,每個要重新啟動的節(jié)點在重新啟動之前實施以下步驟從所述已知的節(jié)點之中選出一個節(jié)點,和發(fā)送包含(在前一步驟中選出的)下一個節(jié)點的標(biāo)識符的消息(M)給所述已知的節(jié)點。當(dāng)收到該消息時,每個節(jié)點實施以下步驟備份復(fù)制的會話,這包括確定在該節(jié)點與所述要重新啟動的節(jié)點之間的復(fù)制的會話(D)并且再次復(fù)制它們,以及基于所述消息中的內(nèi)容檢驗該節(jié)點是否是所述下一個節(jié)點,并且如果是則將其看作是要重新啟動的節(jié)點。
文檔編號H04L29/14GK102713841SQ201080060536
公開日2012年10月3日 申請日期2010年11月22日 優(yōu)先權(quán)日2010年1月4日
發(fā)明者D·通布羅夫, T·戈德弗魯瓦 申請人:阿爾卡特朗訊公司