專利名稱:數(shù)據(jù)覆蓋圖、自組織元數(shù)據(jù)覆蓋和應(yīng)用級(jí)多信道廣播的制作方法
背景技術(shù):
本發(fā)明涉及一種分布式數(shù)據(jù)結(jié)構(gòu)以及一種技術(shù),該技術(shù)用于利用上述數(shù)據(jù)結(jié)構(gòu)而與一個(gè)對(duì)等系統(tǒng)相互作用,該技術(shù)還用于應(yīng)用級(jí)多信道廣播。
背景對(duì)等(P2P)系統(tǒng)使用一個(gè)網(wǎng)絡(luò),該網(wǎng)絡(luò)連接具有相等或相近性能和職責(zé)的參與者機(jī)器。上述系統(tǒng)執(zhí)行任務(wù)時(shí)無(wú)需傳統(tǒng)服務(wù)器的協(xié)調(diào)(或需要服務(wù)器最小限度的結(jié)構(gòu)協(xié)調(diào))。例如,附
圖1所示的P2P系統(tǒng)100的高級(jí)描述。系統(tǒng)100包括一個(gè)具有相等或相近性能和職責(zé)的對(duì)等實(shí)體(102-112)的集。在一個(gè)例子中,對(duì)等實(shí)體(102-112)相應(yīng)于單獨(dú)的個(gè)人計(jì)算機(jī)裝置,這些個(gè)人計(jì)算機(jī)裝置通過(guò)互聯(lián)網(wǎng)或企業(yè)內(nèi)部互聯(lián)網(wǎng)連接在一起。對(duì)等實(shí)體(102-112)可以不需要服務(wù)器的幫助而在彼此之間直接傳遞文件或其它信息(如示例性通信路徑114所示)。有關(guān)P2P系統(tǒng)的一般性介紹可以在技術(shù)報(bào)告HPL-2002-57HP實(shí)驗(yàn)室2002的D.S.Milojicic,V.Kalogeraki,R.Lukose,K.Nagaraja,J.Pruyne,B.Richard,S.Rollins和Z.Xu的“對(duì)等運(yùn)算”中找到。
P2P系統(tǒng)通常使用分布式哈希表(DHT)來(lái)促進(jìn)對(duì)象的存儲(chǔ)或檢索,該對(duì)象來(lái)自參與系統(tǒng)的對(duì)等實(shí)體。如其名字所暗示的,分布式哈希表(DHT)涉及一個(gè)分布在多個(gè)位置上的哈希表,例如分布在與不同計(jì)算機(jī)裝置聯(lián)合的多個(gè)存儲(chǔ)器之上。分布式哈希表指定了具有各自指定ID的多個(gè)DHT節(jié)點(diǎn)。DHT節(jié)點(diǎn)定義了抽象的DHT邏輯空間。通過(guò)用一個(gè)哈希函數(shù)支配一個(gè)對(duì)象,可以將對(duì)象插入DHT邏輯空間,或者從DHT邏輯空間中檢索該對(duì)象,以產(chǎn)生一個(gè)關(guān)鍵字。然后使用該關(guān)鍵字,在將要接收上述對(duì)象或可以檢索到上述對(duì)象的DHT邏輯空間中,定位特定目標(biāo)節(jié)點(diǎn)ID。就是說(shuō),每個(gè)DHT節(jié)點(diǎn)與一定范圍內(nèi)的關(guān)鍵字相關(guān)聯(lián);一個(gè)對(duì)象是被添加到特定DHT節(jié)點(diǎn)或是從該節(jié)點(diǎn)檢索一個(gè)對(duì)象,取決于該對(duì)象的關(guān)鍵字是否在與該特定DHT節(jié)點(diǎn)相關(guān)聯(lián)的關(guān)鍵字的范圍內(nèi)。與非分布式哈希表的實(shí)現(xiàn)不同,DHT節(jié)點(diǎn)可以自由地加入或離開DHT邏輯空間(例如,分別相應(yīng)于計(jì)算機(jī)裝置加入或離開P2P系統(tǒng)),所以必須提供功能性以對(duì)這些事件尋址。
已發(fā)展了各種各樣的策略來(lái)管理P2P系統(tǒng)中的對(duì)象的存儲(chǔ)和檢索。附圖2示出了內(nèi)容可尋址網(wǎng)絡(luò)(CAN)策略,例如在S.Ratnasamy,P.Francis,M.Handley,R.Karp和S.Shenker的“可升級(jí)內(nèi)容可尋址網(wǎng)絡(luò)”(ACM SigComm 2001,SanDiego,CA,USA,2001.08)中所描述的。該策略將DHT邏輯空間做成D維的笛卡爾空間200模型。該CAN策略將空間200劃分成連接DHT空間200的節(jié)點(diǎn)。例如,當(dāng)節(jié)點(diǎn)n1加入時(shí),CAN策略將整個(gè)空間200分配給該節(jié)點(diǎn)。當(dāng)加入節(jié)點(diǎn)n2時(shí),CAN策略將空間200分成兩半,并且將每一半分別分配到節(jié)點(diǎn)n1和n2。當(dāng)加入節(jié)點(diǎn)n3時(shí),CAN策略將右邊的一半劃分成上面的四分之一和下面的四分之一,將上面的四分之一分配給節(jié)點(diǎn)n2,并且將下面的四分之一分配給節(jié)點(diǎn)n3。當(dāng)加入節(jié)點(diǎn)n4時(shí),CAN策略將右下方的四分之一劃分成左面的八分之一(其分配給節(jié)點(diǎn)n3)和右面的八分之一(其分配給節(jié)點(diǎn)n4)。該過(guò)程重復(fù)足夠多的次數(shù),以動(dòng)態(tài)地證明添加或移除了節(jié)點(diǎn)。合成的分區(qū)將邏輯空間定義為用于向分布式哈希表插入對(duì)象,以及從分布式哈希表中檢索對(duì)象。可以這么說(shuō),節(jié)點(diǎn)“擁有”映射到其空間的對(duì)象。
附圖3示出了另一個(gè)涉及CHORD的策略(例如,I.Stoica,R.Morris,D.Karger,M.F.Kaashoek和H.Balakrishnan在“Chord用于互聯(lián)網(wǎng)應(yīng)用的可升級(jí)的對(duì)等查找服務(wù)”,ACM SigComm 2001,San Diego,CA,USA,2001年8月)。在該策略中,DHT邏輯空間構(gòu)造成循環(huán)空間300。DHT節(jié)點(diǎn)是分配的ID,并且基于其所分配的ID,被添加到循環(huán)DHT邏輯空間300。例如,附圖3所示的示例性DHT節(jié)點(diǎn)n1、n2、n3、n4和n5所分配的ID管理它們?cè)谘h(huán)DHT邏輯空間300上的“布局”。如附圖2中的情況,在添加DHT節(jié)點(diǎn)時(shí),該節(jié)點(diǎn)劃分DHT邏輯空間300,確定多個(gè)子空間或區(qū)域。上述區(qū)域確定了每個(gè)節(jié)點(diǎn)“擁有”的對(duì)象。例如,要向附圖3所示的由DHT策略所管理的分布式哈希表中插入一個(gè)對(duì)象,該對(duì)象受一個(gè)哈希函數(shù)控制,而產(chǎn)生一個(gè)關(guān)鍵字。該對(duì)象隨即存儲(chǔ)在該DHT節(jié)點(diǎn),該節(jié)點(diǎn)具有一個(gè)分配給該關(guān)鍵字的區(qū)域(例如,在包含一定范圍的關(guān)鍵字的DHT節(jié)點(diǎn),其中包括對(duì)象的關(guān)鍵字)。在附圖2和附圖3的情況中,可以使用多個(gè)查找策略以快速地在P2P系統(tǒng)中尋找一個(gè)特定節(jié)點(diǎn)。通常,查找策略包括在DHT邏輯空間中制造一些“網(wǎng)絡(luò)段”,以在需要的目標(biāo)DHT節(jié)點(diǎn)上收縮。一般提供多種機(jī)制來(lái)加速該搜索。例如,CHORD策略中的每個(gè)DHT節(jié)點(diǎn)存儲(chǔ)其它DHT節(jié)點(diǎn)的一組ID。上述其它的ID可以以指數(shù)的方式增長(zhǎng),建立所謂的“指針”,其探查邏輯空間300。這允許該查找程序用很少的網(wǎng)絡(luò)段快速地定位想要的DHT節(jié)點(diǎn)。
附圖2和附圖3只提供了兩個(gè)示例性公知DHT路由策略的高級(jí)概述。還有很多其它的策略。例如,另一個(gè)流行的路由策略是PSATRY路由策略,如A.Rowstron和P.Druschel的“Pastry用于大規(guī)模對(duì)等系統(tǒng)的可升級(jí)的分布式對(duì)象定位和路由”中所描述的(關(guān)于分布式系統(tǒng)平臺(tái)(中間設(shè)備)的18thFIFP/ACM國(guó)際會(huì)議,Heidelberg,德國(guó),2001年11月)。
P2P系統(tǒng)為傳統(tǒng)的客戶端—服務(wù)器策略帶來(lái)了很多好處。例如,P2P系統(tǒng)具有自動(dòng)并且自由地?cái)U(kuò)展以及縮小的能力,而無(wú)需中心的協(xié)調(diào)。然而缺乏管理協(xié)調(diào)也引起了很多問(wèn)題。例如,會(huì)期望P2P系統(tǒng)一致行動(dòng)以完成某些整體功能。在很多例子中,會(huì)希望從P2P系統(tǒng)的參與者中聚集數(shù)據(jù)?;蛘邥?huì)希望向P2P系統(tǒng)中的參與者散發(fā)信息。有了客戶端—服務(wù)器方法,服務(wù)器可以簡(jiǎn)單地查詢其客戶端以從客戶端聚集信息,或向其客戶端傳播信息以向客戶端分散信息。然而在P2P系統(tǒng)中,數(shù)據(jù)的搜集和散發(fā)是有問(wèn)題的,由于P2P系統(tǒng)是由相互連接的同位體的自由聯(lián)盟組成的,這些同位體可以來(lái)去自由。添加集中化的傳統(tǒng)的報(bào)告功能性,可以有使P2P系統(tǒng)變復(fù)雜的效果,并且因而降低了它的靈活性和實(shí)用性。
對(duì)于可以和P2P DHT相互作用的有效策略,現(xiàn)有技術(shù)中存在相應(yīng)的示例性需求,其可以允許,例如,從其參與者聚集數(shù)據(jù),以及向其參與者散發(fā)信息。此外,需要有效地組織該P(yáng)2P DHT并且在操作中與其相互作用,這將會(huì)從其效能中受益,例如在應(yīng)用級(jí)多信道廣播操作中。
摘要根據(jù)一個(gè)示例性實(shí)施列,將一個(gè)方法描述為一個(gè)數(shù)據(jù)覆蓋圖。該方法包括提供一個(gè)分布式哈希表(DHT),該表管理向一個(gè)對(duì)等系統(tǒng)插入對(duì)象,或從該系統(tǒng)移除對(duì)象,其中該分布式哈希表包括一個(gè)邏輯空間,該空間包括多個(gè)DHT節(jié)點(diǎn),上述節(jié)點(diǎn)具有多個(gè)相關(guān)聯(lián)的DHT區(qū)域。該方法還包括,通過(guò)聯(lián)合數(shù)據(jù)結(jié)構(gòu)中的對(duì)象和DHT節(jié)點(diǎn),以及通過(guò)在數(shù)據(jù)結(jié)構(gòu)中的對(duì)象之間建立連接,來(lái)構(gòu)建數(shù)據(jù)覆蓋圖,作為分布式哈希表的邏輯空間之上的數(shù)據(jù)結(jié)構(gòu)。該數(shù)據(jù)覆蓋圖具有一個(gè)樹狀拓?fù)?,其中該樹具有與單獨(dú)的DHT節(jié)點(diǎn)相關(guān)聯(lián)的樹節(jié)點(diǎn)。每個(gè)樹節(jié)點(diǎn)具有與其相關(guān)聞的樹節(jié)點(diǎn)區(qū)域,其相應(yīng)于分布式哈希表的邏輯空間的一部分。
機(jī)器映射到DHT的邏輯空間。每個(gè)機(jī)器相應(yīng)于樹節(jié)點(diǎn)區(qū)域中的一個(gè)或更多個(gè)。每個(gè)機(jī)器從與其對(duì)應(yīng)的一個(gè)或多個(gè)樹節(jié)點(diǎn)區(qū)域中,選擇其的一個(gè)代表性節(jié)點(diǎn),該樹節(jié)點(diǎn)相應(yīng)于最大尺寸的樹節(jié)點(diǎn)區(qū)域。每個(gè)代表節(jié)點(diǎn)選擇具有更大尺寸的鄰近樹節(jié)點(diǎn)區(qū)域的代表性節(jié)點(diǎn)作為其父節(jié)點(diǎn)。
在機(jī)器映射到DHT的邏輯空間之后,可以在每臺(tái)機(jī)器上搜集元數(shù)據(jù)。搜集的元數(shù)據(jù)可以從每臺(tái)機(jī)器發(fā)送到其代表性節(jié)點(diǎn),該代表性節(jié)點(diǎn)可以將接收到的元數(shù)據(jù)發(fā)送到它們各自的父節(jié)點(diǎn)。在樹的最高節(jié)點(diǎn)(例如,根節(jié)點(diǎn))接收到的元數(shù)據(jù)通過(guò)各自的父節(jié)點(diǎn)和代表性節(jié)點(diǎn)可以被處理并發(fā)送到每臺(tái)機(jī)器。例如,元數(shù)據(jù)可以是有關(guān)每臺(tái)機(jī)器的操作的信息,處理過(guò)的元數(shù)據(jù)可以是管理每臺(tái)機(jī)器的操作的指令。
下面將描述另外的實(shí)施例和特征。
附圖簡(jiǎn)述結(jié)合附圖參照下面的詳細(xì)描述時(shí),可以更徹底地理解實(shí)施例。其中附圖1示出了傳統(tǒng)的對(duì)等(P2P)系統(tǒng)。
附圖2示出了傳統(tǒng)的CAN路由策略。
附圖3示出了傳統(tǒng)CHORD路由策略。
附圖4示出了一個(gè)傳統(tǒng)技術(shù),用于連接在局部機(jī)器環(huán)境范圍中的數(shù)據(jù)結(jié)構(gòu)的兩個(gè)對(duì)象。
附圖5示出了一個(gè)示例性技術(shù),用于連接P2P分布式哈希表(DHT)環(huán)境中的數(shù)據(jù)結(jié)構(gòu)的兩個(gè)對(duì)象,其中上述兩個(gè)對(duì)象與P2P DHT環(huán)境中的兩個(gè)其它的節(jié)點(diǎn)相關(guān)聯(lián),并且其中該連接技術(shù)形成了位于DHT“頂端”的數(shù)據(jù)覆蓋圖的基礎(chǔ)。
附圖6示出了簡(jiǎn)單的P2P DHT,其中包括一個(gè)環(huán)、一個(gè)區(qū)域和一個(gè)基本路由表,其為每個(gè)邊記錄r鄰近值,其中散列法將區(qū)域指定到DHT節(jié)點(diǎn)。
附圖7示出了示例性樹結(jié)構(gòu),該結(jié)構(gòu)是使用附圖5所示的數(shù)據(jù)覆蓋圖的原理而構(gòu)建,其中該樹結(jié)構(gòu)涉及自組織元數(shù)據(jù)覆蓋圖(SOMO)。
附圖8a-8c示出了自底向上構(gòu)建SOMO的一個(gè)處理的漸進(jìn)式示意圖,其中附圖8a示出了作為參考的一個(gè)幀的局部樹,附圖8b示出了尋找各自的虛擬節(jié)點(diǎn),附圖8c邏輯樹到物理機(jī)器的映射。
附圖9a-9c示出了用于恢復(fù)附圖8c中所示的自底向上SOMO的一個(gè)自縮放處理的漸進(jìn)式示意圖,其中附圖9a示出了附圖8c中的自底向上SOMO,附圖9b示出了添加一臺(tái)物理機(jī)器,該機(jī)器的一個(gè)相應(yīng)代表虛擬節(jié)點(diǎn)在邏輯樹中可以找到,附圖9c示出了修正的邏輯樹到所有物理機(jī)器的映射。
附圖10a示出了用于合并資源的DHT的容量與自底向上SOMO之間的結(jié)合,共同地形成一個(gè)資源庫(kù)。
附圖10b示出了附圖7的SOMO樹結(jié)構(gòu)的示例性應(yīng)用,該應(yīng)用是有關(guān)從P2P系統(tǒng)的參與者聚集信息,以及向P2P系統(tǒng)的參與者散發(fā)信息。
附圖11a示出了應(yīng)用級(jí)多信道廣播的示意性配置,附圖11b示出了通過(guò)使用資源庫(kù)中的助手節(jié)點(diǎn),對(duì)附圖11a所示的配置的改進(jìn),其中圓圈代表應(yīng)用級(jí)多信道廣播的最初成員,矩形表示具有高度數(shù)的可用同位體。
附圖12示出了用于排定單個(gè)應(yīng)用級(jí)多信道廣播對(duì)話的SOMO報(bào)告結(jié)構(gòu),其中每個(gè)節(jié)點(diǎn)發(fā)布其網(wǎng)絡(luò)坐標(biāo),并且?guī)挵ㄔ谄浒l(fā)送到SOMO的報(bào)告中。
附圖13示出了用于實(shí)現(xiàn)P2P系統(tǒng)的一個(gè)參與者的示例性計(jì)算機(jī),其中P2P系統(tǒng)包括建立在其DHT頂端的數(shù)據(jù)覆蓋圖。
在公開和附圖中間,使用相同的數(shù)字指代同樣的組件和特征。系列100數(shù)字指的是附圖1中可以初始地發(fā)現(xiàn)的特征,系列200數(shù)字指的是附圖2中可以原始發(fā)現(xiàn)的特征,系列300數(shù)字指的是附圖3中可以原始發(fā)現(xiàn)的特征,等等。
詳細(xì)描述這里描述的策略是關(guān)于構(gòu)建在分布式哈希表(DHT)的“上面,,的數(shù)據(jù)結(jié)構(gòu),該DHT用在對(duì)等系統(tǒng)中(P2P)。術(shù)語(yǔ)“對(duì)等(P2P)系統(tǒng)”可以描述參與者的任何相互連接,例如附圖1所示的相互連接網(wǎng)絡(luò)100。在一個(gè)實(shí)施例中,P2P系統(tǒng)不需要任何服務(wù)器類型實(shí)體的協(xié)助。參與者可以包括任意類型的實(shí)體,包括個(gè)人計(jì)算機(jī)、膝上型電腦、個(gè)人數(shù)字助理、特定應(yīng)用計(jì)算裝置等。參與者可以通過(guò)路由基礎(chǔ)構(gòu)造的任意組合而彼此互相通信,例如有線和/或無(wú)線通信路由機(jī)構(gòu)、各種各樣的路由器、網(wǎng)關(guān)等。進(jìn)一步,參與者可以通過(guò)網(wǎng)絡(luò)協(xié)議的任意組合而彼此互相通信,例如TCP/IP(例如,互聯(lián)網(wǎng)或企業(yè)內(nèi)部互聯(lián)網(wǎng)提供的)。
更常見(jiàn)的,這里所描述的任何功能可以使用軟件、固件(例如,固定邏輯電路)、人工操作或上述工具的組合。這里使用的術(shù)語(yǔ)“邏輯”或“模塊”一般代表軟件、固件或軟件和固件的組合。例如,在軟件實(shí)現(xiàn)的情況下,術(shù)語(yǔ)“邏輯”或“模塊”代表程序碼,當(dāng)在處理裝置或裝置(例如,一個(gè)CPU或多個(gè)CPU)上執(zhí)行時(shí),上述程序碼實(shí)現(xiàn)特定的任務(wù)。程序碼可以存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)裝置中。
本公開包括以下部分A部分描述了可以構(gòu)建在P2P DHT“上面”的通用數(shù)據(jù)覆蓋圖結(jié)構(gòu);B部分描述了自組織元數(shù)據(jù)覆蓋圖,或“SOMO”;C部分描述了將SOMO應(yīng)用于在P2P系統(tǒng)中聚集和散布信息;D部分描述了使用P2PDHT的應(yīng)用級(jí)多信道廣播;E部分描述了示例性P2P參與者,該參與者可以在P2P DHT系統(tǒng)的類型中與A-D部分中描述的ALM一起使用。
A.P2P DHT之上的數(shù)據(jù)覆蓋圖數(shù)據(jù)覆蓋圖是由對(duì)象組成的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)是在分布式哈希表的“上面”實(shí)現(xiàn)的。作為背景,DHT提供的技術(shù)是用于向P2P系統(tǒng)提供的分布式存儲(chǔ)器插入對(duì)象、以及從上述存儲(chǔ)器中移除對(duì)象。其通過(guò)在邏輯DHT空間中定義DHT節(jié)點(diǎn)的聚集來(lái)執(zhí)行該任務(wù)。就是說(shuō),DHT技術(shù)將每個(gè)DHT節(jié)點(diǎn)分配到DHT邏輯空間的預(yù)定部分,這稱為DHT節(jié)點(diǎn)的“區(qū)域”。例如,在CHORD技術(shù)中,一個(gè)特定DHT節(jié)點(diǎn)的區(qū)域可以解釋為在環(huán)形DHT邏輯空間(例如,如附圖3所示)中特定DHT節(jié)點(diǎn)和它的鄰近節(jié)點(diǎn)之間確定的范圍。通過(guò)散列法存儲(chǔ)一個(gè)對(duì)象以產(chǎn)生一個(gè)關(guān)鍵字,隨后使用該關(guān)鍵字,使用DHT邏輯空間中的特定節(jié)點(diǎn)ID來(lái)分配該對(duì)象。以相關(guān)的方式從DHT邏輯空間中檢索該對(duì)象。相關(guān)聯(lián)的區(qū)域最終映射到真實(shí)機(jī)器(例如,計(jì)算機(jī)裝置和相關(guān)原文件存儲(chǔ)系統(tǒng)),然而在節(jié)點(diǎn)和機(jī)器之間不需要存在一對(duì)一關(guān)系。
數(shù)據(jù)覆蓋圖實(shí)現(xiàn)在DHT的“上面”,在某種意義上它的對(duì)象與DHT邏輯空間中的節(jié)點(diǎn)相關(guān)聯(lián)。進(jìn)一步,一個(gè)應(yīng)用使用下列P2P DHT的協(xié)議和服務(wù),從數(shù)據(jù)覆蓋圖的數(shù)據(jù)結(jié)構(gòu)中的一個(gè)對(duì)象遍歷(或路由)到另一個(gè)對(duì)象。更具體地,對(duì)于參考的幀,考慮單機(jī)環(huán)境402的附圖4的傳統(tǒng)情況。在環(huán)境402中,數(shù)據(jù)結(jié)構(gòu)包括兩個(gè)對(duì)象,a404和b402,在由單機(jī)提供的存儲(chǔ)器中實(shí)現(xiàn)。對(duì)象大致地表示任何類型信息的任何單元;在傳統(tǒng)情況中,例如,一個(gè)對(duì)象可以對(duì)應(yīng)于數(shù)據(jù)庫(kù)記錄,例如,一個(gè)文檔。在附圖4的例子中,對(duì)象a404包括一個(gè)指向?qū)ο骲406的指針408。
相反,附圖5示出了P2P DHT環(huán)境502的關(guān)聯(lián)中的數(shù)據(jù)覆蓋圖的實(shí)現(xiàn)。在該環(huán)境502中,由于對(duì)象是構(gòu)建在已由DHT提供的DHT節(jié)點(diǎn)構(gòu)架“之上”,DHT邏輯空間中的單個(gè)節(jié)點(diǎn)是數(shù)據(jù)覆蓋圖中對(duì)象的“宿主”。例如,DHT節(jié)點(diǎn)x504是對(duì)象a506的寄主,DHT節(jié)點(diǎn)y508是對(duì)象b510的寄主。在上述例子中,對(duì)象a506引用對(duì)象b510。通常,對(duì)象a506可以通過(guò)存儲(chǔ)用于訪問(wèn)對(duì)象b510的關(guān)鍵字來(lái)連接到對(duì)象b510。當(dāng)創(chuàng)建對(duì)象b510時(shí)建立該關(guān)鍵字。然而,在附圖5的情況中,引用方案包括兩個(gè)域。第一域512包括一個(gè)從對(duì)象a506指向?qū)ο骲510的硬連線地址。該域被稱為a.foo.key。第二域514包括一個(gè)軟狀態(tài)引用,其標(biāo)識(shí)作為對(duì)象b510的宿主的最后已知DHT節(jié)點(diǎn)(例如,節(jié)點(diǎn)y508)。該域被稱為a.foo.host。因而第二域514作為訪問(wèn)對(duì)象b510的路由捷徑。
由于數(shù)據(jù)覆蓋圖的節(jié)點(diǎn)可以分布在多個(gè)DHT節(jié)點(diǎn)上,該數(shù)據(jù)覆蓋圖本身可以看作是分布式數(shù)據(jù)結(jié)構(gòu)。雖然數(shù)據(jù)結(jié)構(gòu)是分布式的,仍然希望以一種方式存儲(chǔ)它,即其對(duì)象不會(huì)在地理上過(guò)度廣泛地分散。這可以通過(guò)生成a506和b510的關(guān)鍵字來(lái)實(shí)現(xiàn),這樣它們彼此接近。這樣會(huì)更可能地造成,P2P DHT系統(tǒng)會(huì)使上述關(guān)鍵字與P2P系統(tǒng)的相同節(jié)點(diǎn)關(guān)聯(lián),或與P2P DHT系統(tǒng)中的緊密相關(guān)的節(jié)點(diǎn)關(guān)聯(lián)。
數(shù)據(jù)覆蓋圖還提供了基元的集合,該基元用于操作其數(shù)據(jù)結(jié)構(gòu)中的指針和對(duì)象。更具體地,上述基元包括一個(gè)程序(setref),用于建立從對(duì)象a到另一個(gè)對(duì)象b;一個(gè)程序(deref),用于返回由對(duì)象a所指向的對(duì)象;一個(gè)程序,用于刪除(delete)由對(duì)象a所指向的對(duì)象。
由于數(shù)據(jù)覆蓋圖是在DHT系統(tǒng)的上面實(shí)現(xiàn)的,它的基元是DHT的服務(wù)。例如,該基元可以使用DHT_insert服務(wù),用于將一個(gè)對(duì)象插入到DHT邏輯空間。該基元可以使用DHT_lookup服務(wù),用于使用一個(gè)預(yù)定的DHT路由程序來(lái)基于DHT邏輯空間中它的關(guān)鍵字而尋找尋找一個(gè)對(duì)象(例如由CHORD使用的指數(shù)指針查找結(jié)構(gòu)。并且該基元還可以使用DHT_direct程序,用于如果預(yù)先已知存儲(chǔ)對(duì)象的DHT節(jié)點(diǎn)時(shí),訪問(wèn)該對(duì)象。換句話說(shuō),DHT_direct繞過(guò)通常的DHT_lookup路由程序,并且直接搜索節(jié)點(diǎn),該節(jié)點(diǎn)作為已經(jīng)出其關(guān)鍵字的對(duì)象的宿主。作為副作用,DHT_lookup和DHT_insert將會(huì)返回DHT中當(dāng)前作為目標(biāo)對(duì)象的宿主的DHT節(jié)點(diǎn)。
可以通過(guò)調(diào)整無(wú)論哪種用來(lái)創(chuàng)建對(duì)象的庫(kù)存程序,使用數(shù)據(jù)覆蓋圖的潛在服務(wù),而實(shí)現(xiàn)一個(gè)數(shù)據(jù)覆蓋圖,以便使上述例行程序還建立如上所述作為對(duì)象的屬性的指針。還可以調(diào)整上述庫(kù)存程序來(lái)適應(yīng)上述的基元以設(shè)置一個(gè)引用,通過(guò)引用返回一個(gè)被指向的對(duì)象,以及通過(guò)一個(gè)引用刪除被指向的對(duì)象。
在DHT的上面構(gòu)建數(shù)據(jù)覆蓋圖有很多優(yōu)點(diǎn)。例如,當(dāng)向DHT邏輯空間添加或刪除DHT節(jié)點(diǎn)時(shí)(分別與真實(shí)的機(jī)器加入和離開P2P系統(tǒng)有關(guān)),DHT設(shè)計(jì)成自組織的。DHT還設(shè)計(jì)成響應(yīng)于DHT節(jié)點(diǎn)添加到DHT邏輯空間或從DHT邏輯空間刪除(例如重建節(jié)點(diǎn)間的連接,在節(jié)點(diǎn)間傳送對(duì)象等),而自動(dòng)地結(jié)束其自身。由于數(shù)據(jù)覆蓋圖是在DHT的上面實(shí)現(xiàn)的,其還可以采用自組織和自結(jié)束的特征。更具體地,數(shù)據(jù)覆蓋圖可以配置為以同樣的比例自組織和自結(jié)束,作為潛在DHT。
進(jìn)一步,可以輸入多種應(yīng)用程序以在P2P DHT的上面運(yùn)行,給上述應(yīng)用程序以無(wú)限大存儲(chǔ)空間的效應(yīng)(例如,給出這樣的印象,即具有大尺寸包括DHT邏輯空間的節(jié)點(diǎn)的資源庫(kù))。該存儲(chǔ)空間大致地包括參與P2P DHT系統(tǒng)的機(jī)器中的大量存儲(chǔ)器。宿主路由捷徑(例如,a.foo.host)利用數(shù)據(jù)覆蓋圖使應(yīng)用程序的性能與下面的DHT系統(tǒng)無(wú)關(guān)。
在DHT中,假定一個(gè)非常大的邏輯空間(例如,160位)。節(jié)點(diǎn)以隨機(jī)的ID加入該空間,并且因而均勻地分割該空間。例如ID可以是節(jié)點(diǎn)的IP地址上的MD5哈希信號(hào)。接下來(lái),有規(guī)則的設(shè)置節(jié)點(diǎn),允許依次嚴(yán)格地確定一個(gè)節(jié)點(diǎn)的負(fù)責(zé)的區(qū)域。設(shè)定p和q分別是節(jié)點(diǎn)x的前任和繼任。一個(gè)節(jié)點(diǎn)的區(qū)域的確定就只是在其緊接的前任ID(不包括)和其自身的ID之間的空間。換句話說(shuō),zone(x)=[ID(p),ID(x)]。
附圖6示出了將DHT看作一個(gè)邏輯空間的方法,其中每個(gè)節(jié)點(diǎn)在邏輯空間中占用一個(gè)邏輯位置,邏輯空間被分割了。同樣地,每個(gè)節(jié)點(diǎn)需要記得它的一些鄰近的鄰居,以使該邏輯空間是連貫的。一臺(tái)新機(jī)器選擇一個(gè)隨機(jī)ID并加入該DHT。該新機(jī)器聯(lián)系任何一個(gè)節(jié)點(diǎn),搜索以尋找一個(gè)位置,并且因而為自己分割了邏輯空間,以使樹是自組織和自結(jié)束的。當(dāng)一臺(tái)機(jī)器的離開被其鄰近的鄰居機(jī)器監(jiān)視到時(shí),因此機(jī)器與DHT分離,該分離是當(dāng)分離的機(jī)器不再發(fā)送“心跳”通信以表示它的存在時(shí)發(fā)生的,這時(shí)會(huì)發(fā)生自結(jié)束的情況。因而可以呈現(xiàn)一臺(tái)新機(jī)器。
附圖6還可以看作最基本地示出了相容的散列法如何指定區(qū)域到DHT節(jié)點(diǎn),其中使用了一個(gè)環(huán)、一個(gè)區(qū)域和一個(gè)基本路由表。為了靠著系統(tǒng)物力論加固該環(huán),每個(gè)節(jié)點(diǎn)記錄r個(gè)鄰居到基本路由表的每個(gè)邊,這通常稱為葉集合。鄰居們交換定期的通信以顯示它們的存在(例如,“心跳”),以及當(dāng)一個(gè)節(jié)點(diǎn)加入/離開或當(dāng)有事件發(fā)生時(shí),升級(jí)它們的路由表。在附圖6中看到的基本環(huán)是一個(gè)簡(jiǎn)單的P2P DHT。如果想象該區(qū)域是常見(jiàn)哈希表中的哈希存儲(chǔ)桶,那么該環(huán)就是一個(gè)DHT。給出一個(gè)空間中的關(guān)鍵字,通??梢越鉀Q正在負(fù)責(zé)的節(jié)點(diǎn)。在該簡(jiǎn)單環(huán)結(jié)構(gòu)中的查找性能是O(N),其中N是系統(tǒng)中節(jié)點(diǎn)的數(shù)量。
根據(jù)上述內(nèi)容建立的算法以O(shè)(logN)或者甚至常數(shù)狀態(tài)(例如,路由表實(shí)體)達(dá)到O(logN)。代表性系統(tǒng)包括CAN分割方案、CHORD分割方案等。DHT的整個(gè)系統(tǒng)是以一個(gè)內(nèi)務(wù)操作而自組織的,該內(nèi)務(wù)操作代表性的順序是O(logN)。并且,一個(gè)DHT是虛擬的空間,其中資源和其它實(shí)體(例如存儲(chǔ)在DHT中的文檔)相互依存。
B.SOMO樹結(jié)構(gòu);數(shù)據(jù)覆蓋圖的實(shí)例上述數(shù)據(jù)覆蓋圖提供了一個(gè)構(gòu)架,用于在DHT之上建造一個(gè)任意的數(shù)據(jù)結(jié)構(gòu)。該數(shù)據(jù)結(jié)構(gòu)包括多個(gè)對(duì)象,組成了數(shù)據(jù)結(jié)構(gòu)中的節(jié)點(diǎn)。該數(shù)據(jù)結(jié)構(gòu)可以通過(guò)以不同方式將節(jié)點(diǎn)連接在一起,來(lái)假定任何形式的拓?fù)?。進(jìn)一步,該數(shù)據(jù)結(jié)構(gòu)可以根據(jù)指定到其各個(gè)節(jié)點(diǎn)的操作,而實(shí)現(xiàn)不同的功能。下面的部分描述了被稱為“自組織元數(shù)據(jù)覆蓋圖”,或簡(jiǎn)稱為“SOMO”的數(shù)據(jù)覆蓋圖的例子。
SOMO數(shù)據(jù)結(jié)構(gòu)是構(gòu)建來(lái)假設(shè)一個(gè)樹結(jié)構(gòu)的拓?fù)?。SOMO樹結(jié)構(gòu)具有根結(jié)點(diǎn)。該根節(jié)點(diǎn)可以具有一個(gè)或更多子節(jié)點(diǎn),該節(jié)點(diǎn)依次分別具有其自身的子節(jié)點(diǎn)。SOMO樹結(jié)構(gòu)的末端節(jié)點(diǎn)稱為葉節(jié)點(diǎn)。該葉節(jié)點(diǎn)分別與P2P DHT系統(tǒng)的DHT邏輯空間中各自的DHT節(jié)點(diǎn)相關(guān)聯(lián)。
如下面要更詳細(xì)地描述的,SOMO樹結(jié)構(gòu)的一個(gè)功能是從DHT節(jié)點(diǎn)提取元數(shù)據(jù)(其最終包括從實(shí)現(xiàn)P2P系統(tǒng)的機(jī)器提取數(shù)據(jù)),并且通過(guò)SOMO樹傳遞該元數(shù)據(jù)到SOMO樹結(jié)構(gòu)的根節(jié)點(diǎn)。一個(gè)應(yīng)用程序可以讀取該元數(shù)據(jù)并且基于該元數(shù)據(jù)執(zhí)行一些操作(元數(shù)據(jù)通常指與P2P系統(tǒng)中執(zhí)行的操作相關(guān)聞的任何類型的信息,例如有關(guān)包括P2P系統(tǒng)的機(jī)器的性能的信息)。SOMO樹結(jié)構(gòu)還可以用于從SOMO樹的根節(jié)點(diǎn)向下散發(fā)信息到P2P系統(tǒng)中的DHT節(jié)點(diǎn)以及相關(guān)的機(jī)器。因而,一般來(lái)說(shuō),SOMO樹結(jié)構(gòu)可以用作數(shù)據(jù)聚集(例如,集合)和數(shù)據(jù)廣播。
附圖7示出了構(gòu)建在基礎(chǔ)的DHT邏輯空間704之上的示例性SOMO樹結(jié)構(gòu)702。DHT邏輯空間704分割成很多區(qū)域,例如示例性區(qū)域706和示例性區(qū)域708。每個(gè)區(qū)域包括一個(gè)與其相關(guān)聯(lián)的DHT節(jié)點(diǎn),例如示例性DHT節(jié)點(diǎn)710。該DHT可以根據(jù)任何技術(shù)將DHT邏輯空間704分割成區(qū)域,例如由CAN分割方案、CHORD分割方案、PASTRY分割方案或任何類型的DHT分割方案提供的示例性技術(shù)。例如,使用CHORD分割方案,DHT邏輯空間704可以確定為一個(gè)環(huán),該環(huán)具有分散在不同位置環(huán)繞它的節(jié)點(diǎn),并且該區(qū)域可以相應(yīng)于在環(huán)上分離相鄰鄰近DHT節(jié)點(diǎn)的跨度。
SOMO樹結(jié)構(gòu)702包括一個(gè)或更多在這里稱為“SOMO節(jié)點(diǎn)”以將它們與DHT節(jié)點(diǎn)分辨開的節(jié)點(diǎn)。每個(gè)SOMO節(jié)點(diǎn)由符號(hào)s表示。附圖7所示的示例性SOMO樹結(jié)構(gòu)702包括SOMO節(jié)點(diǎn)s712-726。節(jié)點(diǎn)s712-726形成一個(gè)反向的樹形。也就是說(shuō),根節(jié)點(diǎn)712分叉成子節(jié)點(diǎn)714和子節(jié)點(diǎn)716。上述子節(jié)點(diǎn)分別具有它們自己的兩個(gè)子節(jié)點(diǎn);例如,子節(jié)點(diǎn)714包括子節(jié)點(diǎn)718和子節(jié)點(diǎn)720。雖然為了方便解說(shuō)和討論,簡(jiǎn)化了附圖7中示例性SOMO樹結(jié)構(gòu)702的全部結(jié)構(gòu),SOMO樹結(jié)構(gòu)702最終結(jié)束在建立于DHT邏輯空間704中相應(yīng)的DHT節(jié)點(diǎn)上的葉節(jié)點(diǎn)(例如,葉節(jié)點(diǎn)722、724、726)。通常,SOMO樹結(jié)構(gòu)702中SOMO節(jié)點(diǎn)之間的連接如附圖7中的點(diǎn)線所示,其將SOMO節(jié)點(diǎn)連接在一起;該連接可以使用如前面“數(shù)據(jù)覆蓋圖”部分所述的引用方案來(lái)實(shí)現(xiàn)。
每個(gè)SOMO節(jié)點(diǎn)s具有一個(gè)與其相關(guān)聯(lián)的區(qū)域。例如,根SOMO節(jié)點(diǎn)712包括區(qū)域728,其橫越了整個(gè)DHT邏輯空間704。子節(jié)點(diǎn)716包括區(qū)域730,其橫越了根節(jié)點(diǎn)712的區(qū)域728的一半。SOMO樹結(jié)構(gòu)702中更低的另一個(gè)子節(jié)點(diǎn)720具有區(qū)域732,該區(qū)域是根節(jié)點(diǎn)712的區(qū)域728的四分之一。相應(yīng)地,添加到SOMO樹結(jié)構(gòu)702的體系中的相續(xù)節(jié)點(diǎn)s導(dǎo)致逐漸地密集分割根節(jié)點(diǎn)712的區(qū)域728。同樣,由于展示密集(denser)分割空間704的DHT邏輯空間704的上述區(qū)域,SOMO樹結(jié)構(gòu)702的體系長(zhǎng)得“更高”。通常,附圖7通過(guò)橫越SOMO節(jié)點(diǎn)的各自區(qū)域的長(zhǎng)度的水平箭頭,表現(xiàn)與各個(gè)SOMO節(jié)點(diǎn)相關(guān)聯(lián)的區(qū)域。一個(gè)作為特定SOMO節(jié)點(diǎn)s的宿主的DHT節(jié)點(diǎn)由DHT_host(s)表示。
如上所述,要實(shí)現(xiàn)P2P資源庫(kù),應(yīng)當(dāng)用系統(tǒng)內(nèi)監(jiān)視基礎(chǔ)結(jié)構(gòu)來(lái)增大DHT,這是因?yàn)閷?duì)于一個(gè)大型系統(tǒng)來(lái)說(shuō),依賴外部監(jiān)視服務(wù)是不切實(shí)際的。上述基礎(chǔ)結(jié)構(gòu)必須滿足一些關(guān)鍵特性(1)作為宿主DHT在相同規(guī)模上自組織;(2)完全分布式以及自結(jié)束;以及(3)對(duì)于元數(shù)據(jù)的聚集和分散,要盡可能地精確。如下面描述的,這里被提議的SOMO是自下至上建造的。
上述監(jiān)視基礎(chǔ)結(jié)構(gòu)可以有很多個(gè)拓?fù)?。由于資源庫(kù)的緣故,最重要的功能之一是聚集。因此,SOMO是一個(gè)k級(jí)的樹,其葉子是種植在每個(gè)DHT節(jié)點(diǎn)。從末端聚集信息,并且向根部傳播。因而,可以將SOMO看作從葉到根的“會(huì)聚記錄”,并且隨后(隨意地)再次從根到葉返回傳播。聚集和分散狀態(tài)是由O(logkN)限制的,其中N是對(duì)象的總數(shù)。SOMO中的每個(gè)操作包括不多于k+1個(gè)相互作用,這使其充分地分布。通過(guò)使用軟狀態(tài)的原理,可以在O(logkN)時(shí)間生成數(shù)據(jù)。SOMO樹在同樣的時(shí)間范圍內(nèi)自組織和自結(jié)束。在某種程度上,SOMO可以看作響應(yīng)的“新聞傳播”,其結(jié)構(gòu)和處理被所有節(jié)點(diǎn)共享。該實(shí)時(shí)全球“新聞”創(chuàng)造了資源庫(kù)的效應(yīng)。
B.1構(gòu)建SOMOSOMO的核心思想是,取代與多個(gè)單獨(dú)機(jī)器中的每個(gè)共同工作并且將它們配置成一個(gè)體系,首先在一個(gè)邏輯空間中“繪制”一個(gè)樹,隨后制造從邏輯樹到實(shí)際機(jī)器的映射。
如上所述,數(shù)據(jù)覆蓋圖可以生成和縮減,作為在基礎(chǔ)DHT中制造的動(dòng)態(tài)及無(wú)人管理調(diào)整的一個(gè)功能。由于SOMO樹結(jié)構(gòu)702是數(shù)據(jù)覆蓋圖的一個(gè)例子,這意味著SOMO樹結(jié)構(gòu)702也具有響應(yīng)于基礎(chǔ)DHT的調(diào)整而生成和縮減的能力。同樣,SOMO樹結(jié)構(gòu)和其基礎(chǔ)DHT一樣,具有自我結(jié)束以平衡基礎(chǔ)DHT中的調(diào)整的能力。下面的子部分描述了一種方式,其中SOMO樹結(jié)構(gòu)702的發(fā)展響應(yīng)于其基礎(chǔ)DHT中的改變。
B.2構(gòu)建邏輯樹邏輯樹的功能是作為引用框架,其幫助所有P2P庫(kù)中的機(jī)器以完全分布式和自動(dòng)方式組織成一個(gè)體系。其由一系列虛擬節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)具有附圖8a所示的一個(gè)關(guān)鍵字,這還確定了它在一個(gè)有維DHT邏輯空間中的位置。
構(gòu)建樹的第一不變量是每個(gè)虛擬節(jié)點(diǎn)具有空間的一部分;虛擬節(jié)點(diǎn)的關(guān)鍵字是其具有的子空間的中心。假定DHT邏輯空間是
,那么根虛擬節(jié)點(diǎn)的關(guān)鍵字是0.5。然后將根虛擬節(jié)點(diǎn)的空間(在該點(diǎn)的整個(gè)邏輯空間)均勻地劃分成k個(gè)子空間,每個(gè)子空間在第一級(jí)有一個(gè)虛擬節(jié)點(diǎn)。遞歸地應(yīng)用該劃分方法,則構(gòu)建了一個(gè)邏輯樹。因此,第i級(jí)總共包括ki個(gè)虛擬節(jié)點(diǎn),其中每個(gè)虛擬節(jié)點(diǎn)具有1/ki大小的子空間。具體地,第i級(jí)的第j個(gè)(0<j=<2i)虛擬節(jié)點(diǎn)具有[j/ki,(j+1)/kj]的空間,并且關(guān)鍵/定位在(2j+1)/2ki,其中“k”是度而“i”是級(jí)。相應(yīng)地,附圖8a-8c所示的示例性過(guò)程是用于構(gòu)建一個(gè)自底向上SOMO樹結(jié)構(gòu)。
B.3映射到A物理樹當(dāng)每臺(tái)機(jī)器在P2P環(huán)境中找到它的父機(jī)器時(shí),就構(gòu)建了物理樹。這可以通過(guò)以如上所構(gòu)建的邏輯樹為杠桿以完全分布式的方式實(shí)現(xiàn)。由于所有機(jī)器具有邏輯樹的全部知識(shí),使用一個(gè)以級(jí)為次序樹遍歷算法,每臺(tái)機(jī)器選擇落入其區(qū)域的最高虛擬節(jié)點(diǎn)。該虛擬節(jié)點(diǎn)表示最終物理樹中的該機(jī)器,并且同樣地它可以稱為機(jī)器x的代表性節(jié)點(diǎn)或repre(x)。邏輯樹的確定性本性意味著x可以計(jì)算repre(x)的父虛擬節(jié)點(diǎn)的關(guān)鍵字。如附圖8b所示,使用DHT查找,x作為該關(guān)鍵字的宿主的機(jī)器y,并且建立到y(tǒng)的連接。每臺(tái)機(jī)器僅僅使用本地知識(shí)(區(qū)域和確定性局部樹拓?fù)?執(zhí)行同樣的方法。通過(guò)一對(duì)局部關(guān)鍵字標(biāo)識(shí)所有子—父連接指向子機(jī)器的代表性虛擬節(jié)點(diǎn)和指向父機(jī)器的相應(yīng)父虛擬節(jié)點(diǎn)。使用“心跳”保持該連接并且一直保持上述不變量。例如,如果由于新鄰居的加入,x的區(qū)域分裂了,x會(huì)斷開所有連接,其父—結(jié)束點(diǎn)不再屬于該區(qū)域。在這時(shí),該連接另一端的機(jī)器會(huì)通過(guò)執(zhí)行早先概述的相同方法,重建它們的父機(jī)器,因而該拓?fù)渥越Y(jié)束的一個(gè)例子見(jiàn)附圖9a-9c所示的示例性方法。
上述方法可以理解為將機(jī)器映射到DHT的邏輯空間。每臺(tái)機(jī)器對(duì)應(yīng)于一個(gè)或更多樹節(jié)點(diǎn)區(qū)域。每臺(tái)機(jī)器從一個(gè)或更多與其對(duì)應(yīng)的樹節(jié)點(diǎn)區(qū)域,選擇與最大尺寸的樹節(jié)點(diǎn)區(qū)域相對(duì)應(yīng)的樹節(jié)點(diǎn),作為其代表性節(jié)點(diǎn)。每個(gè)代表性節(jié)點(diǎn)選擇另一個(gè)代表性節(jié)點(diǎn)作為其父節(jié)點(diǎn),上述另一個(gè)代表性節(jié)點(diǎn)是對(duì)于相鄰樹節(jié)點(diǎn)區(qū)域來(lái)說(shuō)具有最大尺寸的代表性節(jié)點(diǎn)。一個(gè)用于選擇代表性和父節(jié)點(diǎn),包括根節(jié)點(diǎn)的示例性方法,如附圖8a-8c所示。如附圖7所示,隨著樹的級(jí)數(shù)的減小,樹節(jié)點(diǎn)區(qū)域的尺寸也減小,其中第一級(jí)是根節(jié)點(diǎn),其具有相應(yīng)于DHT邏輯空間的整個(gè)橫越的樹節(jié)點(diǎn)區(qū)域。
上述方法以完全分布式的方式將物理機(jī)器組織成一個(gè)樹。進(jìn)一步,樹是以很高的概率作為k級(jí)并且對(duì)稱的。代表性虛擬節(jié)點(diǎn)的確定在于它是落入機(jī)器區(qū)域的最高虛擬節(jié)點(diǎn)。由于父虛擬節(jié)點(diǎn)屬于一些其它機(jī)器,每臺(tái)機(jī)器都是連接著的。結(jié)果圖沒(méi)有任何的環(huán),因?yàn)檫@會(huì)干擾代表性節(jié)點(diǎn)的確定。因而,它必須是一個(gè)樹。邏輯樹拓?fù)涫谴_定性,只有一臺(tái)機(jī)器的其它輸入需要DHT空間中它自己的區(qū)域。因而,樹的構(gòu)建是完全分布式的。邏輯樹是k級(jí)對(duì)稱樹。物理樹是否也是k級(jí)并且對(duì)稱的,主要由區(qū)域分布所決定。由于DHT中機(jī)器的ID是隨機(jī)生成的,結(jié)果樹有很高的概率是k級(jí)并對(duì)稱的。
SOMO可以自動(dòng)地處理成員的變化,而且付出最小的代價(jià),因?yàn)槊總€(gè)連接是由一對(duì)邏輯點(diǎn)決定的第一點(diǎn)是代表性虛擬節(jié)點(diǎn),并且是由其DHT節(jié)點(diǎn)確定的,第二點(diǎn)也是由于第一點(diǎn)的給出而是確定性的。因而,只要保持該不變量,可以在成員變化的任何時(shí)候重建拓?fù)洹=Y(jié)果,當(dāng)新成員加入該庫(kù)時(shí),SOMO樹生長(zhǎng),當(dāng)如附圖9a-9c所示,同位體分離時(shí),SOMO樹縮減。相應(yīng)地,用于結(jié)束自底向上SOMO樹結(jié)構(gòu)的示例性過(guò)程如附圖9a-9c所示。
如果需要將一臺(tái)具有最大容量的機(jī)器放置在邏輯樹的頂端,節(jié)點(diǎn)ID可以改變,而不是隨機(jī)地生成。隨后通過(guò)SOMO制造向上的合并分類來(lái)標(biāo)識(shí)最大容量的節(jié)點(diǎn)。于是該節(jié)點(diǎn)將自身ID改變成當(dāng)前具有SOMO根邏輯點(diǎn)的節(jié)點(diǎn)(即,整個(gè)空間
的0.5),這有效地改變了作為根的機(jī)器,而不擾亂其它同位體。通過(guò)首先在邏輯空間中操作,該自最優(yōu)化特性成為可能。
C.元數(shù)據(jù)集合和分散作為基礎(chǔ)結(jié)構(gòu)的SOMO既不影響聚集的數(shù)據(jù),也不影響被調(diào)用來(lái)處理聚集的數(shù)據(jù)的操作。由于建造資源庫(kù)的緣故,每臺(tái)機(jī)器只聚集自身的資源度量,使其資源度量與從其子節(jié)點(diǎn)接收到的相結(jié)合,然后將它們并入其父節(jié)點(diǎn)。傳送的數(shù)據(jù)應(yīng)當(dāng)是軟狀態(tài)的。同樣,作為最優(yōu)化,報(bào)告可以是連續(xù)報(bào)告的“德?tīng)査毙问健?br>
SOMO的特性是由物理樹的高度決定的,這接下來(lái)是由邏輯數(shù)的參數(shù)(即k)和邏輯空間中DHT節(jié)點(diǎn)的分散所決定的。由于節(jié)點(diǎn)的ID是隨機(jī)的,物理樹的高度是O(logkN)。因而,給定一個(gè)數(shù)據(jù)報(bào)告間隔T,從SOMO葉和花到其根聚集信息的最大延遲是logkN·T。當(dāng)SOMO的層級(jí)之間的流完全非同步時(shí),導(dǎo)出該范圍。如果SOMO的上部節(jié)點(diǎn)對(duì)報(bào)告的呼叫立即觸發(fā)了其子節(jié)點(diǎn)的相同動(dòng)作,那么等待時(shí)間可以減小到T+thop·logkN,其中thop是宿主DHT中一個(gè)往返的平均等待時(shí)間。非同步流的等待時(shí)間范圍是logkN·T,因而實(shí)際中同步形式的范圍是T(例如,5分鐘)。注意O(thop·logkN)是絕對(duì)低的范圍。對(duì)于2M節(jié)點(diǎn)并且k=8以及每DHT節(jié)點(diǎn)間路徑200ms的代表性等待時(shí)間,SOMO根將具有1.6s延遲的全局瀏覽。
C.1應(yīng)用SOMO樹結(jié)構(gòu)如上所述,SOMO樹結(jié)構(gòu)702的示例性使用是從由DHT邏輯空間704表示的P2P系統(tǒng)的物理機(jī)器中聚集信息。SOMO樹結(jié)構(gòu)702的另一個(gè)示例性使用是散布信息到上述物理機(jī)器。所聚集的信息可以是元數(shù)據(jù)。元數(shù)據(jù)描述了關(guān)于P2P系統(tǒng)的操作的信息,例如反映了其物理機(jī)器的性能的信息。散布到物理機(jī)器的信息可以表現(xiàn)能夠管理物理機(jī)器的操作的指令。因而可以將SOMO機(jī)制解釋為從葉節(jié)點(diǎn)到SOMO根節(jié)點(diǎn)的聚集傳送,以提供數(shù)據(jù)的聚集,并且執(zhí)行一個(gè)返回到SOMO葉節(jié)點(diǎn)的多點(diǎn)傳送以提供數(shù)據(jù)散布。
附圖10a示出了DHT的聚集資源的能力與SOMO的結(jié)合,該結(jié)合共同地制造一個(gè)由一個(gè)DHT和一個(gè)SOMO組成的P2P資源庫(kù)。簡(jiǎn)單來(lái)說(shuō),DHT不是用于共享數(shù)據(jù),而是用作將大量資源采集到一起的有效方式,伴有極少或沒(méi)有管理代價(jià),以及沒(méi)有可量測(cè)的阻礙。SOMO是在DHT上分層次的自組織“新聞廣播”。隨后O(logN)時(shí)間的聚集資源狀態(tài)創(chuàng)建單個(gè)資源庫(kù)的效應(yīng)。附圖10a所示的過(guò)程示出了資源對(duì)偶的登記、統(tǒng)計(jì)數(shù)字的聚集、將聚集的統(tǒng)計(jì)數(shù)字聚集成一個(gè)快照,然后確保結(jié)果動(dòng)態(tài)數(shù)據(jù)庫(kù)能夠被應(yīng)用程序查詢。P2P資源的比例和組成需要每一層徹底地自組織、自擴(kuò)展和自結(jié)束,以使實(shí)現(xiàn)很小的管理代價(jià)。
例如,附圖10b表示一個(gè)方案1002,其中SOMO樹結(jié)構(gòu)1004用于通過(guò)DHT邏輯空間1008,從P2P系統(tǒng)中的物理機(jī)器1006聚集信息。更具體地,葉SOMO節(jié)點(diǎn)從其宿主DHT節(jié)點(diǎn)檢索需要的信息(作為副作用,該方法還可以重啟一個(gè)子SOMO節(jié)點(diǎn),如果它由于其宿主DHT節(jié)點(diǎn)的崩潰而已經(jīng)消失)。一個(gè)或更多應(yīng)用程序1010可以為任何已確定的目的調(diào)用該聚集操作(例如為了性能監(jiān)視的目的,也就是說(shuō),聚集有關(guān)包含P2P系統(tǒng)的物理基礎(chǔ)結(jié)構(gòu)的不同負(fù)載和容量的信息)。
更具體地,附圖10b示出了SOMO樹結(jié)構(gòu)1004的配置,該配置通過(guò)示出具有箭頭的線來(lái)采集信息,該箭頭從每個(gè)SOMO節(jié)點(diǎn)指向其對(duì)應(yīng)父SOMO節(jié)點(diǎn)。以這種方式,信息從SOMO樹結(jié)構(gòu)1004的葉SOMO節(jié)點(diǎn)向上傳送到其根SOMO節(jié)點(diǎn)。應(yīng)用程序1010可以從根SOMO節(jié)點(diǎn)提取從整個(gè)P2P系統(tǒng)挑選信息的全部報(bào)告。該報(bào)告可以包括原始未組織數(shù)據(jù)??蛇x地,該報(bào)告可以包括合成并經(jīng)過(guò)分類的數(shù)據(jù),證明SOMO節(jié)點(diǎn)已配置為在將它們聚集的信息傳送到它們相應(yīng)的父SOMO節(jié)點(diǎn)之前,先執(zhí)行該功能。該SOMO節(jié)點(diǎn)可以配置為通過(guò)配置“op”成分來(lái)執(zhí)行該任務(wù)以執(zhí)行合并及分類。例如,成分op可以確定一個(gè)操作,特定SOMO節(jié)點(diǎn)可以在傳送經(jīng)過(guò)它的信息上執(zhí)行該操作(在數(shù)據(jù)聚集模式或數(shù)據(jù)散布模式中)。例如,參照附圖7,op可以指定在使用SOMO樹結(jié)構(gòu)702聚集信息的過(guò)程中,可以執(zhí)行合并分類操作。由于包括op成分,SOMO樹結(jié)構(gòu)702可以以分布方式或并行方式執(zhí)行任何功能。因而,SOMO樹結(jié)構(gòu)702還可以看作一個(gè)機(jī)構(gòu),用于提供分布式并行處理框架以實(shí)現(xiàn)任何類型的功能性。這僅僅是示例性的例子。SOMO節(jié)點(diǎn)可以在信息通過(guò)SOMO節(jié)點(diǎn)到根SOMO節(jié)點(diǎn)的路徑中,在該信息上執(zhí)行其它操作,例如多種算術(shù)操作。
下面的偽碼提供了一種技術(shù),用于使用SOMO樹結(jié)構(gòu)1004來(lái)聚集信息偽碼SOMO聚集程序<pre listing-type="program-listing"><![CDATA[ get_report(SOMO_node s){ Report_type rep[1..k] for i∈[1..k] if(s.child[i]≠NULL)//retrieving via DHT rep[i]=deref9s.child[i]).report s.report=s.op(rep[]) }]]></pre>要聚集系統(tǒng)元數(shù)據(jù),SOMO節(jié)點(diǎn)可以通過(guò)從其各自的子節(jié)點(diǎn)要求數(shù)據(jù),周期地執(zhí)行上述程序。該聚集程序可以從SOMO樹結(jié)構(gòu)1004返回到摘要特定信息。更具體地,SOMO樹結(jié)構(gòu)1004的分層次的本性有利于使用復(fù)雜范圍的查詢以發(fā)現(xiàn)與給定邏輯DHT空間區(qū)域相關(guān)的信息。例如,如果k是2,那么需要檢索DHT邏輯空間的第一個(gè)四分之一部分的狀態(tài)報(bào)告,應(yīng)用程序1010只需要獲取從第二級(jí)SOMO樹結(jié)構(gòu)1004的左邊子SOMO節(jié)點(diǎn)1012的一個(gè)報(bào)告。另一個(gè)有用的實(shí)現(xiàn)包括在SOMO節(jié)點(diǎn)注冊(cè)查詢,這從本質(zhì)上將SOMO機(jī)構(gòu)轉(zhuǎn)換成了公開預(yù)訂(“pub-sub”)基礎(chǔ)結(jié)構(gòu)。
附圖10b示出了方案1002,其中SOMO樹結(jié)構(gòu)1004用于通過(guò)DHT邏輯空間1008將信息散發(fā)到P2P系統(tǒng)中的物理機(jī)器1006。一個(gè)或更多應(yīng)用程序1010可以為任何特定目的(例如到物理機(jī)器1006的散發(fā)指令)而調(diào)用該散發(fā)操作。在附圖10b中通過(guò)示出了具有箭頭的線而表示散發(fā)信息的SOMO樹結(jié)構(gòu)1004的配置,該箭頭從父SOMO節(jié)點(diǎn)向下指向到其各自的子SOMO節(jié)點(diǎn)。如此,信息從SOMO樹結(jié)構(gòu)1004的根SOMO節(jié)點(diǎn)向下傳播到其葉SOMO節(jié)點(diǎn)。該信息可以通過(guò)SOMO樹結(jié)構(gòu)1004的分枝傳播,而無(wú)需SOMO節(jié)點(diǎn)的調(diào)整??蛇x地,由于它們的op成分,SOMO節(jié)點(diǎn)可以在信息被傳送到它們相關(guān)的子SOMO節(jié)點(diǎn)之前,在信息上執(zhí)行任何類型的操作。同樣,如同數(shù)據(jù)聚集的情況中已描述過(guò)的,有可能通過(guò)只調(diào)用選擇的SOMO樹結(jié)構(gòu)1004的分枝,來(lái)將信息散發(fā)到DHT邏輯空間1008中的僅僅一部分。
D.應(yīng)用級(jí)多點(diǎn)傳送(ALM)可以實(shí)現(xiàn)另外的應(yīng)用程序和數(shù)據(jù)覆蓋圖的變化以及SOMO樹結(jié)構(gòu)。例如,在一個(gè)實(shí)施例中,SOMO機(jī)制可以通過(guò)提供算法用于應(yīng)用級(jí)多信道廣播(ALM),該算法作用于從SOMO樹結(jié)構(gòu)生成的元數(shù)據(jù),或生成穿過(guò)SOMO樹結(jié)構(gòu)向下傳播的信息。ALM技術(shù)可以通過(guò)在附圖10b所示的應(yīng)用程序1010中提供適合的功能性而實(shí)現(xiàn)。附圖11a-11b通過(guò)例子示出了用于ALM的示意性安排。
P2P資源庫(kù)的可用性提供了最優(yōu)化的可能性。如附圖11a-11b所示,當(dāng)識(shí)別了另外空閑的但是適合于幫助的同位體時(shí),可以做出最優(yōu)化。一旦已識(shí)別了適合的同位體時(shí),可以結(jié)合成具有更佳性能的拓?fù)?。因而,附圖11b示出了對(duì)于附圖11a中的安排的改善。該改善是使用資源庫(kù)中的幫助節(jié)點(diǎn)而作出的。在附圖11a-11b中,環(huán)表示應(yīng)用級(jí)多信道廣播的原始成員,而矩形表示具有更高度數(shù)的可用同位體。最優(yōu)化可以針對(duì)一個(gè)市場(chǎng)需求系統(tǒng),以便由對(duì)等系統(tǒng)中具有最多可用資源的機(jī)器來(lái)執(zhí)行最需要資源的任務(wù)。
D.1為ALM生成資源度量對(duì)于很多P2P應(yīng)用程序,資源統(tǒng)計(jì)數(shù)字不只包括CPU負(fù)載和網(wǎng)絡(luò)活動(dòng)性,還包括更復(fù)雜的資源統(tǒng)計(jì)數(shù)字,其不能局部地從機(jī)器導(dǎo)出。相關(guān)的例子是ALM。假定需要安排一個(gè)會(huì)話,并且通過(guò)查詢SOMO已得到潛在幫助同位體的一個(gè)大的列表,隨后必須選擇一個(gè)在附近并且有足夠帶寬的同位體。如果只給出了該同位體的IP地址,在它們之上查詢以尋找它們的近鄰的過(guò)程既浪費(fèi)時(shí)間又傾向于犯錯(cuò)。下面的討論將集中在作為問(wèn)題的緩和的IP地址和帶寬的度量上。將會(huì)解釋這些屬性是如何通過(guò)調(diào)節(jié)DHT節(jié)點(diǎn)之間的相互作用而生成的,上述相互作用保持了邏輯空間的完整性。
D.2碼坐標(biāo)估計(jì)為了尋找基于坐標(biāo)的等待時(shí)間的估計(jì),latency(x,y),必須計(jì)算distance(coord(x),coord(y)),其中coord是維數(shù).歐幾里得空間的網(wǎng)絡(luò)坐標(biāo)。每個(gè)節(jié)點(diǎn)必須提供它的“心跳”給其葉節(jié)點(diǎn),以連續(xù)地保護(hù)DHT空間。如果每個(gè)節(jié)點(diǎn)隨機(jī)地選擇去肯定響應(yīng)來(lái)自其葉集合的節(jié)點(diǎn)中的心跳訊息,那么隨著時(shí)間過(guò)去它會(huì)具有一個(gè)到其葉集合鄰居的測(cè)量的延遲向量dm。在心跳訊息中,每個(gè)節(jié)點(diǎn)還報(bào)告它的當(dāng)前坐標(biāo)。因而,一個(gè)預(yù)定延遲向量dp同樣可用。節(jié)點(diǎn)x通過(guò)執(zhí)行向下簡(jiǎn)化算法來(lái)升級(jí)其自身坐標(biāo),并且極小化函數(shù)E(x)=Σi=1,r|dp(i)-dm(i)|.]]>局部地實(shí)現(xiàn)最優(yōu)化,并且只升級(jí)x自身的坐標(biāo),這將會(huì)在隨后的心跳中散發(fā)到x的葉集合鄰居。所有節(jié)點(diǎn)周期性地執(zhí)行該方法,其中節(jié)點(diǎn)坐標(biāo)和測(cè)量并預(yù)定的延遲向量被連續(xù)地升級(jí)。
D.3瓶頸帶寬估計(jì)一個(gè)同位體的網(wǎng)絡(luò)帶寬對(duì)于很多運(yùn)行在P2P資源庫(kù)上的應(yīng)用程序來(lái)說(shuō)是另一個(gè)重要的度量,因?yàn)槠款i帶寬和吞吐量之間有關(guān)聯(lián)。因此,瓶頸帶寬可以作為吞吐量的預(yù)報(bào)器。假定瓶頸連接在最后的節(jié)點(diǎn)間路徑上。對(duì)于每個(gè)節(jié)點(diǎn),其溯流的瓶頸帶寬估計(jì)為從該節(jié)點(diǎn)到其葉集合成員的測(cè)量瓶頸帶寬的最大值,這由葉集合成員的節(jié)點(diǎn)的向上連接帶寬和向下連接帶寬限定?;舅枷胧?,如果一個(gè)鄰居的向下帶寬大于該節(jié)點(diǎn)的向上帶寬,則估計(jì)值是精確的。因此葉集合節(jié)點(diǎn)越多,得到精確估計(jì)值的機(jī)會(huì)越大。同樣的原因,節(jié)點(diǎn)的下游瓶頸帶寬估計(jì)為從其葉集合節(jié)點(diǎn)到其自身的瓶頸帶寬的最大值。
測(cè)量瓶頸帶寬是公知的。例如,在包對(duì)偶技術(shù)中,兩個(gè)尺寸為S的包從源節(jié)點(diǎn)緊接地發(fā)送。接收者測(cè)量其中的時(shí)間差量T,并且估計(jì)來(lái)自源的瓶頸帶寬是S/T。
“心跳”之上的葉集合節(jié)點(diǎn)的合作使包對(duì)偶技術(shù)自然地展開。周期地,節(jié)點(diǎn)x緊接地發(fā)送兩個(gè)心跳訊息到鄰居y,填充每一個(gè),以便使它們的尺寸足夠大(比如說(shuō)1.5KB)?!皔”現(xiàn)在具有了從x到其自身在路徑上的瓶頸帶寬的估計(jì)值。該值將會(huì)在下一個(gè)到x的心跳中捎帶確認(rèn)。類似地,y進(jìn)行與x相同的探查。在x從其葉集合成員聚集到足夠的測(cè)量帶寬后,可以以如上方式估計(jì)其自身的帶寬。
D.4在P2P資源庫(kù)中預(yù)定ALM會(huì)話現(xiàn)在將證明如何為多樣的同步ALM會(huì)話最好地利用P2P資源庫(kù)。最終目標(biāo)是使會(huì)話達(dá)到最佳性能,并且有資源庫(kù)中所有可用并且足夠的同位體。會(huì)話的性能是由特定的QoS確定的。此外,高優(yōu)先權(quán)的會(huì)話會(huì)適當(dāng)?shù)匦枰喙蚕淼馁Y源。這里,重點(diǎn)放在從小到中等的會(huì)話尺寸上,其中認(rèn)為QoS是一種需求(例如,視頻會(huì)議)。還假定這里有靜態(tài)的成員,其中參與者的原始集合為一個(gè)給定的會(huì)話“s”表示為M(s),然而該算法也可以擴(kuò)展以適合動(dòng)態(tài)成員。
會(huì)話的任務(wù)管理者要運(yùn)行調(diào)整的啟發(fā)式的算法以設(shè)計(jì)ALM的拓?fù)?。要利用?kù)中的空閑資源,任務(wù)管理者詢問(wèn)SOMO以得到候選者的列表。該列表的項(xiàng)目不僅包括可用的資源,還包括其網(wǎng)絡(luò)坐標(biāo)和帶寬。當(dāng)制定設(shè)計(jì)時(shí),任務(wù)管理者向外聯(lián)系幫助同位體,以預(yù)定它們的使用。競(jìng)爭(zhēng)任務(wù)會(huì)只通過(guò)它們各自的優(yōu)先權(quán)解決它們的競(jìng)爭(zhēng)。
對(duì)于ALM,存在關(guān)于最優(yōu)化的幾個(gè)不同標(biāo)準(zhǔn),象帶寬瓶頸、最長(zhǎng)等待時(shí)間或等待時(shí)間的變化。所有成員的最大等待時(shí)間在這里用作樹構(gòu)建算法主要對(duì)象,由于其可以大大地影響終端用戶的感覺(jué)。每個(gè)節(jié)點(diǎn)在通信會(huì)話的數(shù)量上有一個(gè)其可以處理的范圍,這里稱其為“度”。這會(huì)導(dǎo)致有限的訪問(wèn)帶寬或終端系統(tǒng)的工作量。執(zhí)行最優(yōu)化,以便由對(duì)等系統(tǒng)中具有最多可用資源的機(jī)器執(zhí)行最需要資源的任務(wù)。
為一個(gè)給定會(huì)話定義QoS可以在形式上如下所規(guī)定定義1.度限制,最小高度樹問(wèn)題(DB-MHT)。給出一個(gè)無(wú)目標(biāo)的完成圖表G(V,E),一個(gè)度范圍dbound(v),其中v∈V,每個(gè)邊的等待時(shí)間函數(shù)l(e),e∈E。尋找G的一個(gè)橫越樹T,以便對(duì)于每個(gè)v∈T、v的每個(gè)度滿足d(v)≤dbound(v),并且T的高度(測(cè)量為從根開始的聚集等待時(shí)間)是最小的。
使用資源庫(kù),可以擴(kuò)展QoS的上述定義。幫助節(jié)點(diǎn)H的擴(kuò)展集合添加到圖表,其中對(duì)象通過(guò)添加最小數(shù)量的幫助節(jié)點(diǎn),要達(dá)到與不使用H導(dǎo)出的最優(yōu)化設(shè)計(jì)相關(guān)的最佳解決方案。
D.5安排一個(gè)單一ALM會(huì)話下面將討論安排一個(gè)單一ALM會(huì)話的方法,其作為當(dāng)利用一個(gè)資源庫(kù)時(shí)最優(yōu)化單一ALM會(huì)話的算法。該算法具有O(N3)性能范圍,并且能為數(shù)以百計(jì)的節(jié)點(diǎn)在不到一秒的時(shí)間內(nèi)生成一個(gè)解決方案。例如,見(jiàn)下面的表格A,沒(méi)有虛線框里的碼。在這里稱為“AMCast”的該算法,首先開始于根,并且將其添加到當(dāng)前解決方案的集合中。接下來(lái),其余節(jié)點(diǎn)的最小高度通過(guò)尋找它們?cè)诮鉀Q方案中最近的潛在鄰居而計(jì)算,并服從度的限制。該循環(huán)的返回通過(guò)吸引解決方案中具有最小高度的節(jié)點(diǎn)。繼續(xù)該處理,直到所有節(jié)點(diǎn)最終包括在結(jié)果樹中。要保證得到以其為開始的最佳可能樹,可以通過(guò)進(jìn)一步調(diào)整或調(diào)節(jié)量度標(biāo)準(zhǔn)來(lái)增加算法。例如,為近似一個(gè)全局最優(yōu)算法,調(diào)整或調(diào)節(jié)可以包括以啟發(fā)式的移動(dòng)集合來(lái)調(diào)節(jié)樹。上述移動(dòng)包括(a)為最高節(jié)點(diǎn)尋找新鄰居;(b)用另一個(gè)葉節(jié)點(diǎn)交換該最高節(jié)點(diǎn);以及(c)以另一個(gè)子樹交換其根是最高節(jié)點(diǎn)的父節(jié)點(diǎn)的子樹。
在搜索有益的幫助節(jié)點(diǎn)時(shí),算法包括兩點(diǎn)考慮(1)觸發(fā)該搜索的時(shí)間;以及(2)判斷一個(gè)添加的標(biāo)準(zhǔn)。通用機(jī)構(gòu)由表格A中標(biāo)注為“A部分”的框中的pseudo碼所描述,下面表格A<pre listing-type="program-listing"><![CDATA[ ALM(r,V){//v==M(s),ris the root for all v∈V//initialization height(v)=1(r,v);parent(v)=r T=(W={r},Link={} while(W<V){//loop until finish find u∈{V-W}s.t.height(u)is minimum ?。剑剑剑剑剑剑剑絊ection A================ if(d(parent(u))==dbound(parent(u)-1) h=find_helper(u) if h≠NULL{//integrate the helper node W+={h};Link+={h,parent(u)}; W+={u};Link+={u,h}; }else ============================ W+={u};Link+={u,parent(u)}; for all v∈{V-W}{//re-adjust the height height(r)=∞ for all w∈Wif d(w)<dbound(w)&&height(v)>height(w)+1(w,v) height(v)=height(w)+1(w,v);parent(v)=w } } adjust(T) return T }]]></pre>假定u是AMCast算法要添加到解決方案中的節(jié)點(diǎn),并且parent(u)是其父節(jié)點(diǎn)。當(dāng)parent(u)的自由度減小到1時(shí),觸發(fā)用于附加節(jié)點(diǎn)h的搜索。如果該h存在于資源庫(kù)中,那么h變成u的父節(jié)點(diǎn),并且替代u作為原始parent(u)的子節(jié)點(diǎn)。不同的形式只在h的選擇標(biāo)準(zhǔn)方面變化,但是最優(yōu)化的該分類可以稱為臨界節(jié)點(diǎn)算法?!芭R界”意味著,對(duì)于一個(gè)特定節(jié)點(diǎn),有根據(jù)原始算法改進(jìn)的最后機(jī)會(huì)。
不同的算法可以用于搜索h。該算法的第一個(gè)改變是尋找一個(gè)另外的節(jié)點(diǎn),其最接近父節(jié)點(diǎn)并且有足夠的度(例如,可用“4”)。假定(a,b)是兩個(gè)任意節(jié)點(diǎn)a和b之間的等待時(shí)間。下面啟發(fā)式的收益甚至更好地導(dǎo)致如表格B所示l(h,parent(u)+max(l(h,v)))is mininmumwhere v satisfies parent(v)=parent(u)&&\\條件1dbound(h)≥4&& \\條件2l(h,parent(u))<R \\條件3這里,v可以是u的同屬。這里的思想是,由于所有的上述v將會(huì)潛在地是h的未來(lái)子節(jié)點(diǎn),l(h,parent(u))+max(l(h,v))最可能在h加入(條件1)后影響潛在的樹高度。這樣的一個(gè)幫助節(jié)點(diǎn)應(yīng)當(dāng)具有足夠的度(條件2)。最后,要避免“垃圾”節(jié)點(diǎn),它們很遙遠(yuǎn),即使它們具有高的度,施加界限Rh必須在距離父節(jié)點(diǎn)parent(u)R以外的范圍內(nèi)(條件3)。要執(zhí)行該處理所必需的輸入?yún)?shù)包括網(wǎng)絡(luò)坐標(biāo),以便我們可以計(jì)算任意對(duì)偶之間的等待時(shí)間,以及每個(gè)節(jié)點(diǎn)的度。通過(guò)使每個(gè)節(jié)點(diǎn)在發(fā)送往SOMO的報(bào)告中包含它們的網(wǎng)絡(luò)坐標(biāo)以及帶寬,如附圖12所示,使得上述處理成為可能,該報(bào)告是調(diào)度程序所使用的SOMO報(bào)告的清楚的呈現(xiàn)。因而,每個(gè)節(jié)點(diǎn)具有一個(gè)特定的負(fù)載(可用CPU循環(huán))、一個(gè)特定存儲(chǔ)器容量(RAM,磁盤空間,高速緩沖存儲(chǔ)器),還具有一些網(wǎng)絡(luò)信息,類似節(jié)點(diǎn)的所在(IP地址)和該節(jié)點(diǎn)擁有多少可用帶寬。附圖10a示出了在附圖12所示的SOMO報(bào)告中使用的數(shù)據(jù)的聚集。
D.6組織多種ALM會(huì)話當(dāng)上述的部分為一個(gè)ALM會(huì)話描述了單機(jī)時(shí)序安排算法,該會(huì)話討論了如何處理多種現(xiàn)行會(huì)話,其中具有較高優(yōu)先權(quán)的會(huì)話優(yōu)先地指定更多資源,將資源庫(kù)作為整體的利用被最大化。
所有會(huì)話在隨機(jī)的時(shí)間開始和結(jié)束。每個(gè)會(huì)話具有1到3之間的整數(shù)值優(yōu)先權(quán)。優(yōu)先權(quán)1是最高一類。最大數(shù)量的同步會(huì)話從10到60變化,每個(gè)會(huì)話具有尺寸為20的未覆蓋成員集合。因而,當(dāng)有60個(gè)現(xiàn)行會(huì)話時(shí),所有節(jié)點(diǎn)會(huì)屬于至少一個(gè)會(huì)話。就是說(shuō),現(xiàn)行會(huì)話的原始成員的部分從17%到100%之間變化。計(jì)算幫助節(jié)點(diǎn),一個(gè)會(huì)話代表性地不止使用原始成員。同樣,具有較高度的節(jié)點(diǎn)會(huì)包括在不止一個(gè)會(huì)話中。
該最優(yōu)化多種ALM會(huì)話的方法的潛在原則類似于一個(gè)組織良好的社會(huì)以全局為條件,可以得到準(zhǔn)時(shí)并且可信的知識(shí),最好是讓每個(gè)任務(wù)憑它們自己的證書(也就是,它們的優(yōu)先權(quán))競(jìng)爭(zhēng)資源。該純市場(chǎng)主導(dǎo)模式允許在不需要任何類型的全局調(diào)度程序的情況下實(shí)現(xiàn)該目標(biāo)。
對(duì)節(jié)點(diǎn)上適當(dāng)?shù)膬?yōu)先權(quán)的設(shè)定要采取額外的考慮,上述節(jié)點(diǎn)包括在一個(gè)會(huì)話中。在合作的P2P環(huán)境中,如果一個(gè)節(jié)點(diǎn)需要運(yùn)行一個(gè)包括其自身作為成員的任務(wù),使該任務(wù)具有該節(jié)點(diǎn)中的最高優(yōu)先權(quán)是公平的。因而,對(duì)于具有優(yōu)先權(quán)L的會(huì)話s,其擁有對(duì)于M(s)中的節(jié)點(diǎn)的最高優(yōu)先權(quán)(也就是1st優(yōu)先權(quán)),并且L在別處(即,對(duì)于M(s)之外的任何幫助節(jié)點(diǎn))。這保證了每個(gè)會(huì)話以相應(yīng)于AMCast+adju算法的較低限度運(yùn)行。假定s是系統(tǒng)中的唯一會(huì)話,得到上限(即Leafset+adju)。
在以前,ALM會(huì)話的根是任務(wù)管理者,其執(zhí)行樹拓?fù)涞脑O(shè)計(jì)和調(diào)度。每個(gè)會(huì)話基于由SOMO提供的系統(tǒng)資源信息,使用葉集合調(diào)整算法來(lái)徹底地在其自身上調(diào)度。對(duì)于具有L優(yōu)先權(quán)的會(huì)話,任何由具有比L低的優(yōu)先權(quán)的任務(wù)所占用的資源都認(rèn)為對(duì)它是可用的,類似地,當(dāng)一個(gè)現(xiàn)行會(huì)話在其當(dāng)前計(jì)劃中丟失了資源,它需要再次執(zhí)行調(diào)度。每個(gè)會(huì)話還會(huì)周期性地重新運(yùn)行調(diào)度,以檢查是否有更好的設(shè)計(jì),該計(jì)劃使用最近自由的資源,比當(dāng)前的計(jì)劃好,如果這樣就轉(zhuǎn)換到上述更好的設(shè)計(jì)。
要促使SOMO聚集和散布資源信息以幫助每個(gè)任務(wù)管理者的計(jì)劃,像以前每個(gè)節(jié)點(diǎn)在它的發(fā)送到SOMO的報(bào)告中發(fā)布例如網(wǎng)絡(luò)坐標(biāo)等信息。然而,它的度被分解成現(xiàn)行會(huì)話帶有的優(yōu)先權(quán)。這概括在度數(shù)表格C的下面兩個(gè)例子中度數(shù)表格C
|------------x的度數(shù)表-----------------|-----------y的度數(shù)表-------|在度數(shù)表格C中,示出了兩個(gè)節(jié)點(diǎn)的度數(shù)表格。x的全部度是4,由會(huì)話s4采用為2度,s12采用為另一個(gè)1度,給x留下了一個(gè)自由度。另一方面,y只具有2度,它們都被會(huì)話s5采用。每當(dāng)發(fā)生影響了節(jié)點(diǎn)的度分割的調(diào)度時(shí),度數(shù)表會(huì)升級(jí)。度數(shù)表,如前面所述,是通過(guò)SOMO聚集的,并且對(duì)于任何運(yùn)行的查詢?nèi)蝿?wù)來(lái)說(shuō)是可用的。度數(shù)表格C示出了對(duì)于一臺(tái)機(jī)器來(lái)說(shuō),有可能在ALM會(huì)話的不同流中分割其自身,以便通過(guò)劃分帶寬,能夠同步地完成某些事情。同樣地,度數(shù)表格C示出了能擁有多少全部的度,以及通過(guò)在不同任務(wù)中劃分容量可以擁有多少合計(jì)容量,以便可以將它們調(diào)度成不同的優(yōu)先權(quán)會(huì)話。
當(dāng)在應(yīng)用級(jí)多信道廣播中有更多的會(huì)話并且全部資源變得不足時(shí),性能會(huì)下降。然而,較高優(yōu)先級(jí)的任務(wù)可以比較低優(yōu)先級(jí)的任務(wù)維持更好的性能。同樣,當(dāng)資源在激烈的競(jìng)爭(zhēng)之下時(shí),較低優(yōu)先級(jí)的任務(wù)會(huì)丟失更多的幫助節(jié)點(diǎn)。
D.7具有ALM會(huì)話的資源庫(kù)要?jiǎng)?chuàng)建一個(gè)資源庫(kù),不可避免地采用分層次的結(jié)構(gòu)以保證及時(shí)的集合。例如,在一個(gè)兩級(jí)體系結(jié)構(gòu)中,其中IP級(jí)多信道廣播用于聚集一個(gè)位置上的統(tǒng)計(jì)數(shù)字,隨后結(jié)果被聚集到一個(gè)中央地點(diǎn),這里討論因素以制造可行的廣域資源庫(kù),也就是(1)P2P DHT的自組織能力的結(jié)合,以及(2)一個(gè)系統(tǒng)內(nèi)部、自擴(kuò)展監(jiān)視基礎(chǔ)結(jié)構(gòu)。
D.8使用資源庫(kù)最優(yōu)化ALMALM是用于P2P DHT的有利應(yīng)用程序。然而,要最優(yōu)化ALM,應(yīng)當(dāng)利用資源庫(kù)。給定一個(gè)資源庫(kù),最優(yōu)化可以由一個(gè)單一ALM會(huì)話完成,也可以是不插手的、市場(chǎng)主導(dǎo)的方法中多種同步的ALM會(huì)話的最優(yōu)化。然而,注意ALM只是一個(gè)用于P2P資源庫(kù)的應(yīng)用程序。不過(guò),對(duì)于與集中匹配機(jī)制相比較而言更為分布式的方法來(lái)說(shuō),提倡兩個(gè)步驟的方法(1)應(yīng)用程序指定每個(gè)任務(wù)調(diào)度;以及(2)通過(guò)任務(wù)中的調(diào)整結(jié)合市場(chǎng)主導(dǎo)的公平競(jìng)爭(zhēng)。
E.用于實(shí)現(xiàn)一個(gè)P2P參與者的示例性計(jì)算機(jī)環(huán)境如上面A部分所述的數(shù)據(jù)覆蓋圖,是伸展在多臺(tái)機(jī)器之上的數(shù)據(jù)結(jié)構(gòu),并且也許伸展在P2P系統(tǒng)中其它的基礎(chǔ)結(jié)構(gòu)之上。因而,P2P系統(tǒng)中每個(gè)參與者可以看作實(shí)現(xiàn)了數(shù)據(jù)覆蓋圖的一部分。要達(dá)到該效果,每個(gè)參與者可以存儲(chǔ)要?jiǎng)?chuàng)建數(shù)據(jù)覆蓋圖以及與其相互影響所必需的碼和數(shù)據(jù)。該碼和數(shù)據(jù)可以存儲(chǔ)在每個(gè)參與者的易失性和/非易失性存儲(chǔ)器中(將在下面描述)。
例如,附圖13示出了作為計(jì)算機(jī)1342的一個(gè)示例性P2P參與者的高級(jí)視圖。該計(jì)算機(jī)1342相應(yīng)于一個(gè)通用計(jì)算機(jī)或服務(wù)器類型計(jì)算機(jī),并且連接顯示裝置1374。然而,計(jì)算機(jī)1342可以使用其它類型的計(jì)算裝備來(lái)實(shí)現(xiàn)。例如,雖然未示出,計(jì)算機(jī)1342可以包括手持或膝上型裝置、設(shè)定的機(jī)項(xiàng)盒、大型計(jì)算機(jī)等。
示例性計(jì)算機(jī)1342可以用于實(shí)現(xiàn)上述的處理。計(jì)算機(jī)1342包括一個(gè)或更多處理器或處理單元1344、一個(gè)系統(tǒng)存儲(chǔ)器1346和一個(gè)總線1348,其連接了不同的系統(tǒng)組件,包括系統(tǒng)存儲(chǔ)器1346到處理器1344。計(jì)算機(jī)1342中的一個(gè)或更多存儲(chǔ)器可以用于存儲(chǔ)碼和數(shù)據(jù),該碼和數(shù)據(jù)用于實(shí)現(xiàn)部分?jǐn)?shù)據(jù)覆蓋圖,例如SOMO樹結(jié)構(gòu)的一部分。
總線1348表示一個(gè)或更多不同類型的總線結(jié)構(gòu),包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線、加速的圖形端口和使用多種總線體系結(jié)構(gòu)中任一種的處理器或本地總線。系統(tǒng)存儲(chǔ)器1346包括只讀存儲(chǔ)器(ROM)1350和隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)1352。一個(gè)基本輸入/輸出系統(tǒng)(BIOS)1354存儲(chǔ)在ROM1350中,其包括幫助在計(jì)算機(jī)1342中傳送信息的基本路由,例如在啟動(dòng)過(guò)程中。
計(jì)算機(jī)1342進(jìn)一步包括一個(gè)硬盤驅(qū)動(dòng)器1356,用于從一個(gè)硬盤(未示出)讀出或?qū)懭?,一個(gè)磁盤驅(qū)動(dòng)器1358,用于從可移動(dòng)磁盤1360中讀出或?qū)懭?,以及一個(gè)光盤驅(qū)動(dòng)器1362,用于從一個(gè)可移動(dòng)光盤1364中讀出或?qū)懭?,例如CDROM或其它光學(xué)媒介。硬盤驅(qū)動(dòng)器1356、磁盤驅(qū)動(dòng)器1358和光盤驅(qū)動(dòng)器1362通過(guò)SCSI接口1366或其它適合的接口連接到總線1348。驅(qū)動(dòng)器和與其連接的計(jì)算機(jī)可讀媒介提供了用于計(jì)算機(jī)1342的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性存儲(chǔ)器。雖然這里所述的示例性環(huán)境使用了硬盤、可移動(dòng)磁盤1360和可移動(dòng)光盤1364,本領(lǐng)域的技術(shù)人員可以理解其它類型的可存儲(chǔ)計(jì)算機(jī)可讀數(shù)據(jù)的計(jì)算機(jī)可讀媒介也能夠在該示例性操作環(huán)境中使用,例如磁帶、flash存儲(chǔ)卡、數(shù)碼視頻光盤、隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)等。
很多程序模塊可以存儲(chǔ)在硬盤1356、磁盤1360、光盤1364、ROM1350或RAM1352中,該模塊包括操作系統(tǒng)1370、一個(gè)或更多應(yīng)用程序1372(例如網(wǎng)頁(yè)請(qǐng)求追蹤應(yīng)用程序140)、高速緩沖存儲(chǔ)/其它模塊1374,以及程序數(shù)據(jù)1376。操作系統(tǒng)1370可以包括這里所述的網(wǎng)頁(yè)請(qǐng)示事件追蹤工具(例如追蹤基礎(chǔ)結(jié)構(gòu)144)。用戶可以通過(guò)例如鍵盤1378和點(diǎn)擊裝置1380等輸入裝置,輸入命令和信息到計(jì)算機(jī)1342。其它的輸入裝置(未示出)可以包括微型麥克風(fēng)、操縱桿、游戲手柄、圓盤式衛(wèi)星電視天線、掃描儀等。上述以及其它輸入裝置通過(guò)連接到總線1348的接口1382,連接到處理器單元1344。監(jiān)視器1384或其它類型的顯示裝置也通過(guò)一個(gè)端口連接到總線1348,例如視頻適配器1386。除了監(jiān)視器外,個(gè)人計(jì)算機(jī)代表性地包括其它外圍輸出裝置(未示出),例如揚(yáng)聲器和打印機(jī)。
計(jì)算機(jī)1342通常在網(wǎng)絡(luò)環(huán)境中運(yùn)轉(zhuǎn),其中使用邏輯連接到一個(gè)或更多遠(yuǎn)程計(jì)算機(jī),例如遠(yuǎn)程計(jì)算機(jī)1388。遠(yuǎn)程計(jì)算機(jī)1388可以是個(gè)人計(jì)算機(jī)、另一個(gè)服務(wù)器、路由器、網(wǎng)絡(luò)PC、同位體裝置或其它常見(jiàn)網(wǎng)絡(luò)節(jié)點(diǎn),并且典型地包括很多或全部上述與計(jì)算機(jī)1342相關(guān)的組件。附圖13所示的邏輯連接包括一個(gè)局域網(wǎng)(LAN)1390和一個(gè)廣域網(wǎng)(WAN)1392。上述網(wǎng)絡(luò)工作環(huán)境在辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、企業(yè)內(nèi)部互聯(lián)網(wǎng)和互聯(lián)網(wǎng)里是常見(jiàn)的。
當(dāng)在LAN網(wǎng)絡(luò)工作環(huán)境中使用時(shí),計(jì)算機(jī)1342通過(guò)網(wǎng)絡(luò)接口或適配器1394連接到局域網(wǎng)。當(dāng)在WAN網(wǎng)絡(luò)工作環(huán)境中使用時(shí),計(jì)算機(jī)1342典型地包括調(diào)制解調(diào)器1396或其它用于在例如互聯(lián)網(wǎng)等廣域網(wǎng)絡(luò)1392上建立通信的設(shè)備。調(diào)制解調(diào)器1396可以是內(nèi)置的或外置的,通過(guò)串行端口接口1368連接到總線1348。在網(wǎng)絡(luò)環(huán)境中,所示的與個(gè)人計(jì)算機(jī)1342相關(guān)的程序模塊,或其一部分,可以存儲(chǔ)在遠(yuǎn)程存儲(chǔ)裝置中。可以理解所示的網(wǎng)絡(luò)連接是示例性的,可以使用其它在計(jì)算機(jī)之間建立通信連接的設(shè)備。
通常,計(jì)算機(jī)1342的數(shù)據(jù)處理器依靠指令來(lái)編程,該指令在不同時(shí)間存儲(chǔ)在該計(jì)算機(jī)的不同計(jì)算機(jī)可讀存儲(chǔ)媒介。例如,程序和操作系統(tǒng)典型地分布在軟盤或CD-ROM中。從這里,它們可以安裝或裝載進(jìn)入計(jì)算機(jī)的第二個(gè)存儲(chǔ)器。在運(yùn)行時(shí),它們至少部分地被裝載入計(jì)算機(jī)的主要電子存儲(chǔ)器。當(dāng)上述媒介包括用于實(shí)現(xiàn)塊的指令或程序時(shí),這里所述的本發(fā)明包括上述和其它的不同類型的計(jì)算機(jī)可讀存儲(chǔ)媒介,將在下面結(jié)合微處理器或其它數(shù)據(jù)處理器來(lái)描述該塊。當(dāng)計(jì)算機(jī)被根據(jù)這里所述的方法和技術(shù)而編程時(shí),本發(fā)明還包括計(jì)算機(jī)本身。
為了解釋,程序和其它例如操作系統(tǒng)等可執(zhí)行程序組件在這里被稱為離散塊,雖然上述程序和組件在不同時(shí)間駐留在計(jì)算機(jī)的不同部件中,以及由計(jì)算機(jī)的數(shù)據(jù)處理器執(zhí)行。這里所述的任何功能可以由軟件、固件(例如,固定邏輯電路)、手動(dòng)處理或上述實(shí)施例的結(jié)合。這里使用的術(shù)語(yǔ)“邏輯”或“模塊”一般代表軟件、固件或軟件和固件的結(jié)合。例如,在軟件實(shí)現(xiàn)的情況中,術(shù)語(yǔ)“邏輯”或“模塊”表示當(dāng)在處理裝置或裝置(例如,一個(gè)CPU或多個(gè)CPU)中執(zhí)行時(shí),執(zhí)行特殊任務(wù)的程序碼。該程序碼可以存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)裝置中。將邏輯和模塊示例性地分離成不同的單元,可以反映一個(gè)真實(shí)物理群和上述軟件和/或硬件的分配,或者可以相應(yīng)于由單一的軟件程序和/或硬件單元執(zhí)行的不同任務(wù)的概念的分配。該示例性的邏輯和模塊可以位于一個(gè)地點(diǎn)(例如,由一個(gè)處理裝置實(shí)現(xiàn)),或者可以分布在多個(gè)位置。
H.結(jié)論要?jiǎng)?chuàng)建一個(gè)P2P系統(tǒng)資源庫(kù),P2P DHT的自組織容量與自擴(kuò)展、分層的系統(tǒng)內(nèi)監(jiān)視基礎(chǔ)結(jié)構(gòu)相結(jié)合。要實(shí)現(xiàn)自擴(kuò)展和穩(wěn)定,基礎(chǔ)結(jié)構(gòu)必須是由DHT建立在虛擬空間中的邏輯系統(tǒng),并且因而映射到參與者。這里已描述了與DHT結(jié)合的SOMO是如何有效地創(chuàng)建一個(gè)資源庫(kù)。
可以利用資源庫(kù)的能力以利用經(jīng)由SOMO的準(zhǔn)時(shí)精確的新聞廣播,每個(gè)任務(wù)安裝一個(gè)特定應(yīng)用的調(diào)度程序,因而采用了無(wú)干涉、市場(chǎng)主導(dǎo)的方法以使用公平競(jìng)爭(zhēng)調(diào)整任務(wù)。
描述了用于在P2P系統(tǒng)的DHT之上構(gòu)建一個(gè)數(shù)據(jù)結(jié)構(gòu)的實(shí)施例。特別地描述一個(gè)特定分層樹結(jié)構(gòu),其用于在P2P系統(tǒng)中散發(fā)信息,并且用于從P2P系統(tǒng)中聚集信息。
這里將特定操作描述為以特定順序執(zhí)行的連續(xù)的不同步驟。上述實(shí)施例是示例性的,沒(méi)有限定的作用。這里描述的特定步驟聚合在一起并且在單一的操作中執(zhí)行,并且特定的步驟可以以一個(gè)順序而執(zhí)行,該順序與本公開所提出的例子中使用的順序不同。
進(jìn)一步,本發(fā)明提供了二選一的很多例子(例如,情況A或情況B)。此外,本公開包括這樣的情況,其中將選擇結(jié)合在一個(gè)實(shí)施例中(例如,情況A和情況B),即使本公開沒(méi)有特別地在每個(gè)例子中提到這樣的結(jié)合例子。
本發(fā)明可以在不背離其精神和實(shí)質(zhì)特征的情況下,以其它特定的形式實(shí)施。所述的實(shí)施例可以只看作示例性并且非限制性的。因而,本發(fā)明的范圍由附加的權(quán)利要求而不是上面的描述界定。在權(quán)利要求的相等含義和范圍中的所有改變都包括在它們的范圍中。
權(quán)利要求
1.一個(gè)方法包括構(gòu)建一個(gè)數(shù)據(jù)覆蓋圖,作為對(duì)等網(wǎng)絡(luò)中的分布式哈希表(DHT)中包括的邏輯空間之上的數(shù)據(jù)結(jié)構(gòu);其中該邏輯空間包括多個(gè)DHT節(jié)點(diǎn),該節(jié)點(diǎn)具有多個(gè)相關(guān)的DHT區(qū)域;在數(shù)據(jù)覆蓋圖中構(gòu)建具有多個(gè)級(jí)的樹的拓?fù)?,每?jí)包括與上述的各自的DHT節(jié)點(diǎn)相關(guān)的一個(gè)或多個(gè)樹節(jié)點(diǎn),其中樹的第一級(jí)包括具有單一的樹節(jié)點(diǎn)的區(qū)域的單一的樹節(jié)點(diǎn),該區(qū)域相應(yīng)于DHT的邏輯空間的整個(gè)范圍,并且被邏輯地劃分成多個(gè)所述樹節(jié)點(diǎn)區(qū)域,該樹節(jié)點(diǎn)區(qū)域相應(yīng)于樹的每一級(jí)的樹節(jié)點(diǎn);以及DHT的邏輯空間的部分;每個(gè)所述樹節(jié)點(diǎn)包括一個(gè)關(guān)鍵字成分,其標(biāo)識(shí)了與其各自的樹節(jié)點(diǎn)區(qū)域相關(guān)的一個(gè)關(guān)鍵字;將多臺(tái)機(jī)器映射到DHT的邏輯空間,其中每臺(tái)機(jī)器對(duì)應(yīng)于樹節(jié)點(diǎn)區(qū)域中的一個(gè)或更多;每臺(tái)機(jī)器從與其對(duì)應(yīng)的一個(gè)或多個(gè)樹節(jié)點(diǎn)區(qū)域中選擇其代表性節(jié)點(diǎn),該樹節(jié)點(diǎn)對(duì)應(yīng)于最大尺寸的樹節(jié)點(diǎn)區(qū)域;并且每個(gè)所述代表性節(jié)點(diǎn)選擇另一個(gè)代表性節(jié)點(diǎn)作為其父節(jié)點(diǎn),所述另一個(gè)代表性節(jié)點(diǎn)是具有較大尺寸的鄰近所述樹節(jié)點(diǎn)區(qū)域的代表性節(jié)點(diǎn)。
2.權(quán)利要求1所述的方法,進(jìn)一步包括在每臺(tái)所述機(jī)器上聚集元數(shù)據(jù);將在所述機(jī)器上聚集的元數(shù)據(jù)發(fā)送到相應(yīng)的代表性節(jié)點(diǎn);聚集由所述代表性節(jié)點(diǎn)接收到的元數(shù)據(jù);并且將每個(gè)所述代表性節(jié)點(diǎn)所聚集的元數(shù)據(jù)發(fā)送到相應(yīng)的父節(jié)點(diǎn);并且聚集由在樹的第一級(jí)的單一的樹節(jié)點(diǎn)所接收到的元數(shù)據(jù)。
3.如權(quán)利要求2所述的方法,進(jìn)一步包括處理在樹的第一級(jí)的單一的樹節(jié)點(diǎn)聚集的數(shù)據(jù);并且從樹的第一級(jí)的單一的樹節(jié)點(diǎn)經(jīng)由各自的父節(jié)點(diǎn)和代表性節(jié)點(diǎn),發(fā)送處理后的數(shù)據(jù)到每臺(tái)所述機(jī)器。
4.權(quán)利要求3所述的方法,其中元數(shù)據(jù)包括與每臺(tái)所述機(jī)器相關(guān)的信息;并且處理過(guò)的數(shù)據(jù)包括可以管理每臺(tái)所述機(jī)器的指令。
5.權(quán)利要求1所述的方法,其中對(duì)應(yīng)于DHT的邏輯空間的全部范圍的單一的樹節(jié)點(diǎn)區(qū)域平均地分成k個(gè)樹節(jié)點(diǎn)區(qū)域;k是在樹的第一級(jí)的樹節(jié)點(diǎn)的數(shù)量;并且樹的在第i級(jí)第j個(gè)的樹節(jié)點(diǎn)具有一個(gè)樹節(jié)點(diǎn)區(qū)域,其中尺寸為[j/ki,(j+1)/ki];并且關(guān)鍵字為(2j+1)/2ki;其中(0<=j(luò)<2i)。
6.權(quán)利要求5所述的方法,其中每個(gè)所述關(guān)鍵字具有一個(gè)值,該值是坐標(biāo)的函數(shù),其標(biāo)識(shí)了代表性樹節(jié)點(diǎn)區(qū)域的中心i級(jí)的樹包括ki個(gè)樹節(jié)點(diǎn);并且每個(gè)樹節(jié)點(diǎn)的樹節(jié)點(diǎn)區(qū)域具有的尺寸是1/ki。
7.權(quán)利要求1所述的方法,進(jìn)一步包括,對(duì)于每臺(tái)所述機(jī)器,計(jì)算該機(jī)器的各自的代表性節(jié)點(diǎn)和父節(jié)點(diǎn)的關(guān)鍵字。
8.權(quán)利要求7所述的方法,其中各自的關(guān)鍵字的計(jì)算進(jìn)一步包括在DHT中使用查找,用機(jī)器獲取信息,其中機(jī)器使用信息與相應(yīng)于代表性節(jié)點(diǎn)的機(jī)器建立通信,所述信息具有相應(yīng)的所述代表性節(jié)點(diǎn)的關(guān)鍵字。
9.權(quán)利要求1所述方法,進(jìn)一步包括在每臺(tái)所述機(jī)器,接收來(lái)自鄰近的所述樹節(jié)點(diǎn)區(qū)域中的每臺(tái)所述機(jī)器的心跳傳送;并且當(dāng)沒(méi)有及時(shí)接收到任何所述心跳傳送時(shí),通過(guò)下列步驟證明鄰近的所述樹節(jié)點(diǎn)區(qū)域中相應(yīng)的所述機(jī)器的消失重復(fù)DHT的提供;重復(fù)構(gòu)建數(shù)據(jù)覆蓋圖作為在DHT邏輯空間之上的數(shù)據(jù)結(jié)構(gòu);在重建的數(shù)據(jù)覆蓋圖中重復(fù)構(gòu)建多級(jí)樹;并且重復(fù)多臺(tái)機(jī)器到DHT邏輯空間的映射。
10.權(quán)利要求1所述的方法,其中每個(gè)所述代表性節(jié)點(diǎn)和每個(gè)所述父節(jié)點(diǎn)被選擇為資源可用性的最優(yōu)化函數(shù)。
11.權(quán)利要求10所述的方法,其中最優(yōu)化函數(shù)是基于從組中選擇的標(biāo)準(zhǔn)的,該組是由網(wǎng)絡(luò)坐標(biāo)、帶寬瓶頸、最大等待時(shí)間和等待時(shí)間的變化組成的,其中最需要資源的任務(wù)由對(duì)等系統(tǒng)中擁有最多可用資源的機(jī)器執(zhí)行。
12.權(quán)利要求1所述的方法,其中DHT管理將對(duì)象插入對(duì)等系統(tǒng),以及從對(duì)等系統(tǒng)移除對(duì)象;以及該邏輯空間包括具有相關(guān)的多個(gè)DHT區(qū)域的多個(gè)DHT節(jié)點(diǎn);并且DHT的數(shù)據(jù)覆蓋圖是通過(guò)下列步驟建立的將數(shù)據(jù)結(jié)構(gòu)中的對(duì)象與DHT節(jié)點(diǎn)相關(guān)聯(lián);并且在數(shù)據(jù)結(jié)構(gòu)的對(duì)象之間建立連接。
13.權(quán)利要求12所述的方法,其中每個(gè)連接包括第一域,其提供從第一對(duì)象指向第二對(duì)象的硬連線指針;并且第二域,其提供從第一對(duì)象指向DHT節(jié)點(diǎn)的軟狀態(tài)指針,該DHT節(jié)點(diǎn)是第二對(duì)象的宿主。
14.權(quán)利要求12所述的方法,其中數(shù)據(jù)覆蓋圖的建立使用了第一基元,用于設(shè)定一個(gè)引用,該引用建立了到DHT中一個(gè)對(duì)象的指針第二基元,用于返回由指針?biāo)玫膶?duì)象;以及第三基元,用于刪除由指針引用的對(duì)象。
15.權(quán)利要求1所述的方法,其中數(shù)據(jù)覆蓋圖中的每個(gè)樹結(jié)點(diǎn)包括一個(gè)操作成分,其確定了在經(jīng)過(guò)該樹結(jié)點(diǎn)的數(shù)據(jù)上執(zhí)行的一個(gè)操作。
16.權(quán)利要求1所述的方法,其中數(shù)據(jù)覆蓋圖中每個(gè)樹節(jié)點(diǎn)包括一個(gè)報(bào)告成分,其確定了要使用該樹結(jié)點(diǎn)生成的報(bào)告類型。
17.權(quán)利要求1所述的方法,其中樹的第一級(jí)包括作為樹的根節(jié)點(diǎn)的樹節(jié)點(diǎn);以及該根節(jié)點(diǎn)對(duì)應(yīng)于一個(gè)樹區(qū)域,該樹區(qū)域?qū)?yīng)于DHT的邏輯空間的全部范圍。
18.一個(gè)計(jì)算機(jī)可讀存儲(chǔ)器,包括機(jī)器可讀指令,該指令用于實(shí)現(xiàn)根據(jù)權(quán)利要求12的所述的方法,在數(shù)據(jù)覆蓋圖中構(gòu)建對(duì)象。
19.一個(gè)計(jì)算機(jī)可讀存儲(chǔ)器,具有存儲(chǔ)在其中的數(shù)據(jù)覆蓋圖,該數(shù)據(jù)覆蓋圖是根據(jù)權(quán)利要求1中的方法而制造的。
20.一個(gè)計(jì)算機(jī)可讀存儲(chǔ)器,具有存儲(chǔ)在其中的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)包括一個(gè)對(duì)于對(duì)等系統(tǒng),作為在DHT中包括的邏輯空間之上的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)覆蓋圖;其中DHT管理向?qū)Φ认到y(tǒng)插入對(duì)象,以及從對(duì)等系統(tǒng)移除對(duì)象該邏輯空間包括具有多個(gè)相關(guān)的DHT區(qū)域的多個(gè)DHT節(jié)點(diǎn);DHT的數(shù)據(jù)覆蓋圖是通過(guò)下列步驟構(gòu)建的將數(shù)據(jù)結(jié)構(gòu)中的對(duì)象與DHT節(jié)點(diǎn)相關(guān)聯(lián);并且在數(shù)據(jù)結(jié)構(gòu)的對(duì)象之間建立連接;數(shù)據(jù)覆蓋圖具有樹的拓?fù)?,該樹包括多個(gè)級(jí);該樹包括與各自的所述DHT節(jié)點(diǎn)相關(guān)的多個(gè)樹節(jié)點(diǎn);樹節(jié)點(diǎn)包括一個(gè)根節(jié)點(diǎn),其具有相應(yīng)于DHT邏輯空間的一個(gè)樹節(jié)點(diǎn)區(qū)域;根節(jié)點(diǎn)的樹節(jié)點(diǎn)區(qū)域邏輯地劃分成多個(gè)樹節(jié)點(diǎn)區(qū)域,分別對(duì)應(yīng)于在樹的每一級(jí)的樹節(jié)點(diǎn)的數(shù)量;以及分布式哈希表的邏輯空間的一部分;每個(gè)所述樹節(jié)點(diǎn)包括一個(gè)關(guān)鍵字成分,其標(biāo)識(shí)與其各自的樹節(jié)點(diǎn)區(qū)域相關(guān)的一個(gè)關(guān)鍵字;將DHT的邏輯空間映射到多臺(tái)機(jī)器;每臺(tái)機(jī)器對(duì)應(yīng)于一個(gè)或更多樹節(jié)點(diǎn)區(qū)域;每臺(tái)機(jī)器從其對(duì)應(yīng)的一個(gè)或多個(gè)樹節(jié)點(diǎn)區(qū)域中,選擇其代表性節(jié)點(diǎn),該樹節(jié)點(diǎn)對(duì)應(yīng)于最大尺寸的樹節(jié)點(diǎn)區(qū)域;并且每個(gè)所述代表性節(jié)點(diǎn)選擇另一個(gè)代表性節(jié)點(diǎn)作為其父節(jié)點(diǎn),所述另一個(gè)代表性節(jié)點(diǎn)是具有較大尺寸的鄰近所述樹節(jié)點(diǎn)區(qū)域的代表性節(jié)點(diǎn)。
21.權(quán)利要求20所述的計(jì)算機(jī)可讀存儲(chǔ)器,其中根節(jié)點(diǎn)的樹節(jié)點(diǎn)區(qū)域最終劃分成k個(gè)樹節(jié)點(diǎn)區(qū)域,其中k是在樹的第一級(jí)的樹節(jié)點(diǎn)的數(shù)量;并且樹的在第i級(jí)第j個(gè)樹節(jié)點(diǎn)具有一個(gè)樹節(jié)點(diǎn)區(qū)域,其中尺寸為[j/ki,(j+1)/ki];并且關(guān)鍵字為(2j+1)/2ki;其中(0<=j(luò)<2i)。
22.權(quán)利要求21所述的計(jì)算機(jī)可讀存儲(chǔ)器,其中每個(gè)所述關(guān)鍵字具有一個(gè)值,該值是坐標(biāo)的函數(shù),其標(biāo)識(shí)了代表性樹節(jié)點(diǎn)區(qū)域的中心i級(jí)的樹包括ki個(gè)樹節(jié)點(diǎn);并且每個(gè)樹節(jié)點(diǎn)的樹節(jié)點(diǎn)區(qū)域具有的尺寸是1/ki。
23.權(quán)利要求20所述的計(jì)算機(jī)可讀存儲(chǔ)器,其中DHT管理向?qū)Φ认到y(tǒng)插入對(duì)象,以及從對(duì)等系統(tǒng)移除對(duì)象;該邏輯空間包括具有多個(gè)相關(guān)的DHT區(qū)域的多個(gè)DHT節(jié)點(diǎn);DHT的數(shù)據(jù)覆蓋圖具有數(shù)據(jù)結(jié)構(gòu)中與DHT節(jié)點(diǎn)相關(guān)聯(lián)的對(duì)象;并且具有在數(shù)據(jù)結(jié)構(gòu)的對(duì)象之間建立的連接。
24.權(quán)利要求20所述的計(jì)算機(jī)可讀存儲(chǔ)器,其中每個(gè)連接包括第一域,其提供從第一對(duì)象指向第二對(duì)象的硬連線指針;并且第二域,其提供從第一對(duì)象指向DHT節(jié)點(diǎn)的軟狀態(tài)指針,該DHT節(jié)點(diǎn)是第二對(duì)象的宿主。
25.權(quán)利要求20所述的計(jì)算機(jī)可讀存儲(chǔ)器,其中第一基元設(shè)定一個(gè)引用,該引用建立了到DHT中一個(gè)對(duì)象的指針第二基元返回由指針?biāo)玫膶?duì)象;以及第三基元?jiǎng)h除由指針引用的對(duì)象。
26.權(quán)利要求20所述的計(jì)算機(jī)可讀存儲(chǔ)器,其中數(shù)據(jù)覆蓋圖中的每個(gè)樹結(jié)點(diǎn)包括一個(gè)操作成分,其確定了在經(jīng)過(guò)該樹結(jié)點(diǎn)的數(shù)據(jù)上要執(zhí)行的一個(gè)操作。
27.權(quán)利要求20所述的計(jì)算機(jī)可讀存儲(chǔ)器,其中數(shù)據(jù)覆蓋圖中每個(gè)樹節(jié)點(diǎn)包括一個(gè)報(bào)告成分,其確定了要使用該樹結(jié)點(diǎn)生成的報(bào)告類型。
28.權(quán)利要求20所述的計(jì)算機(jī)可讀存儲(chǔ)器,其中樹的第一級(jí)包括作為樹的根節(jié)點(diǎn)的樹節(jié)點(diǎn);以及該根節(jié)點(diǎn)對(duì)應(yīng)于一個(gè)樹區(qū)域,該樹區(qū)域?qū)?yīng)于DHT的邏輯空間的全部范圍。
29.一個(gè)對(duì)等系統(tǒng),包括多個(gè)以對(duì)等方式相互作用的機(jī)器,包括一個(gè)DHT的邏輯空間,包括多個(gè)DHT節(jié)點(diǎn),該節(jié)點(diǎn)具有多個(gè)相關(guān)的DHT區(qū)域,其中DHT管理向?qū)Φ认到y(tǒng)插入對(duì)象,以及從對(duì)等系統(tǒng)移除對(duì)象;數(shù)據(jù)覆蓋圖作為在DHT邏輯空間之上的數(shù)據(jù)結(jié)構(gòu),其中DHT的數(shù)據(jù)覆蓋圖具有與DHT節(jié)點(diǎn)相關(guān)的數(shù)據(jù)結(jié)構(gòu);以及具有在數(shù)據(jù)結(jié)構(gòu)的對(duì)象之間建立的連接;數(shù)據(jù)覆蓋圖具有樹的拓?fù)?,該樹包括多個(gè)級(jí)并且包括與各自的所述DHT節(jié)點(diǎn)相關(guān)的多個(gè)樹節(jié)點(diǎn);樹節(jié)點(diǎn)包括一個(gè)根節(jié)點(diǎn),其具有相應(yīng)于DHT邏輯空間的一個(gè)樹節(jié)點(diǎn)區(qū)域;根節(jié)點(diǎn)的樹節(jié)點(diǎn)區(qū)域邏輯地劃分成多個(gè)樹節(jié)點(diǎn)區(qū)域,分別對(duì)應(yīng)于在樹的每一級(jí)的樹節(jié)點(diǎn)的數(shù)量;以及分布式哈希表的邏輯空間的一部分;每個(gè)所述樹節(jié)點(diǎn)包括一個(gè)關(guān)鍵字成分,其標(biāo)識(shí)與其各自的樹節(jié)點(diǎn)區(qū)域相關(guān)的一個(gè)關(guān)鍵字;將DHT的邏輯空間映射到多臺(tái)機(jī)器每臺(tái)機(jī)器對(duì)應(yīng)于一個(gè)或更多樹節(jié)點(diǎn)區(qū)域;每臺(tái)機(jī)器從其對(duì)應(yīng)的一個(gè)或多個(gè)樹節(jié)點(diǎn)區(qū)域中,選擇其代表性節(jié)點(diǎn),該樹節(jié)點(diǎn)對(duì)應(yīng)于最大尺寸的樹節(jié)點(diǎn)區(qū)域;并且每個(gè)所述代表性節(jié)點(diǎn)選擇另一個(gè)代表性節(jié)點(diǎn)作為其父節(jié)點(diǎn),所述另一個(gè)代表性節(jié)點(diǎn)是具有較大尺寸的鄰近所述樹節(jié)點(diǎn)區(qū)域的代表性節(jié)點(diǎn)。
30.根據(jù)權(quán)利要求29的系統(tǒng),進(jìn)一步包括將路由邏輯配置為,通過(guò)經(jīng)由樹節(jié)點(diǎn)傳送數(shù)據(jù),經(jīng)由數(shù)據(jù)覆蓋圖發(fā)送數(shù)據(jù)。
31.根據(jù)權(quán)利要求30的系統(tǒng),路由邏輯配置成,通過(guò)從DHT節(jié)點(diǎn)聚集數(shù)據(jù)以及經(jīng)由樹節(jié)點(diǎn)到樹的根節(jié)點(diǎn)向上傳送該數(shù)據(jù),經(jīng)由數(shù)據(jù)覆蓋圖發(fā)送數(shù)據(jù)。
32.根據(jù)權(quán)利要求30的系統(tǒng),其中路由邏輯配置成,通過(guò)從樹的根節(jié)點(diǎn)散發(fā)數(shù)據(jù),通過(guò)數(shù)據(jù)覆蓋圖經(jīng)由樹節(jié)點(diǎn),傳送數(shù)據(jù)到DHT節(jié)點(diǎn)。
33.用于構(gòu)建對(duì)等系統(tǒng)的設(shè)備,該設(shè)備包括用于構(gòu)建數(shù)據(jù)覆蓋圖的裝置,該數(shù)據(jù)覆蓋圖作為對(duì)于對(duì)等系統(tǒng)包括在分布式哈希表(DHT)中的邏輯空間之上的數(shù)據(jù)結(jié)構(gòu);其中DHT管理向?qū)Φ认到y(tǒng)插入對(duì)象,以及從對(duì)等系統(tǒng)移除對(duì)象;該邏輯空間包括具有多個(gè)相關(guān)的DHT區(qū)域的多個(gè)DHT節(jié)點(diǎn);并且DHT的數(shù)據(jù)覆蓋圖是通過(guò)下列步驟構(gòu)建的將數(shù)據(jù)結(jié)構(gòu)中的對(duì)象與DHT節(jié)點(diǎn)相關(guān)聯(lián);并且在數(shù)據(jù)結(jié)構(gòu)的對(duì)象之間建立連接;用于構(gòu)建數(shù)據(jù)覆蓋圖中的樹的拓?fù)涞难b置,該樹具有多個(gè)級(jí)并且包括多個(gè)與各自的所述DHT節(jié)點(diǎn)相關(guān)的樹節(jié)點(diǎn),其中樹節(jié)點(diǎn)包括一個(gè)根節(jié)點(diǎn),其具有相應(yīng)于DHT邏輯空間的一個(gè)樹節(jié)點(diǎn)區(qū)域;根節(jié)點(diǎn)的樹節(jié)點(diǎn)區(qū)域邏輯地劃分成多個(gè)樹節(jié)點(diǎn)區(qū)域,分別對(duì)應(yīng)于在樹的每一級(jí)的樹節(jié)點(diǎn)的數(shù)量;以及分布式哈希表的邏輯空間的一部分;每個(gè)所述樹節(jié)點(diǎn)包括一個(gè)關(guān)鍵字成分,其標(biāo)識(shí)與其各自的樹節(jié)點(diǎn)區(qū)域相關(guān)的一個(gè)關(guān)鍵字;用于將多臺(tái)機(jī)器映射到DHT的邏輯空間的裝置,其中每臺(tái)機(jī)器相應(yīng)于一個(gè)或多個(gè)樹節(jié)點(diǎn)區(qū)域用于選擇其代表性節(jié)點(diǎn)的裝置,該裝置從對(duì)應(yīng)于各自所述機(jī)器的一個(gè)或更多樹節(jié)點(diǎn)區(qū)域中選擇,該樹節(jié)點(diǎn)相應(yīng)于最大尺寸樹節(jié)點(diǎn)區(qū)域;并且用于為每個(gè)所述代表性節(jié)點(diǎn)選擇其父節(jié)點(diǎn)的裝置,該裝置選擇另一個(gè)所述代表性節(jié)點(diǎn)作為父節(jié)點(diǎn),該另一個(gè)代表性節(jié)點(diǎn)是具有更大尺寸的鄰近的所述樹節(jié)點(diǎn)區(qū)域的代表性節(jié)點(diǎn)。
34.權(quán)利要求33所述的設(shè)備,進(jìn)一步包括用于在每臺(tái)所述機(jī)器上聚集元數(shù)據(jù)的裝置用于將在所述機(jī)器上聚集的元數(shù)據(jù)發(fā)送到相應(yīng)的代表性節(jié)點(diǎn)的裝置;用于聚集由所述代表性節(jié)點(diǎn)接收到的元數(shù)據(jù)的裝置;并且用于將每個(gè)所述代表性節(jié)點(diǎn)所聚集的元數(shù)據(jù)發(fā)送到相應(yīng)的父節(jié)點(diǎn)的裝置;并且用于聚集由在樹的第一級(jí)的單一的樹節(jié)點(diǎn)所接收到的元數(shù)據(jù)的裝置。
35.權(quán)利要求34所述的設(shè)備,進(jìn)一步包括用于處理在樹的第一級(jí)的單一的樹節(jié)點(diǎn)聚集的數(shù)據(jù)的裝置;并且用于從樹的第一級(jí)的單一的樹節(jié)點(diǎn)經(jīng)由各自的父節(jié)點(diǎn)和代表性節(jié)點(diǎn),發(fā)送處理后的數(shù)據(jù)到每臺(tái)所述機(jī)器的裝置。
36.權(quán)利要求35所述的設(shè)備,其中元數(shù)據(jù)包括與每臺(tái)所述機(jī)器相關(guān)的信息;并且處理過(guò)的數(shù)據(jù)包括可以管理每臺(tái)所述機(jī)器的指令。
37.權(quán)利要求33所述的設(shè)備,進(jìn)一步包括用于在機(jī)器處接收來(lái)自鄰近的所述樹節(jié)點(diǎn)區(qū)域中的每臺(tái)所述機(jī)器的心跳傳送的裝置;以及當(dāng)沒(méi)有及時(shí)接收到任何所述心跳傳送時(shí),通過(guò)下列步驟證明鄰近的所述樹節(jié)點(diǎn)區(qū)域中相應(yīng)的所述機(jī)器的消失的裝置重復(fù)DHT的提供;重復(fù)構(gòu)建數(shù)據(jù)覆蓋圖作為在DHT邏輯空間之上的數(shù)據(jù)結(jié)構(gòu);并且在重建的數(shù)據(jù)覆蓋圖中重復(fù)構(gòu)建多級(jí)樹。
38.權(quán)利要求37所述的設(shè)備,其中用于記數(shù)的裝置進(jìn)一步包括裝置,用于重復(fù)多臺(tái)機(jī)器到DHT邏輯空間的映射;以及該設(shè)備進(jìn)一步包括裝置,用于選擇每個(gè)所述代表性節(jié)點(diǎn)和每個(gè)所述父節(jié)點(diǎn)作為資源可用性的最優(yōu)化函數(shù)。
39.如權(quán)利要求38所述的設(shè)備,其中最優(yōu)化函數(shù)是基于從組中選擇的標(biāo)準(zhǔn)的,該組是由網(wǎng)絡(luò)坐標(biāo)、帶寬瓶頸、最大等待時(shí)間和等待時(shí)間的變化組成的,其中最需要資源的任務(wù)由對(duì)等系統(tǒng)中擁有最多可用資源的機(jī)器執(zhí)行。
40.如權(quán)利要求33所述的設(shè)備,進(jìn)一步包括通過(guò)經(jīng)由樹節(jié)點(diǎn)傳送數(shù)據(jù)而經(jīng)由數(shù)據(jù)覆蓋圖發(fā)送數(shù)據(jù)的裝置。
41.如權(quán)利要求40所述的設(shè)備,其中路由裝置包括用于通過(guò)從DHT節(jié)點(diǎn)聚集數(shù)據(jù)以及經(jīng)由樹節(jié)點(diǎn)到樹的根節(jié)點(diǎn)向上傳送該數(shù)據(jù),經(jīng)由數(shù)據(jù)覆蓋圖發(fā)送數(shù)據(jù)的裝置。
42.如權(quán)利要求40所述的設(shè)備,其中路由裝置包括用于通過(guò)從樹的根節(jié)點(diǎn)散發(fā)數(shù)據(jù),通過(guò)數(shù)據(jù)覆蓋圖經(jīng)由樹節(jié)點(diǎn),傳送數(shù)據(jù)到DHT節(jié)點(diǎn)的裝置。
全文摘要
數(shù)據(jù)覆蓋圖被構(gòu)造成在由對(duì)等網(wǎng)絡(luò)中的分布式哈希表(DHT)確定的邏輯空間中的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)覆蓋圖包括一個(gè)具有樹節(jié)點(diǎn)的樹,每個(gè)節(jié)點(diǎn)具有映射到DHT的邏輯空間中的相應(yīng)DHT節(jié)點(diǎn)的一個(gè)區(qū)域。DHT的邏輯空間映射到機(jī)器,每個(gè)機(jī)器對(duì)主個(gè)或更多樹節(jié)點(diǎn)區(qū)域。樹節(jié)點(diǎn)由樹節(jié)點(diǎn)區(qū)域的大小和可用資源分層次地布置,以便根據(jù)機(jī)器的各自性能在對(duì)等網(wǎng)絡(luò)中執(zhí)行任務(wù),以滿足任務(wù)的要求。樹以與潛在的DHT相同的規(guī)模自組織和自結(jié)束,該樹被用于使用樹節(jié)點(diǎn)的層次,從DHT節(jié)點(diǎn)聚集信息,或向DHT節(jié)點(diǎn)散發(fā)信息。
文檔編號(hào)G06F17/30GK1708026SQ20051008780
公開日2005年12月14日 申請(qǐng)日期2005年4月13日 優(yōu)先權(quán)日2004年4月16日
發(fā)明者S·林, X·謝, Y·陳, Z·章 申請(qǐng)人:微軟公司