專利名稱:劃分節點的工作負荷的制作方法
技術領域:
本發明通常涉及網絡,更特別地,本發明涉及劃分網絡中節點的工 作負荷。
背景技術:
大型網絡,如因特網,可以為許多對等網絡系統提供基礎結構,其正被用于為用戶提供多種服務。例如,媒體服務,如流送和譯碼;和用 于電子商務的網絡服務,如航空和旅店預定;或者用于計算和數據的網 格計算服務都可以通過大型網絡獲得。有效地利用這些網絡服務的一個根本性挑戰是在大型網絡中,如因 特網,有效并且快速地查找到所期望的服務。由于受到一些因素的影 響,發現服務的這一挑戰是復雜的。例如,如果使用集中式信息服務來 促進這樣的發現,如用于對等網絡文件共享系統中的集中式信息服務, 可用服務的數量和用戶數量的增長無法容易地進行衡量。另外,每個服 務都具有若干動態屬性,例如在信息服務中保持變化及需要更新的負荷 和等待時間。集中式信息服務可能無法維持期望的更新速率。此外,提 供具有最小停機時間(downtime)的信息服務可能需要幾個系統管理員 來維護而成本較高。最后,該信息服務應具有位置感知特性,以獲取更快 的反應時間。例如,包含對所需服務的請求的查詢應該被指引到網絡中 鄰近最初發送查詢的節點的節點,并且作為對查詢的響應而返回的服務 在網絡中也應該鄰近查詢節點。另外,如果使得信息服務可用,則信息服務應該包括自管理性質, 諸如工作負荷平衡和其它管理任務,以便最小化代價昂貴的易于出錯的 人工管理。發明內容根據一個實施例,從對等網絡中的節點集合中識別該對等網絡中具 有最高工作負荷的節點。使用劃分算法將該節點的工作負荷劃分到另一 個節點。
參考以下對實施例的詳細描述并結合附圖,所述實施例的各方面特性能夠得到更充分地認識,同時變得更容易理解,其中 圖1示出了才艮據實施例的對等網絡; 圖2示出了根據實施例的對等網絡中的覆蓋網絡; 圖3示出了才艮據實施例的屬性空間和屬性子空間; 圖4示出了根據實施例的儲存在一信息服務節點中的信息; 圖5示出了才艮據實施例路由一查詢; 圖6示出了根據實施例路由一公告;圖7示出了根據實施例的交換階段和分發(dissemination)階段; 圖8A-D示出了根據實施例的用于信息服務節點的路由表; 圖9A-C示出了根據實施例的從工作負荷劃分得到的路由表和屬性子 空間的例子;以及圖10示出了根據實施例的在全局劃分算法的開始階段中的信息服務節點;圖11A-B示出了根據實施例的應用一個全局劃分算法的例子; 圖12示出了才艮據實施例的一種應用局部劃分算法的方法的流程圖; 圖13示出了根據實施例的一種應用全局劃分算法的方法的流程圖; 圖14示出了使用等待時間報告來選擇信息服務節點以便復制的一個 例子;圖15示出了根據實施例的用于復制信息服務節點的方法的流程圖;和圖16示出了根據實施例的計算機系統。
具體實施方式
為了簡化和說明的目的,將描述所述實施例的原理。然而,本領域網絡系統中,并且任何這樣的變化都不會偏離實施例的真實精神和范 圍。此外,在以下的詳細描述中,參考了附圖,它們示出了具體的實施 例。可以對實施例進行電氣的、才幾械的、邏輯的和結構的改變,而不會 脫離該實施例的精神和范圍。
根據一個實施例,在網絡中,提供分布式信息服務用于發現服務。 所述信息服務為用戶提供關于通過網絡可利用的服務的信息。用戶向該 信息服務查詢關于期望的通過網絡可利用的服務的信息。該信息服務可 以用網絡中能夠提供期望服務的服務節點的列表來響應。所述信息服務是一種分布式信息服務,其包括在對等網絡中存儲關 于可用服務的信息的多個信息服務節點。與節點趨于瞬變的傳統對等網 絡不同,所述信息服務節點是對等結構中的穩定節點,它們很可能在一 段延長的時期里保留在對等網絡中,而不是在短時期內加入對等網絡。 所述對等網絡是在分布式結構中用于管理信息服務節點的一個例子,任 何類型的分布式結構都可以被使用,這一點對于本領域中的一般技術人 員是顯然的。信息服務的分布式特性將由于使用處理所有信息查詢的傳統中央信 息儲藏庫帶來的瓶頸最小化,并且因此改善查詢響應時間。對于對等網 絡,使用覆蓋網絡高效率地路由查詢和分布式信息服務中服務的有關信 息,以此來幫助在網絡中發現可用的服務。在這里使用的服務涉及作用于輸入的任何函數并且產生輸出。服務 的實例包括譯碼、語言翻譯、加密、圖像修復和分析、錯誤校正、以及 將內容轉換到不同的語言,等等。另外, 一種服務可以由多種服務構 成。例如, 一個服務的輸出可能是另外一個服務的輸入,等等以作為用 于構成該服務的許多中間服務。組合服務的例子有媒體服務,它包括輸 入到譯碼服務中的視頻流服務,這樣用戶就可以接收到具有在特定的終 端用戶設備上可觀看的格式的流視頻。其它類型的服務包括計算服務、數據存儲服務、以及包含共享計算 機資源的網格計算服務。例如,網格計算服務允許用戶基于規范,如應 用請求,訪問計算服務。1.系統概述圖1示出了包含用戶節點110、服務節點120、和信息服務節點130 的網絡100。所述網絡100的一個實例包括大型網絡,如因特網,在這 樣的網絡中,服務對于用戶可用。然而,所述實施例可以在較小的提供 服務的網絡中實施。用戶節點包括任何可用于接收服務的節點。典型 地,用戶節點向信息服務提交一個查詢來確定在網絡100中用戶期望的 一個服務是否可用,如果該服務可用,再確定聯系哪一個服務節點來接
收該服務。服務節點120包括可用于提供服務的節點。在用戶節點通過 查詢信息服務確定可提供所期望的服務的服務節點后,該用戶節點從該 提供所期望服務的服務節點接收該服務。節點是可以通過網絡發送和/或 接收消息的任何設備,這種設備通常能夠執行某種類型的數據處理。節 點的實例包括路由器、服務器,以及終端用戶設備,如PDA、個人計算 機、膝上電腦和便攜式電話。根據實施例,所述信息服務由信息服務節點130提供。在網絡100 中,信息服務節點130允許發現服務。除了發現服務,信息服務節點 130使用若干技術來平衡它們自己之間的工作負荷,這幾種技術在Sujoy Basu等人的名為"劃分節點的工作負荷"的待決美國專利申請(代理人 摘要號200500031 - 1 )和Sujoy Basu等人的名為"確定網絡中節點的最 高工作負荷"的待決美國專利申請(代理人摘要號200500030 - 1 )中描 述,通過完全引用將這兩個申請結合在此。如上所述,包括信息服務節點130的信息服務執行與網絡100中的 服務發現有關的功能。兩個重要的功能包括存儲與可用服務相關的信息 和響應關于可用服務的查詢。如圖2所示,在網絡100中,信息服務節 點130被提供在對等網絡200中。所述對等網絡200和和用于對等網絡 200的覆蓋網絡210尤其用于存儲信息服務節點130中服務的有關信 息,用于在信息服務節點130之間路由,并且用于響應查詢。如圖2所示,所述覆蓋網絡210覆蓋在下面的對等網絡200。覆蓋 網絡210是對等網絡200的邏輯表示,并且如以下詳細描述的那樣,其可用于基于定義服務的屬性和屬性范圍來高效率地路由查詢和服務信 息。圖2示出了位于網絡100的中心的信息服務節點130,和在覆蓋網 絡210的周圍提供的用戶節點110和服務節點120,這是為了說明對等 網絡200包括信息服務節點130并且用戶節點110和服務節點120按照 需要與對等網絡200中的信息服務節點130進行通信。所述信息服務節 點130可以被提供在網絡100中的幾個不同區域,以便將等待時間最小 化,例如,使一個用戶節點收到對查詢響應的響應所花費的時間長度。 2.屬性空間和屬性子空間一個服務可以通過為各種服務屬性指定值來表征。例如, 一個計算 服務可以由屬性值,例如,操作系統和應用程序、物理存儲器的數量、 間以及網絡帶寬來表征。 信息服務追蹤這些屬性和屬性值。每一個信息服務節點有責任追蹤 一個或多個屬性的值的某個集合。所有被追蹤的屬性的屬性值集合的組 合構成了由該信息服務節點追蹤的屬性子空間。如圖3所示,由信息服務節點130組成的信息服務包括一個屬性空 間300。所述屬性空間300包括對等網絡100中的可用服務的所有信 息。該屬性空間300是存儲在信息服務中的信息的邏輯表示。屬性空間300分布在信息服務節點130之間。為了說明,如圖3所 示,只顯示了三個信息服務節點130a-c。在屬性空間300中,每一個信 息服務節點130都被指派對一個屬性子空間負責。每一個屬性子空間與 特定的屬性和屬性值相關聯。在信息服務中, 一個服務由預定的屬性和 屬性值來定義,這些屬性和屬性值因服務而不同。屬性和屬性值被分配 給每一個信息服務節點130。確定一個服務落在信息服務節點的一個子 空間內,因此如果該服務的屬性和屬性值與分配給該信息服務節點的屬 性子空間的屬性和屬性值相匹配,則將關于該服務的信息最終存儲在該 信息服務節點中。例如, 一個屬性子空間可以包括特定屬性的屬性值。 如果服務使用與一屬性子空間的屬性值相交的一個和多個屬性值來定 義,則該服務就可能落在該屬性子空間內。下面將用一個實例進一步描 述屬性子空間。在網絡100中,用于定義所有服務的預定屬性列表包 括,磁盤空間、平均負荷、操作系統、應用程序、服務正常工作時間、 以及響應時間。網格計算服務包括共享計算機資源。網格計算服務,例 如,網格計算服務1可以基于可共享的計算機資源來定義。使用以下屬 性值來定義網格計算服務1:表1網格計算服務1的屬性和屬性值存儲器1 GB磁盤空間2. 5-5 GB操作系統Linux 2.4平均負荷0應用程序Maya, Renderman 月l務正常工作時間99.5% 響應時間<20ms如圖3所示,給信息服務節點130a分配由存儲器<1 GB的屬性值 定義的屬性子空間。網格計算服務1的^4" 310包括表1中列出的屬性 值,該公告被存儲在信息服務節點130a中,因為該信息服務節點130a 存儲了所有具有存儲器屬性值< 1 GB的公告。公告包括用于定義特定的服務的屬性和屬性值。預定屬性集合可以 被用于定義網絡100中的所有服務。每個服務節點120為預定屬性集合 中的每個屬性測量或確定屬性值。每個服務節點120還周期性地向信息 服務發送它們的公告。覆蓋網絡210自動地將該公告路由到擁有該公告 所落入的屬性子空間的合適信息服務節點。上面所示的網格計算服務1 的屬性和屬性值是網格計算服務1的/^ 130中的信息的一個實例。例 如,提供網格計算服務1的服務節點周期性地測量或確定如表1所示的 網格計算服務l的屬性值,并將包括該屬性值的公告310傳輸到覆蓋網 絡210,以存儲在擁有該公告所落入的屬性子空間的信息服務節點中。 在圖3所示的實例中,信息服務節點130將網格計算服務1的公告310 路由到信息服務節點130a,因為該信息服務節點130a存儲了所有關于 被傳輸至覆蓋網絡210,并具有存儲器<1 GB的屬性值的服務的信息。 這就是說,用"存儲器-屬性"的屬性值1GB來定義網格計算服務1, 并且1GB屬性值與信息服務節點130a的屬性子空間的屬性范圍存儲器 S1GB相交,即被包括在其中。這樣,網格計算服務1落入信息服務節點 130a的屬性子空間。上面所示的用于網格計算服務1的屬性是用于定義網絡100中的服 務的預定屬性組的實例。對于本領域普通技術人員來說很明顯,其它的 屬性也可以用于定義可用服務。另外,預定的屬性組可以用于定義服 務。然而,每個服務可以具有不同的屬性值,其被周期性地測量并被存 儲在具有相應屬性子空間的信息服務節點中。查詢同樣被存儲在對等網絡200中。例如,如圖2所示的覆蓋網絡 210可以接收圖3所示的查詢320,其包括請求具有以下屬性的服務存 儲器>1 GB以及磁盤空間-2 GB。查詢320落在屬于信息服務節點130b的 屬性子空間中。因此,經由覆蓋網絡210,將查詢320路由到信息服務 節點130b。查詢320被自動地路由和存儲到信息服務節點130b,并且信 息服務節點130b通過搜索存儲在信息服務節點130b的公告并將任何匹 配的內容發送到請求該服務的節點來響應該查詢。包括屬性空間300的覆蓋網絡210支持范圍查詢。范圍查詢包括一 個或多個用于識別所期望的服務的屬性空間。利用覆蓋網絡210,信息
服務節點130能夠將范圍查詢路由到包括該屬性值范圍的屬性子空間或 者與該查詢中的屬性值范圍相交的子空間。另外,該查詢可包括多個屬 性范圍,而且該查詢可以被路由到多于一個的信息服務節點,其具有包 括屬性范圍或與屬性范圍相交的屬性空間。 3.信息服務節點圖4示出了存儲在信息服務節點例如信息服務節點130b的一些信息 的一個實例。信息服務節點130b包括存儲緩存器410、覆蓋路由表420 以及副本位置緩存器440。存儲緩存器410存儲局部查詢401和全局查 詢402。存儲緩存器410也用來存儲局部公告405和全局公告406。所述 全局查詢402包括經由覆蓋網絡210被路由到信息服務節點130b的查 詢,因為這些查詢落在信息服務節點130b所擁有的屬性子空間中。圖3 所示的查詢320是全局查詢的一個實例。局部查詢401包括由信息服務節點130b接收到的任何查詢。例如, 信息服務節點130a接收到一個查詢并向它在覆蓋網絡210中的目的地轉 發該查詢,目的地可包括擁有該查詢所落入的屬性子空間的信息服務節 點。在向其目的地轉發之前,該查詢被本地緩存在存儲緩存器410中。 并且,在向其目的地查詢查詢之前,所述信息服務節點130b搜索存儲在 存儲緩存器410中的本地公告405,以確定是否有任何與該查詢相匹配 的公告。如果找到了匹配,則信息服務節點130b例如通過向請求該服務 的節點以及相關聯的服務節點發送相匹配的公告來響應該查詢。信息服 務節點130b可繼續向目的地路由該查詢,因為該目的地可能包括由更接近請求服務的節點的服務節點提供的、與該查詢匹配的服務的公告。或 者,如果相匹配的公告被本地緩存,信息服務節點130b就不轉發該查詢。全局公告406包括那些經由覆蓋網絡210被路由到信息服務節點 130b的公告,因為所述公告落在信息存儲節點130b所擁有的屬性子空 間中。圖3所示的公告310是信息服務節點130a的一個全局公告的實 例。局部公告405包括任何由信息服務節點130a接收的公告。例如,信 息服務節點130a可能接收一個公告并將該公告轉發到它的目的地。這些 公告都被本地緩存在存儲緩存器410中,并且如果在本地緩存中找到匹 配的公告,可以搜索它們以便為查詢提供較快的響應時間。
信息服務節點130b還包括覆蓋路由表420。該覆蓋路由表420包括 以下字段級別421、 IP地址422、概率423、以及屬性范圍424。所述 級別421 —般與信息服務節點130b和另一信息服務節點劃分其工工作負 荷的次數相關聯。當信息服務節點130b與另一信息服務節點劃分工作負 荷時,在信息服務節點130b的路由表中就會有一條新的條目被創建,其 級別高于路由表中已有的最高級別。例如,當信息服務節點130b與信息 服務節點130c劃分其工作負荷時,條目431和432就會被創建,其級別 為1。隨后,當信息服務節點130b與信息服務節點130d劃分其工作負 荷的時候,就會創建條目433,其級別為2。當確定一個服務節點與覆蓋 網絡210中的其它信息服務節點相比具有高工作負荷,就會執行工作負 荷劃分。所述概率423指明了一個信息服務節點具有所期望的數據的概 率。例如,條目430指明信息服務節點130a總是存儲存儲器《1GB的公 告,條目431指明信息服務節點130c總是存儲磁盤空間<2GB的公告。 然而,信息服務節點130c具有有50%概率的存儲磁盤空間< 5GB的公 告。在以上一并引用的美國專利申請中有對在路由表中產生條目及其概 率的進一步描述。在路由表420中的IP地址字段422用于確定一特定條目中的信息服 務節點的目的地。例如,如果信息服務節點130b接收到一個公告并確定 該公告具有存儲器屬性〈1GB,則信息服務節點130b利用條目430將該公 告路由到其下一個目的地,如信息服務節點130a。信息服務節點130a 的IP地址可以在條目430的IP地址字段中提供,并且信息服務節點 130b利用IP路由將該消息傳送到網絡200中的信息服務節點130a。副本位置緩存器440存儲的信息是關于每一個服務節點被聯系的次 數以及已經被聯系過的服務節點的等待時間。副本就是一個信息服務節 點的復制。例如,在確定原始信息服務節點被網絡100中某一區域的用 戶節點頻繁地聯系,以及/或從原始信息服務節點接收消息(諸如對查詢 的響應)的用戶節點已經歷對該信息服務節點的高等待時間的情況下, 在網絡IOO中的一個新位置復制該服務節點。信息服務節點130b可以利 用副本位置緩存器440中的信息來確定是否在網絡100中的另外一個區 域添加副本來減少等待時間。4.路由圖5示出了在覆蓋網絡210中路由查詢501的一個實例。用戶節點 110a將查詢501傳送到信息服務節點,例如,覆蓋網絡210中的信息服 務節點130a。在一個實例中,可以基于網絡鄰近度來選擇;t^網絡210 中與用戶節點建立初始聯系的信息服務節點。例如,在初始化步驟期 間,當用戶節點110a加入到對等網絡100中時,用戶節點110a接收來 自信息服務節點的消息,該消息指明在用戶節點110a較近的網絡鄰近度 內的信息服務節點的IP地址。利用基于網絡度量,如等待時間、跳數等 測量的距離來確定節點的位置信息的一個實例,在以下美國專利申請中 被描述申請號為10/767, 285,于2004年1月30日提交,發明人為Xu Zhichen等,名稱為"利用節點的位置信息選擇接近網絡中另 一節點的 節點",該專利被轉讓給本申請的專利權人。所述位置信息用于確定與 網絡中其它節點的鄰近度,并且用于選擇最接近的信息服務節點。也可 以使用確定網絡中節點的距離和位置信息的其它技術。當用戶節點110a識別了附近的一個信息服務節點,如信息服務節 點130a時,用戶節點110b將查詢501傳送到信息服務節點130a。查詢 501包括用于定義用戶節點110a所期望服務的屬性值。所述屬性值可以 是范圍或是單值。在該實例中,查詢501包括以下屬性值表2查詢501的屬性和屬性值存儲器2 GB磁盤空間10 GB操作系統Linux 2.4響應時間50-100ms信息服務節點130a接收查詢501。信息服務節點130a的屬性子空 間包括存儲器《1GB。所述查詢501包括2GB的存儲器的屬性值。所述 2GB的屬性值不包含在信息服務節點130a的屬性子空間中的存儲器< 1GB的屬性范圍內,因此查詢501不落在信息服務節點130a的屬性子空 間中。信息服務節點130a從其路由表中識別包括查詢501的屬性值的信息 服務節點。例如,信息服務節點130a從最低級別的條目開始,例如級別 0,搜索其路由表以查找包含與查詢501屬性值相交叉的屬性值的條目。 示出了一個條目510,包括級別0、信息服務節點130b的IP地址、概 率為1、以及存儲器〉1GB。基于該條目510,信息服務節點130a將查詢 501傳送到信息服務節點130b。信息服務節點130b的屬性子空間包括響 應時間〈20ms,其不包括在查詢501中指明的響應時間范圍50-100ms 內。因此,信息服務節點130d搜索其路由表并找到條目,例如條目 511。所述條目511識別信息服務節點130d,并且查詢501被傳送到信 息服務節點130d。信息服務節點130d具有包括查詢501的屬性值在內 的屬性子空間,因此查詢501落在該屬性子空間內。信息服務節點130a 確定是否有任何存儲在其全局緩存中的公告滿足該查詢。例如, 一個服 務需要具有查詢501中指定的全部屬性值,才被認為匹配。如果找到了 匹配的公告,信息服務節點130a通過向用戶節點110a發送包括例如提 供該服務的服務節點的IP地址的公告來響應查詢501。此外,信息服務 節點130a向該公告的服務節點發送消息, 一并發送的是用戶節點110a 的IP地址,指明用戶節點110a正在請求該公告中描述的月l務。查詢 501也被存儲在信息服務節點130c的全局緩存中。在轉發查詢501之前,信息服務節點130a和130b可以在其本地緩 存中存儲查詢501的副本。同樣,在轉發查詢之前,信息服務節點130a 和130b可以確定存儲在其本地緩存中的公告是否滿足查詢501。如果找 到匹配,則信息服務節點130a可以通過向用戶節點110a發送包括例如 提供該服務的服務節點的IP地址的公告來響應查詢501。此外,信息服 務節點130a可以向提供該公告中描述的服務的服務節點發送消息, 一并 發送的是用戶節點110a的IP地址,這指明用戶節點110a正在請求該乂A 告中的服務。在以上關于圖5描述的實例中,由于查詢501落在信息服務節點 130d的屬性子空間中,所以查詢501被路由到信息服務節點130d。查詢 501可以被繼續路由到其它可能包括與查詢501匹配的公告的信息服務 節點。例如,另一個信息服務節點可包括以下屬性子空間存儲器 >1GB、磁盤空間〉5GB、響應時間》20ms,以及操作系統包括Linux 1.0-2.5。信息服務節點130d可以將查詢501路由到包含以上描述的屬性子 空間的信息服務節點,因為所述查詢501落在該屬性子空間內。因此, 用戶節點110a可接收來自多個信息服務節點的搜索結果,包括在其本地 緩存中找到匹配的信息服務節點,并且用戶節點11 Oa可以選擇一個服務 節點來接收所期望的服務。
另外,應該注意到覆蓋網絡210支持范圍查詢。查詢501包括屬性 值范圍,50-100ms是屬性響應時間的范圍。查詢501可包括一個或多個 范圍,該查詢被路由到與該范圍相交的信息服務節點。例如,查詢501 可能被路由到包括屬性值50-100ms中任何值的屬性子空間。圖6示出在覆蓋網絡210中路由公告601。公告在覆蓋網絡210中 類似于查詢被路由。服務節點120周期性地測量其屬性,并將它們的包 括被測量屬性的公告傳送到覆蓋網絡210。每個公告可以包括預定屬性 組中的每個屬性的屬性值或屬性值范圍。預定屬性組的實例包括存儲 器、磁盤空間、操作系統、提供服務的服務節點的平均負荷、應用程 序、服務正常工作時間,以及提供服務的信息服務節點的響應時間。圖6示出服務節點120b產生的公告601。所述公告601包括以下內容表3公告601的屬性值 存儲器1 GB 磁盤空間2.5-5 GB 操作系統Linux 2.4 平均負荷0應用程序Maya, Renderman 服務正常工作時間99.5% 響應時間<20ms服務節點120b可以將公告601傳送到信息服務節點130a,因為, 例如,信息服務節點130a在服務節點120b附近。/>告601沒有落在屬 于信息服務節點130a的屬性子空間內,因為公告601有存儲器〉1GB,并 且信息服務節點130a的屬性子空間包括存儲器《1GB的屬性。因此信息 服務節點130a從其路由表中的條目610識別信息服務節點130b。例 如,信息服務節點130b從最低級別的條目開始搜索其路由表,查找屬性 值與公告601的屬性值相交的條目。條目610識別信息服務節點130b, 并且公告601被傳送到信息服務節點130b。公告601沒有落在信息服務 節點130b擁有的屬性子空間內,因為/>告601中的磁盤空間小于或等于 5GB。信息服務節點130b從其路由表中的條目611識別信息服務節點 130c,條目611包括屬性值磁盤空間<5GB。公告601落在信息服務節點 130c的屬性子空間內,并且被存儲在信息服務節點130c。在轉發公告
601之前,信息服務節點130a和130b將公告601存儲在其本地緩存 中。另外,信息服務節點130c可以復制公告601以存儲在其全局緩存 中,并且將公告601轉發到其它包括公告601落入的屬性子空間的信息 服務節點。4.識別Top K節點的分布式算法在圖2所示的覆蓋網絡210中,由每個信息服務節點130周期性測 量工作負荷。可以根據一個或多個度量來計算工作負荷,這些度量包括 但是不限于,所存儲的公告的數目、已處理的查詢的數目、處理一個查 詢的平均等待時間、吞吐率,例如每秒處理的查詢,等等。在每個時期的開始,信息服務節點130參與交換階段。每個時期可 以包括當執行交換階段和/或分發階段的一段時間。時期計數器或下一個 時期的開始時間可以包括在top K列表中。時期計數器或下一個時期的 開始時間可以由信息服務節點用來確定由該信息服務節點接收的列表是 否用于當前時期。在交換階段中,top K節點列表被向上路由到由信息 服務節點130組成的服務樹。在服務樹的頂端是領導者節點,其可以是 預先選擇的服務節點。將top K列表(包括由覆蓋網絡210中的信息服務節點130測量的 最高工作負荷)經由覆蓋網絡210中的每個信息服務節點130路由到圖 7所示的領導者節點710。當top K列表被路由經過每個信息服務節點 130,每個信息服務節點將其測量的工作負荷與top K列表中的其它工作 負荷進行比較。如果接收top K列表的信息服務節點的工作負荷大于 top K列表中的另一個工作負荷,則該信息^^務節點將它的工作負荷包 括在top K列表中,可能替換較小的工作負荷。top K列表可以包括預 定數目的工作負荷,K個。因而,如果top K列表包括少于K個工作負 荷,則該信息服務節點將它的工作負荷包括在top K列表中。另外,top K列表可以最初由幾個top K列表構成。例如,包括信息服務節點130 的服務樹的每個葉子可以發起一個top K列表。可以在接收幾個top K 列表的信息服務節點將這些top K列^i且合。最后,領導者節點710編 譯單個top K列表。除了 top K列表,通過覆蓋網絡210還傳播覆蓋網絡中的L最小級 別向量和最高路由表值。最小級別向量包括覆蓋網絡210中的L個最小 路由表級別。當最小級別向量經由每個信息服務節點130路由時,每個信息服務節點將其路由表的最高級別與最小級別向量中的其它值比較。 如果接收最小級別向量的信息服務節點的路由表中的最高級別小于最小 級別向量中的另 一個值,則該信息服務節點將它的最高級別包括在該最 小級別向量中,可能替換較大的值。最小級別向量可以包括預定數目的值,L個。因此,如果最小級別向量包括小于L個值,則該信息服務節 點將它的最高級別包括在最小級別向量中。另外,最小級別向量最初可 以由幾個最小級別向量構成。例如,包括信息服務節點130的服務樹的 每個葉子可以發起一個最小級別向量。可以在接收到幾個最小級別向量 的信息服務節點處將這些最小級別向量組合。最后,領導者節點701編 譯包括L個值的單個最小級別向量。覆蓋網絡210中的信息服務節點130中的路由表的最高級別也可以 經由覆蓋網絡210中的每個信息服務節點130路由到圖7所示的相同的 領導者節點701。當最高級別路由經過每個信息服務節點130,每個信息 服務節點將其路由表的最高級別與接收到的值比較。如果該信息服務節 點的路由表中的最高級別大于接收到的值,則該信息服務節點用它自己 的來替換該接收到的值。包括信息服務節點130的服務樹的每個葉子可 以發起它的最高級別。可以在接收幾個最高級別值的信息服務節點將這 些值組合。最后,領導者節點701編譯單個最高級別。為了方便最高路 由表級別可以包括在L最小級別向量中,以便利用該L最小級別向量通 it^蓋網絡發送。在交換階段,當top K列表路由到領導者節點701的時候,每個信 息服務節點130在top K列表中包括標識符,諸如IP地址。即使接收 top K列表的信息服務節點在top K列表中沒有包括其工作負荷,該標 識符也被包括。在分發階段,使用該標識符將top K列表在服務樹中經 由每個信息服務節點130向下傳送。例如,以每個信息服務節點接收到 top K列表的相反順序將top K列表傳送到每個信息服務節點130。另 外,當一個新的信息服務節點加入信息服務時,除了為該新信息服務節 點產生路由表和在全局緩存器中存儲公告和查詢之外,該新信息服務節 點接收包括在最近時期測量的工作負荷的top K列表。交換和分發階段還相對圖7進行說明。圖7示出了包括覆蓋網絡 210中的信息服務節點130a-d的服務樹的一部分。領導者節點701是 信息服務節點130a。在交換階段中,信息服務節點130a-d測量它們的
工作負荷。工作負荷的top K列表在服務樹中從葉子向上傳送,例如, 從信息服務節點130d和130e傳送到領導者節點701。信息服務節點130產生top K列表的工作負荷向量和最小級別向 量,來估計服務樹有多傾斜或服務樹有多平衡。最小級別向量可以用于 選擇進行工作負荷劃分的信息服務節點,同時試圖維持平衡的服務樹。 例如,將覆蓋網絡210中的最高(最大)路由表級別和最小級別向量中 的最小值之間的差與一個閾值進行比較。如果該差大于閾值,那么可以 選擇具有最小值的信息服務節點進行工作負荷劃分,以試圖維持平衡的 服務樹。因而,對覆蓋網絡210中的最高(最大)路由表級別和最小級 別向量中的最小值之間的差與 一個閾值的比較是估計服務樹有多傾斜或 有多平衡的一個例子。基于該估計,可以選擇信息服務節點來進行工作 負荷劃分以平衡服務樹。如圖7所示,信息服務節點130d和130e分別測量它們的工作負 荷,并且產生工作負荷向量710和711。包括最高K個工作負荷的覆蓋 網絡210中的工作負荷向量被組合形成top K列表。每個工作負荷向量 至少包括信息服務節點的標識和測量到的工作負荷。信息服務節點130d 和130e還分別產生最小級別向量720和721。最小級別向量包括該信息 服務節點的路由表中的最高級別。信息服務節點130a-d的最高級別的 例子在圖8A-D中示出,分別包括0, 2, 1, 2。最小級別向量用于形成 包括覆蓋網絡210中的K個最低級別的K最小級別列表。K最小級別列 表還包括具有覆蓋網絡210中最高級別的信息服務節點的信息服務節點 ID和路由表級別。幾個top K列表可以在交互階段交換并且在中間節點,諸如信息服 務節點130b,組合。另外,工作負荷向量710和711是發送給信息服務 節點130b的top K列表。假定K為3,信息服務節點130b將工作負荷向 量710和711和它自己的工作負荷向量組合為top K列表712。該top K 列表712 ,iL^送到領導者節點701,并且如果信息服務節點130a和/或 130c的工作負荷高于每個信息服務節點接收到的top K列表712中的工 作負荷,則top K列表712可以包括信息服務節點130a和/或130c的工 作負荷。同樣,在交換階段中,最小級別向量720和721被發送到信息服務 節點130b。信息服務節點130b將最小級別向量720和721和它自己的
最小級別向量組合為K最小級別列表722。向領導節點701發送K最小 級別列表,并且如果信息服務節點130a和/或130c的級別小于K最小級 別列表中的級別,則最小級別列表可以包括信息服務節點130a和/或 130c的最高路由表級別。另外,K最小級別列表包括具有覆蓋網絡210 中的最高級別的服務節點。可以將所述最大級別和最初選擇用于工作負 荷劃分的信息服務節點的級別之間的差與一個閾值進行比較,以確定最 初選擇用于工作負荷劃分的服務節點是否仍然選定用于工作負荷劃分。 該比較是維護平衡的服務樹的一種技術。另外,在交換階段中,將信息服務節點接收top K列表的順序存儲 在信息服務節點130,以便在分發階段中可以將該top K列表分發給所 有信息服務節點。例如,順序信息730包括信息服務節點130e和130d 的標識,諸如IP地址,使得信息服務節點130b在分發階段將top K列 表712傳送到信息服務節點130e和130d。順序信息的其它例子包括, 在信息服務節點130c的順序信息731,諸如信息服務節點130b的IP地 址,和在信息服務節點130a的順序信息732,諸如信息服務節點130c 的IP地址。因此,在分發階段中,top K列表712沿服務樹被向下傳送 到所有信息服務節點130。在分發階段中,K最小級別列表也被沿服務樹 向下傳送。top K路由算法用于基于正傳送top K列表的信息服務節點的路由 表來確定哪個信息服務節點傳送top K列表。例如,圖8A-D示出了信息 服務節點130a-d的路由表。為了將top K列表路由到領導者節點,接 收top K列表的信息服務節點將該top K列表傳送到它的路由表中的最 大級別,其負責在對應的劃分值之下的范圍。只要top K列表被路由到 領導者節點,top K列表中的信息就標識top K節點和它們的已知工作 負荷。例如,涉及圖8D中信息服務節點130d的路由表,最大或最小級 別是條目840中的級別2。條目840包括響應時間屬性的屬性劃分值 20ms。響應時間的范圍包括響應時間^20ms。因為該范圍在相應的劃分 值之下,即小于20ms的劃分值,所以將節點130b確定為接收該top K 列表的下一個節點。節點130d將top K列表傳送給節點130b。信息服務節點130b接收該top K列表,并且基于top K路由算法, 使用圖8b所示信息服務節點130b的路由表的條目820來將信息服務節 點130c識別為接收該top K列表的下一個信息服務節點。信息服務節點U0b在top K列表中包括它的工作負荷,并且將該top K列表傳送到信 息服務節點130c。在該實例中,K的值=3。另外,信息服務節點130c接收信息服務 節點130b、 130d和130e的工作負荷,如圖7所示。如果信息服務節點 130c的工作負荷小于信息服務節點130b、 130d和130e的工作負荷,則 信息服務節點130c不將它的工作負荷包括在該top K列表中。基于所述 top K路由算法,信息服務節點130c的路由表的條目830將信息服務節 點130a識別為接收該top K列表的下一個節點。信息服務節點130a確 定它的工作負荷是否大于topK列表中的三個工作負荷。如果是,則信息 服務節點130a將它的工作負荷包括在top K列表中。另外,信息服務節 點130a是領導者節點。領導者節點是在它的路由表中只具有大于相應的 劃分值的屬性范圍的信息服務節點。圖8A所示的信息服務節點130a的 路由表包括一個條目810。條目810包括大于相應的劃分值1GB的屬性 范圍。因而,信息服務節點130a的路由表只包括大于相應的劃分值的屬 性范圍,并且信息服務節點130a是領導者節點。相反,信息服務節點 130b-d包括至少一個小于相應的劃分值的屬性范圍,諸如條目820、 830和840。在領導者節點接收top K列表之后,分發階段開始。如圖7所示, 領導者節點,例如信息服務節點130a將top K列表傳送到信息服務節點 130c。該top K列表最后例如以它沿著服務樹向上被路由到領導者節點 時服務者節點先前接收它的順序的相反順序,被分發到所有信息服務節 點。top K列表包括覆蓋網絡210中的K個最高工作負荷的列表。這里 所說的列表是可以在節點之間傳送的一個或多個數據的數據表示。例 如,top K列表包括覆蓋網絡210中的最大工作負荷的值。這些值在信 息服務節點130之間傳送。除了包括工作負荷,top K列表還包括具有 top K列表中工作負荷的信息服務節點的標識符。標識符的一個例子是 IP地址,但是也可以4吏用其它標識符。5.劃分算法圖8B-D中所示的路由表可以基于用于平衡信息服務節點的工作負荷 的劃分算法而產生。 一類劃分算法是用于劃分信息服務節點(諸如top K列表中具有高工作負荷的信息服務節點)的工作負荷的局部劃分算 法。可以利用另一個信息服務節點,諸如加入覆蓋網絡的新信息服務節 點或已有的信息服務節點,來劃分所述信息服務節點的工作負荷。使用局部劃分算法來識別用來劃分信息服務節點的工作負荷的屬性 和至少一個屬性劃分值。每個公告可以包括預定的屬性集合和該屬性集合中每個屬性的可能屬性值。公告的一個例子包括如前面表3所示的屬 性集合和相應屬性值。局部劃分算法用于從所述屬性組中選擇屬性和所 選屬性的至少 一個屬性劃分值,以便劃分信息服務節點的工作負荷。圖9A-C幫助示出了當新的節點加入覆蓋網絡210的時候,信息服務 節點在它們自己之間分配工作負荷的過程。可以使用準入策略來控制覆 蓋網絡210的準入。例如,如果一個節點具有的正常工作時間大于閾 值,如果節點不是暫時的,和如果該節點包括預定的硬件屬性,諸如大 于預定閾值的處理速度、磁盤空間和存儲器,則允許該節點加入覆蓋網 絡210。在該實例中,最初信息服務節點130a是提供信息服務的唯一節點, 諸如存儲公告和響應查詢的唯一節點。然后,信息服務節點130b加入信 息服務。通過應用局部劃分算法,信息服務節點130a確定,如果信息服 務節點130a存儲公告和響應帶有存儲器《1GB的查詢,即具有存儲器< 1GB的屬性子空間,并且信息服務節點130b存儲公告并且響應帶有存儲 器〉1GB的查詢,即具有存儲器〉1GB的屬性子空間,則能夠實現其工作負 荷的平均分配。圖9A示出了該工作負荷的劃分,其顯示了在劃分之后信 息服務節點130a和130b的屬性子空間和路由表。信息服務節點130c是下一個加入信息服務的節點,覆蓋網絡210提 供該信息服務,并且一個或多個信息服務節點130a和130b的工作負荷 應該重新分配。 一種選擇是全局評估當前提供信息服務的所有信息服務 節點,例如信息服務節點130a和130b的工作負荷。這通過應用全局劃 分算法來實現,該全局劃分算法影響所有信息服務節點并且潛在地重新 分配所有信息服務節點的工作負荷。另 一種選擇是應用局部劃分算法, 每次新節點加入信息服務時,該算法劃分單個信息服務節點的工作負 荷,并且隨后周期性地執行全局重新分配。圖9B示出了信息服務節點130b的局部重新分配。可以使用不同類 型的局部劃分算法來確定如何利用信息服務節點130c劃分信息服務節點 130b的屬性子空間。在一個例子中,使用迭代的聚類算法,諸如k均值
聚類,基于由該聚類算法找到的兩個聚類,來選擇屬性和屬性劃分值。在另一個例子中,使用聚類算法,諸如相同的k均值聚類算法,來確定 三個聚類,并且這三個聚類用于選擇屬性和屬性劃分值來劃分信息服務 節點130b的工作負荷。圖9B示出了在使用聚類算法確定三個聚類以便利用信息服務節點 130c劃分信息服務節點130b的工作負荷之后,信息服務節點130b和 130c的屬性子空間和路由列表。假定磁盤空間是選定用于劃分的屬性。下面的表4示出了在利用信 息服務節點130c進行劃分之前,落入信息服務節點130b的屬性子空間 的公告和查詢的分配。該分配可以用聚類算法來確定。表4信息服務節點130b的工作負荷分配磁盤空間《2GB 40%2〈磁盤空間《5GB 20%磁盤空間〉5GB 40%如表4所示,聚類算法確定信息服務節點130b的工作負荷的80%與 磁盤空間《2GB的一個屬性值的聚類,例如40°/。,以及磁盤空間〉5GB的 另一個屬性值的聚類,例如40%,相關。這兩個聚類一起覆蓋了在劃分 之前信息服務節點130b中存儲的公告和查詢的80°/。。基于這些聚類選擇 兩個屬性劃分值。 一個劃分值是2GB。存在信息服務節點130c在劃分之后存儲具有磁盤空間屬性值《2GB 的公告的100°/。概率。這在信息服務節點130b的路由表的條目910和信 息服務節點130c的屬性子空間中反映。另一個劃分值是5GB。存在信息 服務節點130b在劃分之后存儲具有磁盤空間屬性值^GB的公告的100% 概率。這在信息服務節點130c的路由表的條目920和信息服務節點 130b的屬性子空間中反映。由聚類算法確定的第三聚類包括以下范圍^B〉磁盤空間<5GB。該 聚類算法確定信息服務節點130b的20%工作負荷與第三聚類有關。信息 服務節點130b或130c可以被賦予某個概率來存儲落入第三聚類的公告 和查詢。概率可以賦予為基本上等于在信息服務節點130b和130c接收 和存儲公告的比率。信息服務節點130b和130c的路由表的條目912和 922分別示出了在該條目中所列出的信息服務節點將找到一個公告的概 率。例如,帶有磁盤空間屬性值大于2GB的查詢可以被路由到信息服務 節點130c (基于其屬性子空間)。如果沒有找到匹配,則基于條目922 將該查詢路由到信息服務節點130b,因為帶有磁盤空間屬性值大于2GB 的公告存儲在信息服務節點130b中的概率是50%。在利用信息服務節點130c的屬性子空間劃分了信息服務節點130b 的屬性子空間之后,信息服務節點130b將所存儲的所有落入信息服務節 點130c的屬性子空間的公告和查詢發送到信息服務節點130c。從而, 信息服務節點130c準備好響應落入它的屬性子空間的查詢。圖9C示出了在對信息服務節點130b應用了一種劃分算法以便將用 于信息服務節點130d劃分信息服務節點130b的工作負荷之后,信息服 務節點130b和130d的路由表和屬性子空間。在該例子中,使用迭代聚 類算法,諸如k均值聚類算法,基于由該聚類算法找到的兩個聚類來選 擇屬性和屬性劃分值。所選擇的屬性是響應時間,并且根據所述兩個聚 類確定的劃分值是20ms。例如,該聚類算法確定,針對響應時間屬性, 可以將信息服務節點130b存儲的公告和查詢分為兩個聚類。 一個聚類包 括屬性值〈20ms,另一個聚類包括屬性值^20ms。因而,選擇20ms的屬 性劃分值,并且基于該20ms的屬性劃分值,用信息服務節點130d來劃 分信息服務節點130b的工作負荷。如上所述,可以使用劃分算法來選擇屬性和用于劃分信息服務節點 的工作負荷的劃分值。劃分算法的一個例子是識別兩個聚類的k均值聚 類算法,用以確定屬性和劃分值。k均值聚類算法是用于將數據全域分組為預定數目的聚類的已知算法。例如,如果選擇了兩個聚類,那么全 域中的每個數據點被隨機分配到兩個聚類之一,以使得每個聚類中有大約相同數目的數據點。然后,對每個聚類中的每個數據點進行評估,以 基于其到聚類的最小距離來確定其屬于哪個聚類。例如,在信息服務節 點130b對存儲器屬性進行聚類。信息服務節點130b確定其中存儲的所 有公告的存儲器屬性值。分別以1GB和5GB為中心選擇兩個聚類。對每個屬性值進行評估,以基于到聚類的最小距離來確定其屬于哪 個聚類。例如,0. 25GB的屬性值相對于5GB更接近1GB,因而0. 25GB的 屬性值被分配到1GB聚類。4GB的屬性值更接近于5GB并且被分配到5GB 聚類。 一直進行評估,直到沒有數據點需要被重新分配到不同的聚類。
在具有數字值的預定屬性組中為每個屬性確定兩個聚類。例如,表3示出了包括該組中每個屬性的的屬性值的公告的例子。對于每個屬性 進行聚類,除了應用程序屬性,因為應用屬性值不是數字的。在應用k均值聚類算法為每個屬性確定兩個聚類之后,使用至少一 個最優化標準來選擇所述屬性中的一個進行劃分。然后,基于所述聚類 為所選的屬性確定劃分值。最優化標準的一個例子可以包括對其的聚類 產生兩個聚類之間最小的尺寸差的屬性。另一個例子可以包括將每個聚 類中的每個屬性值組標準化為0到1的范圍內的值,并且隨后選擇具有 最小平方差(k均值聚類會聚在此)的屬性。也可以使用其它最優化度 量來評估每個屬性,使得所選擇的屬性具有允許最優劃分信息服務節點 的工作負荷的聚類。在選擇屬性之后,基于所選屬性的聚類來確定劃分值。例如,Ml和 M2分別是每個聚類C1和C2的屬性值的均值,并且M1〈M2。令Max(Cl) 是Cl的最大屬性值,而Min (C2)是C2的最小屬性值。劃分值等于 (Max (Cl) + Min ( C2 ) ) /2。k均值聚類算法也可以用來確定三個聚類,以便識別用于劃分信息 服務節點的工作負荷的屬性和劃分值。均值k聚類算法用于為預定屬性 集合中具有數字值的每個屬性確定三個聚類。在應用k均值聚類算法為 每個屬性確定三個聚類之后,使用至少一個最優化標準來選擇所述屬性 中的一個用于劃分。然后,基于所述聚類,為所選的屬性確定劃分值。 可以使用上述的最優化標準。在選擇屬性之后,基于所選屬性的聚類來確定劃分值。例如,Ml, M2,M3分別是每個聚類C1,C2,C3的均值,使得M1〈M2〈M3。將聚類Cl的 公告分配到信息服務節點之一,例如信息服務節點130c,并且將聚類C3 的公告分配到另一個信息服務節點,例如信息服務節點130b。將第三個 聚類C2的公告基于概率分配到信息服務節點130b或130c之一。為了保 證兩個信息服務節點之間工作負荷的均勻分布,確定將來自聚類C2的公 告分配給信息服務節點130b或130c之一的概率P和(l-P ) 。 P的值由 下式給定Size(Cl)+P*Size(C2) = (l-P)*Size(C2)+Size(C3)。兩個劃分 值,諸如圖9B所述的2GB和5GB是Max(Cl)和Min(C3)。k均值聚類算法是用于選擇屬性值和確定一個或多個屬性劃分值的 一類聚類算法。也可以使用其它類型的聚類算法,諸如實體均值 (entity means)聚類或其它類型的統計分析,來確定數據之間的相似 性,例如每個公告的屬性的屬性值,并且將相似的數據分組以便劃分工 作負荷。上述局部劃分算法用于利用另 一個信息服務節點(諸如新加入覆蓋 網絡210的信息服務節點)劃分一個信息服務節點的工作負荷,被劃分 的節點可以是具有最高的或top K列表中最高工作負荷之一的信息服務 節點。另一種選項是全局評估所有信息服務節點的工作負荷,并且可能 為所有信息服務節點重新分配工作負荷,以便平衡信息服務節點130的 工作負荷。這通過應用全局劃分算法來實現,該算法影響所有信息服務 節點并且可能重新分配所有信息服務節點的工作負荷。全局劃分算法可以用于平衡大量信息服務節點或所有信息服務節點 的工作負荷,而不是單個信息服務節點的工作負荷,并且也改善覆蓋網 絡210中的等待時間。例如,如果對覆蓋網絡210的一個區域中的許多 信息服務節點應用了局部劃分算法,則該區域中的信息服務節點的工作 負荷可以更好的平衡。但是,覆蓋網絡210中的等待時間可能增加,因 為要到達覆蓋網絡中的最終目的地(例如擁有公告落入的屬性子空間的 信息服務節點)可能采取更多跳。全局劃分算法可以用于平衡覆蓋網絡 210中的所有信息服務節點的工作負荷,并且最小化等待時間。可以周 期性地執行全局劃分算法,并且可以在信息服務中的處理在歷史上較低 時執行,以便最小化信息服務的中斷。對所有信息服務節點的全局評估開始于在每個信息服務節點匯總由 相應信息服務節點在一段時間內接收的所有公告。匯總的例子可以包括 直方圖,例如,在前24小時內接收的公告的20%具有在4和5GB之間的 存儲器,20%具有在0.5和1GB之間的存儲器等。可以為每個屬性提供直 方圖。也可以以直方圖之外的其它形式提供匯總。圖IO示出了在全局劃分算法的開始階段的信息服務節點130。圖10 示出了信息服務節點130將匯總1020發送到中央節點1010。中央節點 1010可以是信息服務節點130之一。在另一個例子中,中央節點1010 可以包括多個信息服務節點,每個都被指派從例如附近的信息服務節點 接收匯總。在這個例子中,該多個中央節點彼此通信,以實施全局劃分 算法。 中央節點1010在來自每個信息服務節點的匯總的完整輸入上應用劃分算法。劃分算法可以包括上述局部劃分算法之一。例如,可以使用聚類算法,例如k均值聚類算法,根據來自信息服務節點的匯總為每個屬 性識別兩個聚類。基于所計算的聚類來選擇屬性和劃分值。例如,如圖 11A所述,可以選擇存儲器屬性并且劃分值可以是2GB。然后,從提供匯 總的信息服務節點的集合1100中選擇信息服務節點130d和130a。基于 所述劃分值,給信息服務節點130d和130a分配屬性子空間。例如,給 信息服務節點130d分配存儲器《2GB的屬性子空間,并且給信息服務節 點130a分配存儲器〉2GB的屬性子空間,并且為該兩個信息服務節點的 每一個創建路由表。然后,劃分具有最大聚類的信息服務節點。例如, 如果具有存儲器〉2GB的公告比具有存儲器《2GB的公告多,例如根據圖 10所示的匯總1020確定,那么利用另一個信息服務節點來為信息服務 節點130a劃分具有存儲器〉2GB的公告的聚類。圖11B示出了所選的用 來劃分信息服務節點130a的工作負荷的信息服務節點130f。重復該處 理,直到覆蓋網絡210中所有的信息服務節點被分配了屬性子空間。在 一個例子中,每次劃分一個聚類時,信息服務節點可以從集合iioo任意 選擇。在已經為集合100中的所有節點分配新的屬性子空間和產生新的路 由表之后,將公告發送到具有每個公告落入的屬性子空間的信息服務節 點。例如,每個信息服務節點將存儲在它的全局緩存器中的公告發送到 已經被分配了對應的屬性子空間的信息服務節點。可替換地,每個信息 服務節點130可以清空它們的全局緩存器,并且等待下一次報告來自服 務節點120的給覆蓋網絡210的公告。例如,圖1和2所示的服務節點 120可以周期性地向覆蓋網絡210發送公告,并且因此信息服務節點130 可以等待下一次報告,以便存儲與各自的屬性子空間有關的公告。替代使用上述的兩聚類局部劃分算法,全局劃分算法也可以應用三 聚類局部劃分算法,其中為第三個聚類確定概率。應用三聚類局部劃分 算法,直到窮盡提供匯總的信息服務節點的集合。然后,基于新分配的 屬性子空間,重新填充全局緩存器。圖12示出了依照實施例應用局部劃分算法的流程圖。在步驟 1201,覆蓋網絡210中的信息服務節點,諸如信息服務節點130b,接收 一個請求。該請求可以是加入請求或者引起對信息服務節點130b的工作 負荷劃分的任何消息。例如,信息服務節點130b可以是top K列表中具 有最高工作負荷,或者top K列表中最高工作負荷之一的信息服務節 點。覆蓋網絡210中的最大路由表級別(可在如上參照圖7描述的K最 小級別列表中提供),和所選信息服務節點的最高路由表級別(也可以 在K最小級別列表中提供),在選擇用于劃分的信息服務節點時也可以 加以考慮。例如,信息服務節點130c向覆蓋網絡210傳送加入請求。該 加入請求可以傳送到確定在信息服務節點130c的附近網絡的信息服務節 點,諸如信息服務節點130e。信息服務節點130e在top K列表中選擇 具有最高工作負荷的信息服務節點130b。信息服務節點130e還將信息 服務節點130b的最高路由表級別和覆蓋網絡210的最大路由表級別相比 較。如果在所述路由表級別之間的差大于閾值,那么可以選擇另一個信 息服務節點用于劃分。該另一個信息服務節點可以是來自top K列表的 另一個信息服務節點。通過利用該路由表級別比較,可以將由于在服務 樹的一個區域中進行過度劃分導致的不平衡的服務樹最小化。在1202,如果在步驟1201選擇了信息服務節點130b,則信息服務 節點130b應用局部劃分算法來劃分信息服務節點130b的工作負荷。例 如,信息服務節點130b應用上述的局部劃分算法之一來選擇屬性和至少 一個屬性劃分值以利用信息服務節點130c劃分信息服務節點130b的工 作負荷。圖13示出了依照實施例應用全局劃分算法的方法1300的流程圖。 該方法1300參照圖10和圖11A-B描述,并且只作為例子而不是限制。 在步驟1301,中央節點1010從信息服務節點130接收匯總1030。在步驟1302,中央節點1010基于對該匯總的統計分析選擇屬性和 至少一個屬性劃分值。該統計分析可以包括上述對匯總1030的局部劃分 算法應用。在步驟1303,中央節點1010給兩個節點,例如來自圖ll所示的信 息服務節點組1100的信息服務節點130d和130a,好象這兩個節點是覆 蓋網絡210中僅有的信息服務節點。分配的工作負荷基于至少一個劃分 值。在步驟1304,中央節點1010確定是否組1100中的所有信息月良務節 點已經被分配工作負荷。如果不是,則重復步驟1302和1303。 6.副本分配
依照一個實施例,當新的節點可以加入覆蓋網絡210時,轉發一個 加入請求,以便例如轉發到top K列表中具有最高工作負荷的信息服務 節點。然后,該信息服務節點基于局部劃分算法的應用,利用該新的節 點來劃分其工作負荷。在某些情況中,不是劃分信息服務節點的工作負 荷,而是在如圖1和2所示的網絡100的另一個區域中復制一個現有的 信息服務節點更有利,以便減少在請求特定服務的信息的用戶節點和存 儲與該請求相關的公告的信息服務節點之間的等待時間。例如,如果確 定用戶節點經歷了從處理請求和發送結果給用戶節點的信息服務節點的 高等待時間,那么可以在網絡100中的一個新位置復制信息月良務節點。在一個例子中,如果top K列表中的工作負荷低于一個閾值,可以 復制信息服務節點來代替劃分信息服務節點的工作負荷。然后,可以假 定復制信息服務節點來減少等待時間比減少信息服務節點的工作負荷更 有利。如果信息服務節點和用戶節點之間的等待時間大于閾值,可以復制 特定的信息服務節點。可以在復制信息緩存器中為每個信息服務節點存 儲等待時間。如圖4所示,信息服務節點130b的復制位置緩存器440存 儲與某些信息服務節點的等待時間相關的信息。信息服務節點130b可以 使用服務位置緩存器440中的信息來確定是否在網絡100的另一個區域 添加一個副本來減少等待時間。例如,圖14示出了從在信息服務節點 130b附近的用戶節點110a-110c接收等待時間才艮告1410a-c的信息服 務節點130b。信息服務節點130b可以是用戶節點110a-c在發送請求 到覆蓋網絡210時最初聯系的節點。報告1410a-c包括來自處理請求和 向用戶節點110a-c發送結果的信息服務節點的等待時間。報告1410a -c還包括相應的每個信息服務節點的標識和每個等待時間。等待時間 和信息服務節點標識存儲在副本位置緩存器440中。信息服務節點130b 從節點1420接收加入請求。信息服務節點130b確定top K列表中的工 作負荷是否在閾值之下。如果工作負荷在閾值之下,那么信息服務節點 130b從副本位置緩存器中選擇具有高等待時間的信息服務節點。在一個 例子中,選擇從副本位置緩存器440識別的具有大于閾值的等待時間的 信息服務節點進行復制,例如信息服務節點130f。信息服務節點130f 被復制,其可以包括復制全局緩存器和在是副本的信息服務節點1420中
存儲公告。網絡鄰近度信息,諸如節點之間的距離,可以基于諸如往返 時間、跳數等網絡度量。圖15示出了依照實施例用于復制信息服務節點的方法1400的流程 圖。方法1400參照圖14所示的例子描述,只作為例子而不是限制。在 步驟1501,信息服務節點130b從試圖進行工作負荷劃分或復制的節點 1420接收請求,例如加入請求。在步驟1502,信息服務節點130b確定是否復制信息服務節點或劃 分信息服務節點的工作負荷。在一個例子中,如果top K列表中的工作 負荷低于一個閾值,可以復制信息服務節點而不是劃分信息服務節點的 工作負荷。在步驟1503,信息服務節點130b確定復制信息服務節點,信息服 務節點130b選擇要進行復制的信息服務節點。當選擇要復制的信息服務 節點時考慮的因素包括,信息服務節點的等待時間和節點1420和用戶節 點之間的距離。關于距離,例如,如果信息服務節點130b是從用戶節點 接收報告的節點,則選擇一個新的節點作為副本,其在具有高等待時間 的用戶節點和信息服務節點130b的相同的網絡臨近度內。在步驟1504,復制所選的信息服務節點。例如,將信息服務節點 130f的全局緩存器和路由表復制到節點1420。圖16示出了計算機系統1600的結構圖,其可被用作覆蓋網絡210 中的一個信息服務節點。所述計算機系統1600包括一個或多個處理器, 例如處理器1002,其為執行軟件提供了一個執行平臺。來自處理器1002的命令和數據通過通信總線1004進行通信。計算 機系統1600還包括軟件運行時可以常駐的主存儲器1606,如隨M取 存儲器(RAM),以及輔助存儲器1608。該輔助存儲器1608例如包括硬 盤驅動器1610和/或可移動存儲驅動1612,代表有軟盤驅動器、磁帶驅 動器、光盤驅動器等,或者是可以存儲軟件副本的非易失性存儲器。所 述輔助存儲器1608還可包括ROM (只讀存儲器)、EPROM (可擦除,可 編程ROM) 、 EEPROM(電可擦除,可編程ROM)。除了軟件、路由表、全 局信息表以及測量的服務質量(QoS)特性,測量的可用帶寬和需要的帶 寬可以被存儲在主存儲器1606和/或輔助存儲器1608中。所述可移動存 儲驅動1612以眾所周知的方式從可移動存儲單元1614中讀取和/或寫入
計算機系統1600的用戶接口具有一個或多個輸入設備1628,例 如,鍵盤、鼠標、手寫筆,以及類似的設備。顯示適配器1622與通信總 線1604和顯示器1620對接,接收來自處理器1602的顯示數據并為顯示 器1620將顯示數據轉換為顯示命令。網絡接口 1630被提供用于通過圖 1所示的網絡200與其它的節點進行通信。當軟件被嵌入在計算機可讀媒體上時,如存儲器1606和/或1608, 方法1200、 1300和1500中的一個或多個步驟可以在計算機系統1600上 執行,例如,由處理器1602來執行。這些步驟可以由計算^L程序體現, 其能夠以多種激活和未激活的形式存在。例如,它們可以以軟件程序的 形式存在,該軟件程序可以由源代碼、目標代碼、可執行代碼或者其它 格式的程序指令組成,用來執行某些步驟。以上任何內容都能以壓縮或 者非壓縮的形式體現在計算機可讀媒體上,包括存儲設備和信號。計算機可讀設備的適當的實例包括傳統的計算機RAM (隨機存取存 儲器)、ROM (只讀存儲器)、EPROM (可擦除,可編程ROM) 、 EEPROM (電可擦除,可編程ROM),以及磁盤或者光盤。計算機可讀信號的例 子,無論是否利用栽波調制,是容納或運行計算機程序的計算機系統可 以配置來訪問的信號,包括通過因特網或者其它網絡下栽的信號。前述 的具體實例包括CD ROM上的和通過因特網下載的程序的分派。在某種意 義上,作為一個抽象的實體,因特網本身就是一個計算機可讀媒體。一 般的計算機網絡也是同樣。因此,可以理解,執行以上描述的功能的任 何電子設備都可以執行下面列舉的那些功能。盡管已經參考實例描述了實施例,本領域的熟練技術人員能夠對所 描述的實施例做各種修改,而不會偏離其真實精神和范圍。這里使用的 術語和描述僅以說明的方式列出,并不是作為限制。尤其是,盡管用實 例描述了這些方法,但是可以以與舉例說明的不同順序執行或者是同時 執行該方法的步驟。本領域的熟練技術人員將會認識到這些和其它變化 都可以在隨附權利要求和其等價物所定義的精神和范圍內。
權利要求
1.一種方法,包括在節點130b接收請求,該節點130b的工作負載被確定為在對等網絡210中的節點的最高負荷集合712中;使用劃分算法,利用對等網絡210中的第二節點130c來劃分節點130b的工作負荷。
2. 權利要求l所述的方法,其中對等網絡210中的節點130用于存 儲與服務的屬性和屬性值有關的信息,并且劃分信息服務節點130b的工 作負荷還包括使用劃分算法來確定屬性和至少一個屬性劃分值; 基于該屬性和至少一個屬性劃分值來劃分節點130b的工作負荷。
3. 權利要求2所述的方法,其中劃分節點130b的工作負荷還包括為該屬性確定兩個屬性值范圍,其中第一范圍包括低于所述至少一 個屬性劃分值的屬性值,并且第二范圍包括高于所述至少一個屬性劃分 值的屬性值;分配節點130b來存儲與具有兩個范圍之一中的屬性值的服務相關的 信息;分配第二節點130c來存儲與具有兩個范圍中另一個中的屬性值的月良 務相關的信息。
4. 權利要求3中所述的方法,其中劃分節點的工作負荷還包括 從節點130b向第二節點130c傳送用于服務的信息,其中所傳送的信息包括具有分配給第二節點130b的范圍中的屬性值的用于服務的信 息。
5. 權利要求3所述的方法,其中劃分節點130b的工作負荷還包括使用節點130b的路由表產生第二節點130c的路由表,其中第二節 點130c的路由表包括與節點130b的最高級別條目相關的最高級別條 目。
6. 權利要求3所述的方法,其中劃分算法包括聚類算法,并且使用劃分算法來選擇屬性和至少一個屬性劃分值還包括使用聚類算法從在節點存儲的數據確定至少兩個聚類; 基于該至少兩個聚類來選擇屬性和屬性劃分值。
7. 權利要求3所述的方法,其中所述劃分算法包括聚類算法,并且 使用劃分算法來選擇屬性和至少一個屬性劃分值還包括使用聚類算法從在節點130b存儲的數據確定三個聚類; 基于該三個聚類來選擇屬性和兩個屬性劃分值。
8. 權利要求7所述的方法,其中劃分節點130b的工作負荷還包括基于兩個屬性劃分值,為所選的屬性確定三個屬性值范圍; 分配節點130b來存儲與具有三個范圍之一中的屬性值的服務相關的 信息;分配第二節點130c來存儲與具有三個范圍中的第二范圍中的屬性值 的服務相關的信息;分配節點130b和第二節點130c來存儲與具有三個范圍中的第三范 圍中的屬性值的服務相關的信息。
9. 權利要求8所述的方法,其中分配節點130b和第二節點130c來存儲與具有三個范圍中的第三范圍中的屬性值的服務相關的信息還包括 分配節點130b和第二節點130c存儲與具有三個范圍中的第三范圍 中的屬性值的服務相關的信息的概率。
10. —個在網絡210中的節點130b,其中該節點130b是網絡210 中確定具有最高工作負荷的節點集合中的一個,節點130b包括網皿口 1530,用于接收加入請求;處理電路1502,用于應用聚類算法來利用加入網絡210的另一個節 點130c劃分節點130b的工作負荷。
全文摘要
為了應付在擴展的網絡中的增長的工作負荷,需要非中央化的工作負荷平衡技術,該技術也可以減少在通信高峰的響應時間,為此從對等網絡的節點組中識別具有對等網絡(210)中的最高工作負荷的節點。使用劃分算法,利用另一個節點(130c)劃分節點(130b)的工作負荷。
文檔編號H04L29/08GK101133622SQ200580047830
公開日2008年2月27日 申請日期2005年12月6日 優先權日2004年12月7日
發明者P·沙馬, S·-J·李, S·巴納吉, S·巴蘇 申請人:惠普開發有限公司