專利名稱:結構化對等網絡系統及其負載查詢、轉移及資源查找方法
技術領域:
本發明涉及對等網絡(Peer-to-Peer,P2P)技術領域,更具體的說,本發明涉及一種保證負載均衡的結構化對等網絡系統及其負載查詢、轉移及資源查找方法。
背景技術:
對等網絡是目前非常熱門的應用技術,所謂對等網絡是指一種分布式網絡系統,在這種網絡中,所有的節點都是對等的。通常,依照節點信息存儲與搜索方式的不同,諸多P2P網絡可以分為2大類結構化(Structured)對等網絡與非結構化(Unstructured)對等網絡系統。在非結構化的P2P系統中,每個節點存儲自身的信息或信息的索引(如指針和IP地址),而在結構化P2P網絡系統中,每個節點只存儲特定的信息或特定信息的索引。
通常,結構化的對等網絡通過哈希的方法來決定每個對象的存儲地址,因此,一但出現某個哈希鍵值對應的對象比較多的情況,系統就會出現局部負載不均衡的現象,例如基于位置敏感哈希的結構化環狀對等網絡系統,由于其對象集合本身分布不均勻,經過位置敏感的哈希函數運算以后的哈希值集合保留了原先的分布不均勻;即使是均勻分布的對象集合,經過位置敏感的哈希運算以后,仍然會由于這些函數本身的某些特性帶來新的分布不均衡問題,導致對等網絡系統中局部負載過重。
為了解決對等網絡系統中的負載不均衡問題,現有技術中采用了一種負載相關的節點加入機制,其考慮將新加入的節點加入到系統負載重的區域以幫助減輕負載不均衡的狀況,即節點加入的時候參考其加入的節點區域附近節點的負載信息,如果附近有負載較重的節點,則考慮加入到距離負載較重的節點近的地方以分擔該負載重的節點的一部分負載。
但該種方法存在如下缺陷首先,如果在負載過重的時候沒有節點加入,則系統就沒有辦法解決負載不均衡的問題;其次,如果在一段連續的節點區域內已經有了節點,并且它們的負載均過重,即使有新的節點加入系統,也無法幫助它們解決負載過重的問題;再次,把節點都加到高負載區域,由于節點會不斷上下線,則對象會不停的在節點之間轉來轉去,導致高負載區域的不穩定。
因此,需要一種更加合理的負載均衡方法,可以將節點的加入/退出給系統帶來的影響降到最低。
發明內容
本發明解決的技術問題是提供一種可保證負載均衡的結構化對等網絡系統及其負載查詢、轉移及資源查找方法,以減輕節點的加入/退出給系統帶來的影響,保持系統穩定。
為解決上述問題,本發明的一種結構化對等網絡系統的節點設備,主要包括有存儲單元存儲有對等網絡系統路由信息、對等網絡系統負載信息以及負載轉移記錄信息;負載轉移處理單元根據所述對等網絡系統負載信息選定目標負載轉移節點設備并向所述選定的目標負載轉移節點設備轉移本節點設備超重的負載;資源查找單元根據所述對等網絡系統路由信息以及所述負載轉移記錄信息進行資源查找。
另外,還包括更新處理單元定期更新所述存儲單元存儲的對等網絡系統負載信息。
可選地,所述對等網絡系統采用Chord環,所述對等網絡系統負載信息為按照Chord環系統路由信息的各個條目的節點標識區域分別對應存儲的各個節點標識區域的負載空裕的節點集合及其負載能力;所述更新處理單元包括負載查詢處理單元按照各個條目的節點標識區域分別查詢各個節點標識區域中負載空裕節點集合及其負載能力;更新單元根據所述負載查詢處理單元的查詢結果更新系統負載信息的各個條目的節點標識區域的負載空裕的節點集合及其負載能力。
可選地,所述對等網絡系統采用平衡二叉樹,所述對等網絡系統負載信息為按照平衡二叉樹系統路由信息的各個條目的子樹區域分別對應存儲的各個子樹區域的負載空裕的節點集合及其負載能力;所述更新處理單元包括負載查詢處理單元按照各個條目的子樹區域分別查詢各個節點標識區域中負載空裕節點集合及其負載能力;更新單元根據所述負載查詢處理單元的查詢結果更新系統負載信息的各個條目的子樹區域的負載空裕的節點集合及其負載能力。
可選地,所述負載轉移處理單元具體包括確定單元根據所述結構化對等網絡系統負載信息確定目標負載轉移節點設備;查詢單元查詢所述確定的目標負載轉移節點設備是否可以接受負載轉移;轉移單元若查詢結果為是,則向所述確定的目標負載轉移節點設備轉移負載。
其中,所述確定單元確定的目標負載轉移節點設備為負載空裕節點集合中選擇的負載最輕的一個節點設備或隨機選擇的一個或多個節點設備。
相應的,本發明的一種結構化對等網絡系統,包括多個節點設備,所述節點設備包括有存儲單元存儲有對等網絡系統路由信息、對等網絡系統負載信息以及負載轉移記錄信息;負載轉移處理單元根據所述對等網絡系統負載信息選定目標負載轉移節點設備并向所述選定的目標負載轉移節點設備轉移本節點設備超重的負載;資源查找單元根據所述對等網絡系統路由信息以及所述負載轉移記錄信息進行資源查找。
另外,所述節點設備還包括更新處理單元定期更新所述存儲單元存儲的對等網絡系統負載信息。
可選地,所述對等網絡系統采用Chord環,所述對等網絡系統負載信息為按照Chord環系統路由信息的各個條目的節點標識區域分別對應存儲的各個節點標識區域的負載空裕的節點集合及其負載能力;所述更新處理單元包括負載查詢處理單元按照各個條目的節點標識區域分別查詢各個節點標識區域中負載空裕節點集合及其負載能力;
更新單元根據所述負載查詢處理單元的查詢結果更新系統負載信息的各個條目的節點標識區域的負載空裕的節點集合及其負載能力。
可選地,所述對等網絡系統采用平衡二叉樹,所述對等網絡系統負載信息為按照平衡二叉樹系統路由信息的各個條目的子樹區域分別對應存儲的各個子樹區域的負載空裕的節點集合及其負載能力;所述更新處理單元包括負載查詢處理單元按照各個條目的子樹區域分別查詢各個節點標識區域中負載空裕節點集合及其負載能力;更新單元根據所述負載查詢處理單元的查詢結果更新系統負載信息的各個條目的子樹區域的負載空裕的節點集合及其負載能力。
其中,所述負載轉移處理單元包括確定單元根據所述結構化對等網絡系統負載信息確定目標負載轉移節點設備;查詢單元查詢所述確定的目標負載轉移節點設備是否可以接受負載轉移;轉移單元若查詢結果為是,則向所述確定的目標負載轉移節點設備轉移負載。
其中,所述確定單元確定的目標負載轉移節點設備為負載空裕節點集合中選擇的負載最輕的一個或多個節點設備或者隨機選擇的一個或多個節點設備。
相應地,本發明的一種結構化對等網絡系統中節點設備負載更新的方法,所述結構化對等網絡系統包括多個節點設備,各個節點設備中存儲有按照Chord環系統路由信息的各個條目的節點標識區域分別對應存儲的各個節點標識區域的負載空裕的節點集合及其負載能力的系統負載信息,主要包括如下步驟按照各個條目的節點標識區域分別查詢各個節點標識區域中負載空裕節點集合及其負載能力;按照查詢結果更新各個條目的節點標識區域的負載空裕節點集合及其負載能力。
其中,所述按照各個條目的節點標識區域分別查詢各個節點標識區域中負載空裕節點集合及其負載能力包括詢問各個條目的節點標識區域所指的節點該節點標識區域中負載空裕節點及其負載能力;各個條目的節點標識區域所指的節點設備查詢本節點設備的系統負載信息返回所述節點標識區域中的負載空裕節點及其負載能力信息。
相應地,本發明的一種結構化對等網絡系統中節點設備負載更新的方法,所述結構化對等網絡系統包括多個節點設備,各個節點設備中存儲有按照平衡二叉樹系統路由信息的各個條目的子樹區域分別對應存儲的各個子樹區域的負載空裕的節點集合及其負載能力的系統負載信息,主要包括如下步驟按照各個條目的子樹區域分別查詢各個子樹區域中負載空裕節點集合及其負載能力;按照查詢結果更新各個條目的子樹區域的負載空裕節點集合及其負載能力。
其中,所述按照各個條目的子樹區域分別查詢各個子樹區域中負載空裕節點集合及其負載能力包括詢問各個條目的子樹區域所指的節點該子樹區域中負載空裕節點及其負載能力;各個條目的子樹區域所指的節點設備查詢本節點設備的系統負載信息返回所述子樹區域中的負載空裕節點及其負載能力信息。
相應地,本發明的一種結構化對等網絡系統中節點設備的負載轉移方法,所述結構化對等網絡系統包括多個節點設備,各個節點設備存儲有所述結構化對等網絡系統負載信息,主要包括如下步驟檢查到本節點設備負載過重,查詢結構化對等網絡系統負載信息確定目標負載轉移節點設備;將本節點設備過重的負載轉移到確定的目標負載轉移節點設備。
其中,將本節點設備的負載轉移到確定的目標負載轉移節點設備之前還包括查詢目標負載轉移節點設備是否可以接受轉移負載,若是,則執行將本節點設備的負載轉移到確定的目標負載轉移節點設備,否則,則等待更新結構化對等網絡系統負載信息后重新發起轉移。
其中,所述確定的目標負載轉移節點設備為負載空裕節點設備集合中負載最輕的一個或多個節點設備或者負載空裕節點設備集合中隨機選擇的一個或多個節點設備。
相應地,本發明的一種結構化對等網絡系統中資源查找方法,所述結構化對等網絡系統包括多個節點設備,各個節點設備存儲有所述結構化對等網絡系統負載信息和負載轉移記錄信息,主要包括如下步驟按照系統路由信息確定資源所在的目標節點設備;判斷所述目標節點設備的資源是否發生轉移,若判斷結果為是,則根據資源負載轉移記錄信息確定資源轉移存放的節點設備,否則,確定所述目標節點設備為資源存放節點設備。
與現有技術相比,本發明具有以下有益效果本發明中通過在結構化對等網絡系統的各個節點設備存儲該對等網絡系統負載信息,當某個節點設備的負載過高時,根據所述對等網絡系統負載信息選擇一個負載較輕的節點設備,并將該過高的負載轉移到所述負載較輕的節點設備,從而可保證系統保持負載均衡。本發明與結構化對等網絡系統中采用何種哈希算法沒有關系,只要系統中存在負載分配不均,就可以應用本發明實現負載均衡。
圖1是本發明負載均衡方法的原理示意圖;圖2是本發明結構化對等網絡系統中的節點設備中與負載相關的功能組成示意圖;圖3是本發明負載轉移處理單元的一種實現示意圖;圖4是本發明基于Chord環存儲收集系統負載信息的示意圖;圖5是本發明基于平衡二叉樹結構存儲收集系統負載信息的示意圖。
具體實施例方式
參考圖1,本發明核心在于在結構化對等網絡系統的各個節點設備存儲該對等網絡系統負載信息,當某個節點設備的負載過高時,根據所述對等網絡系統負載信息選擇一個負載較輕的節點設備,并將該過高的負載轉移到所述負載較輕的節點設備,從而可保證系統保持負載均衡,本發明由于將節點加入/退出機制和負載平衡機制解耦,避免了負載相關的節點加入機制的天生缺陷,可實現對等網絡系統的負載均衡,下面詳細進行說明。
參考圖2,該圖是本發明與負載相關的結構化對等網絡系統中的節點設備的組成示意圖。
如圖示,本發明中結構化對等網絡系統中的節點設備包括有存儲單元11、負載轉移處理單元12以及資源查找單元13,其中存儲單元11,本發明中所述存儲單元11存儲有本節點設備的對等網絡系統路由信息以及本節點設備的對等網絡系統負載信息,為便于查詢在存儲單元中還可以存儲負載轉移記錄信息;負載轉移處理單元12,本發明中所述負載轉移處理單元12可根據所述對等網絡系統負載信息選定節點設備并向所述選定的節點設備轉移本節點設備超重的負載;作為一個具體的實現,參考圖3,所述負載轉移處理單元12可包括確定單元121,所述確定單元121主要用于根據所述結構化對等網絡系統負載信息確定目標負載轉移節點設備;查詢單元122,所述查詢單元122主要用于查詢所述確定的目標負載轉移節點設備是否可以接受負載轉移;轉移單元123,所述轉移單元123主要用于在查詢結果為是時,向所述確定的目標負載轉移節點設備轉移負載。
資源查找單元13,本發明中所述資源查找單元13可根據所述對等網絡系統路由信息進行資源查找,另外,需要說明的,若存儲單元11中存儲有負載轉移記錄信息時,本發明中所述資源查找單元13還可結合系統路由信息以及負載轉移記錄信息進行資源查找,即本發明進行資源查找時,當按照系統路由信息確定資源所在的目標節點設備后,還可判斷所述目標節點設備的資源是否發生轉移,若判斷結果為是,則根據資源負載轉移記錄信息確定資源存放的節點設備,否則,確定所述目標節點即為資源存放節點設備。
另外,本發明中還可包括更新處理單元14,本發明中所述更新處理單元14可定期更新所述存儲單元11存儲的對等網絡系統負載信息,具體實現時可采用不同的更新策略,這里不再贅述。
通過上述各個節點設備可組成本發明的結構化對等網絡系統,本發明的結構化對等網絡系統,包括多個節點設備,所述節點設備的組成結構如圖2所示,這里不再贅述。
需要說明的,本發明中系統負載信息可采用各種形式存儲,但需保證在分布式系統中進行負載轉移時,需要盡可能減少轉移的開銷;并且充分考慮到以后查詢工作的便利。
下面以基于Chord環的路由算法的系統負載信息存儲的實施例進行說明。
本實施例中基于Chord環的路由機制進行系統負載信息的存儲,在Chord環中,系統路由信息以系統路由表的形式存儲,其原理如下在一個用m位二進制代碼表示節點ID的Chord環中,一共可以容納2m個節點。節點加入系統時,首先隨機取一個數(0~2m之間)作為其ID,然后加入到系統,如果該ID沒有節點占用,則順利加入;若該ID已有節點占用,則找到該ID后面最小的空余ID加入。當系統中第一個節點加入時,它的系統路由表內所有的條目都指向它自己,這樣在系統中所有的節點都維護好各自的系統路由表的情況下,如果有一個新節點P加入,該節點的系統路由表構建方法為生成m條路由表條目,第i條條目對應ID在[p+2i-1,p+2i)范圍內節點編號最小的節點ID;如果該范圍內ID沒有被節點占用,則記錄比這個編號更大的節點中編號最小的節點ID。例如在圖4中,8號節點的第6條路由表條目(即i=6的條目)就表明[8+25,8+26)范圍中,即[40,72)范圍中編號最小的節點是48號。而第1條路由條目(i=1的條目)就表明[9,10)范圍中間沒有節點,并且14號節點是編號比9大的節點中最小的節點。在Chord環中,節點會不斷地上下線,因此每個節點設備都要不斷地檢查自己的系統路由表中的每條路由表條目信息是否正確,從而使整個系統正常運轉。
當一個節點i想要聯系節點j的時候,它首先查看j在路由表的哪個區域中,然后聯系對應的節點。以圖4為例,如果節點8想要聯系節點51,可發現51號落在第6條系統路由表的區域,因此先去聯系48;再由48號節點根據相同的策略和48號節點本身記錄的系統路由表進而找到51號節點進行數據交換。
在Chord環中,存儲的對象采用一致性哈希函數(如SHA1)將對象變換為一個整數,然后把這個對象存放在以該整數位ID的節點上。如果該節點不存在系統中,那么就存放在比這個ID大的編號最小的節點上。以圖4為例,哈希值在[9,13)范圍內的對象都被存放在14號節點上,基于此以及前述的路由策略,可以保證所有的對象都能很快被找到。
本實施例中系統負載信息收集及存儲采用依附于Chord的路由機制形式,通過每個節點設備維護一張系統負載表來收集和記錄系統的整體負載狀況(即系統負載信息)。具體的,系統負載信息為按照Chord環系統路由信息的各個條目的節點標識區域分別對應存儲的各個節點標識區域的負載空裕的節點集合及其負載能力。
而具體的系統負載信息更新方法如下首先,按照各個條目的節點標識區域分別查詢各個節點標識區域中負載空裕節點集合及其負載能力;每個節點記[log n]條條目的系統負載表,系統初始化時這些條目都為空。節點p的第i條條目記錄的是[p+2i-1,p+2i)區間內負載最輕的節點標識以及該節點的負載能力。該信息通過詢問系統路由表中所指該節點標識區域內的節點而得。具體的詢問對象是詢問系統路由表中第i條條目所指節點;詢問的內容是從該節點開始(包括該節點)后2i-1-1個節點范圍內負載較輕的節點及其負載能力,當一個節點收到查詢負載的請求以后,通過查閱自己的系統負載表前i-1條條目即可回復該查詢;這樣發起更新的節點設備即可按照查詢結果更新各個條目的節點標識區域的負載空裕節點集合及其負載能力。
實現上述的更新,作為一種具體的實現,本發明中所述更新處理單元可包括負載查詢處理單元按照各個條目的節點標識區域分別查詢各個節點標識區域中負載空裕節點集合及其負載能力;更新單元根據所述負載查詢處理單元的查詢結果更新系統負載信息的各個條目的節點標識區域的負載空裕的節點集合及其負載能力。
如果某個范圍沒有節點,那么系統負載表中對應得條目為空。這樣的系統負載表可以讓每個節點都能知道整個網絡中負載最輕或較輕的節點是誰,以便在節點超過負載能力時向其轉移一部分負載。
以圖4所示對等網絡為例,系統負載表初始化的時候,會首先創建和系統路由表相同數量的條目,每條條目都置空。然后,每個節點開始定期更新這些條目。以8號節點為例,其路由表第1、2、3、4、5、6條條目分別記錄區間[9,10)、[10,12)、[12,16)、[16,24)、[24,40)、[40,72)內的負載最輕的節點設備編號及可負載能力。這些信息是通過8號節點設備定期更新的時候,詢問得到的信息。以第3條為例,8號節點發現系統路由表中,路由信息指向14號節點,于是8號節點設備詢問14號節點設備從14號節點設備開始(包括14號節點設備),以及后面3個節點設備的范圍中載最輕或較輕的負載空裕節點集合及其負載能力,14號節點設備收到這樣的詢問以后,比較自己的負載情況以及它的系統負載表中間的前兩條條目的系統負載情況,將負載空裕節點集合及其負載能力的信息返回給8號節點。8號節點的其它條目通過類似的詢問同樣可以得到,這里不再贅述,同樣的原理,對等網絡系統中的每個節點設備也都是通過這樣的詢問來維護自己的系統負載表,這樣的好處在于,每個節點只需要維護很少量的信息就可以知道整個系統中的負載的大致情況。
另外,本發明中還可存儲負載轉移記錄信息(本實施例中以系統轉移表的形式存儲),系統轉移表記錄了所有應該存放在一個節點上的對象的實際存儲情況。以8號節點為例,由于系統中沒有5、6、7號節點存在,8號節點實際應該負責哈希值在5-8區間的所有對象。因此,8號節點可能會出現負載過重,因此它做出決策將哈希值為5的100個對象都轉移到48號節點上去;將哈希值為6、7的120個對象轉移到51號節點上去。
下面以基于平衡二叉樹結構的路由算法的系統負載信息存儲的實施例進行說明。
平衡二叉樹結構特點在于葉子節點代表具體的節點;中間的分叉節點以及樹的根則是抽象節點。如圖5所示,黑色實體節點表示已經加入系統的節點,空白節點表示還沒有節點加入的系統預留位置。節點加入的時候首先隨機取一個ID,如果該位置沒有節點,則加入到該位置;否則向右尋找一個最近的空位加入,每一個節點構造路由表是從底部往上一層一層的子樹構造,每次都向右找一棵相像的樹,然后尋找對應的節點,如果找不到,則找右側編號最小的節點。以節點7為例,第0條路由表對應向上0層的子樹,往右找到相像的節點是8號,將其記錄在系統路由表中;第1條路由表對應向上1層的子樹,往右找到相像的節點是9號,由于9號節點還未加入,則向右找到節點11,將11記錄在系統路由表中;第2條路由表對應向上2層的子樹,往右找到相像的節點11號,由于11號節點存在,則記錄在系統路由表中。第2條路由表對應向上三層的子樹,往右找到相像的節點15號,由于15號節點不存在,則向右(越界后返回0)找到節點2,記錄在系統路由表中。其它節點(如2和5)的系統路由表都可采用同樣的方法得到,這里不再贅述。
在存儲對象時,和Chord環類似,每個對象經過哈希運算后存放在對應的節點上。如果節點不存在,則存放在右側最近的節點上。如圖5中,鍵值為0,1,2,15的對象都存放在節點2上,鍵值為3,4,5的對象存放在節點5上,鍵值為6,7的對象存放在節點7上。
本實施例中系統負載表存儲以及信息收集類似Chord環,所不同的是,每一條記錄的含義略有變化。本實施例的系統負載表中,記錄的信息是從路由表一條記錄的對應節點開始到下條路由表對應的節點結束(不包括該節點)(即子樹范圍內)中間負載較輕的節點集合,即各個節點設備中存儲有按照平衡二叉樹系統路由信息的各個條目的子樹區域分別對應存儲的各個子樹區域的負載空裕的節點集合及其負載能力的系統負載信息,以7號節點為例,第1,2,3,4條系統負載表(第一列信息分別為0,1,2,3)對應的含義分別是在[8,9),[9,11),[11,15),{15,0,1,2,3,4,5,6}的范圍里負載空裕的節點集合及其負載能力的系統負載信息。
本實施例中系統負載表的更新依然通過詢問機制去更新,每個節點收到詢問以后的處理方式和在Chord環中一樣。
其具體的系統負載信息更新方法如下首先,按照各個條目的子樹區域分別查詢各個子樹區域中負載空裕節點集合及其負載能力;即詢問各個條目的子樹區域所指的節點該子樹區域中負載空裕節點及其負載能力;然后各個條目的子樹區域所指的節點設備查詢本節點設備的系統負載信息返回所述子樹區域中的負載空裕節點及其負載能力信息。
最后,按照查詢結果更新各個條目的子樹區域的負載空裕節點集合及其負載能力。
實現上述的更新,作為一種具體的實現,本發明中所述更新處理單元可包括負載查詢處理單元按照各個條目的子樹區域分別查詢各個節點標識區域中負載空裕節點集合及其負載能力;更新單元根據所述負載查詢處理單元的查詢結果更新系統負載信息的各個條目的子樹區域的負載空裕的節點集合及其負載能力。
本發明中根據存儲的系統負載信息即可進行負載轉移,即當一個節點設備檢查到本節點設備負載過重時,其首先查詢自己的系統負載表確定目標負載轉移節點設備,所述確定的目標負載轉移節點設備為負載空裕節點設備集合中負載最輕的一個或多個節點設備或者負載空裕節點設備集合中隨機選擇的一個或多個節點設備。
在確定目標負載轉移節點設備后,即可將本節點設備過重的負載轉移到確定的目標負載轉移節點設備。在轉移復雜時,系統優先考慮哈希值相等或相似的負載,將哈希值在一個值域(或者相等)的所有負載一起轉移,同時將轉移情況記錄到該節點的系統負載轉移表內。這樣既可以使查詢的時候不必依次檢查所有的項目,也使系統負載轉移表中的記錄數目保持相對較小的范圍內。在具體進行負載轉移時,待轉移的高負載節點設備首先詢問目標負載轉移節點設備是否可以接受待轉移的負載;如果可以接受,則將負載轉移給目標負載轉移節點設備;如果不能接受,則說明所知的系統負載信息已經過時;需要更新系統負載信息后繼續進行負載轉移。如果很長時間都沒有發現可以接納這些負載的節點設備,則說明整個系統的負載都已經占滿,須補充系統資源,例如擴充節點。
基于上述的轉移機制以及轉移記錄信息,在查詢一個存儲在系統中的資源時,只須按照原來的哈希方法首先計算得到該對象的哈希值,然后找到相對應的目標節點設備。在未發生負載轉移的情況下,該對象就存放在該目標節點設備上。在發生負載轉移的情況下,該對象存放的位置可以通過查找負載轉移記錄信息獲得。在查詢哈希值在一定范圍內的對象時,和查找單個對象類似,只需找到該哈希值范圍內的所有對象既可。
需要說明的,可能出現一種極端情況,既系統中同時出現很多個節點設備都超負載了,此時它們都會嘗試向系統中負載最輕的節點設備轉移負載。為此,可采用如下方式,首先,在更新系統負載表時,一旦遇到多個具有相同負載能力的節點設備同時是系統中最空閑的節點設備時,則隨機記錄一個節點,從而可以達到一定的分流效果。其次,是在系統負載信息表中,每一條目(即每一個系統節點標識區域)多記錄幾個較空閑的節點設備以及它們的負載情況。也就是說不僅僅記錄一個負載最輕的節點設備;而是記錄負載較輕的多個節點集合。這樣可以有更多負載轉移的目標節點設備可供選擇。最后,在選擇負載轉移的目標節點設備的時候,可采取比較中庸的策略,不是往系統負載最輕的節點設備轉移;而是在記錄在該節點的系統負載表中所有節點設備中所有可以承受準備轉移負載的節點設備中隨機挑選一個或多個節點設備進行負載轉移,這樣同樣可以較好的避免出現擠兌的情況。
以上所述僅是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。
權利要求
1.一種結構化對等網絡系統的節點設備,其特征在于,包括有存儲單元存儲有對等網絡系統路由信息、對等網絡系統負載信息以及負載轉移記錄信息;負載轉移處理單元根據所述對等網絡系統負載信息選定目標負載轉移節點設備并向所述選定的目標負載轉移節點設備轉移本節點設備超重的負載;資源查找單元根據所述對等網絡系統路由信息以及所述負載轉移記錄信息進行資源查找。
2.根據權利要求1所述的結構化對等網絡系統的節點設備,其特征在于,還包括更新處理單元定期更新所述存儲單元存儲的對等網絡系統負載信息。
3.根據權利要求2所述的結構化對等網絡系統的節點設備,其特征在于,所述對等網絡系統采用Chord環,所述對等網絡系統負載信息為按照Chord環系統路由信息的各個條目的節點標識區域分別對應存儲的各個節點標識區域的負載空裕的節點集合及其負載能力;所述更新處理單元包括負載查詢處理單元按照各個條目的節點標識區域分別查詢各個節點標識區域中負載空裕節點集合及其負載能力;更新單元根據所述負載查詢處理單元的查詢結果更新系統負載信息的各個條目的節點標識區域的負載空裕的節點集合及其負載能力。
4.根據權利要求2所述的結構化對等網絡系統的節點設備,其特征在于,所述對等網絡系統采用平衡二叉樹,所述對等網絡系統負載信息為按照平衡二叉樹系統路由信息的各個條目的子樹區域分別對應存儲的各個子樹區域的負載空裕的節點集合及其負載能力;所述更新處理單元包括負載查詢處理單元按照各個條目的子樹區域分別查詢各個節點標識區域中負載空裕節點集合及其負載能力;更新單元根據所述負載查詢處理單元的查詢結果更新系統負載信息的各個條目的子樹區域的負載空裕的節點集合及其負載能力。
5.根據權利要求1-4任一項所述的結構化對等網絡系統的節點設備,其特征在于,所述負載轉移處理單元具體包括確定單元根據所述結構化對等網絡系統負載信息確定目標負載轉移節點設備;查詢單元查詢所述確定的目標負載轉移節點設備是否可以接受負載轉移;轉移單元若查詢結果為是,則向所述確定的目標負載轉移節點設備轉移負載。
6.根據權利要求5所述的結構化對等網絡系統的節點設備,其特征在于,所述確定單元確定的目標負載轉移節點設備為負載空裕節點集合中選擇的負載最輕的一個節點設備或隨機選擇的一個或多個節點設備。
7.一種結構化對等網絡系統,包括多個節點設備,其特征在于,所述節點設備包括有存儲單元存儲有對等網絡系統路由信息、對等網絡系統負載信息以及負載轉移記錄信息;負載轉移處理單元根據所述對等網絡系統負載信息選定目標負載轉移節點設備并向所述選定的目標負載轉移節點設備轉移本節點設備超重的負載;資源查找單元根據所述對等網絡系統路由信息以及所述負載轉移記錄信息進行資源查找。
8.根據權利要求7所述的結構化對等網絡系統,其特征在于,還包括更新處理單元定期更新所述存儲單元存儲的對等網絡系統負載信息。
9.根據權利要求8所述的結構化對等網絡系統,其特征在于,所述對等網絡系統采用Chord環,所述對等網絡系統負載信息為按照Chord環系統路由信息的各個條目的節點標識區域分別對應存儲的各個節點標識區域的負載空裕的節點集合及其負載能力;所述更新處理單元包括負載查詢處理單元按照各個條目的節點標識區域分別查詢各個節點標識區域中負載空裕節點集合及其負載能力;更新單元根據所述負載查詢處理單元的查詢結果更新系統負載信息的各個條目的節點標識區域的負載空裕的節點集合及其負載能力。
10.根據權利要求8所述的結構化對等網絡系統,其特征在于,所述對等網絡系統采用平衡二叉樹,所述對等網絡系統負載信息為按照平衡二叉樹系統路由信息的各個條目的子樹區域分別對應存儲的各個子樹區域的負載空裕的節點集合及其負載能力;所述更新處理單元包括負載查詢處理單元按照各個條目的子樹區域分別查詢各個節點標識區域中負載空裕節點集合及其負載能力;更新單元根據所述負載查詢處理單元的查詢結果更新系統負載信息的各個條目的子樹區域的負載空裕的節點集合及其負載能力。
11.根據權利要求7-10任一項所述的結構化對等網絡系統,其特征在于,所述負載轉移處理單元包括確定單元根據所述結構化對等網絡系統負載信息確定目標負載轉移節點設備;查詢單元查詢所述確定的目標負載轉移節點設備是否可以接受負載轉移;轉移單元若查詢結果為是,則向所述確定的目標負載轉移節點設備轉移負載。
12.根據權利要求11所述的結構化對等網絡系統的節點設備,其特征在于,所述確定單元確定的目標負載轉移節點設備為負載空裕節點集合中選擇的負載最輕的一個或多個節點設備或者隨機選擇的一個或多個節點設備。
13.一種結構化對等網絡系統中節點設備負載更新的方法,所述結構化對等網絡系統包括多個節點設備,各個節點設備中存儲有按照Chord環系統路由信息的各個條目的節點標識區域分別對應存儲的各個節點標識區域的負載空裕的節點集合及其負載能力的系統負載信息,其特征在于,包括按照各個條目的節點標識區域分別查詢各個節點標識區域中負載空裕節點集合及其負載能力;按照查詢結果更新各個條目的節點標識區域的負載空裕節點集合及其負載能力。
14.根據權利要求13所述的結構化對等網絡系統中節點設備負載更新方法,其特征在于,所述按照各個條目的節點標識區域分別查詢各個節點標識區域中負載空裕節點集合及其負載能力包括詢問各個條目的節點標識區域所指的節點該節點標識區域中負載空裕節點及其負載能力;各個條目的節點標識區域所指的節點設備查詢本節點設備的系統負載信息返回所述節點標識區域中的負載空裕節點及其負載能力信息。
15.一種結構化對等網絡系統中節點設備負載更新的方法,所述結構化對等網絡系統包括多個節點設備,各個節點設備中存儲有按照平衡二叉樹系統路由信息的各個條目的子樹區域分別對應存儲的各個子樹區域的負載空裕的節點集合及其負載能力的系統負載信息,其特征在于,包括按照各個條目的子樹區域分別查詢各個子樹區域中負載空裕節點集合及其負載能力;按照查詢結果更新各個條目的子樹區域的負載空裕節點集合及其負載能力。
16.根據權利要求15所述的結構化對等網絡系統中節點設備負載更新方法,其特征在于,所述按照各個條目的子樹區域分別查詢各個子樹區域中負載空裕節點集合及其負載能力包括詢問各個條目的子樹區域所指的節點該子樹區域中負載空裕節點及其負載能力;各個條目的子樹區域所指的節點設備查詢本節點設備的系統負載信息返回所述子樹區域中的負載空裕節點及其負載能力信息。
17.一種結構化對等網絡系統中節點設備的負載轉移方法,所述結構化對等網絡系統包括多個節點設備,各個節點設備存儲有所述結構化對等網絡系統負載信息,其特征在于,包括檢查到本節點設備負載過重,查詢結構化對等網絡系統負載信息確定目標負載轉移節點設備;將本節點設備過重的負載轉移到確定的目標負載轉移節點設備。
18.根據權利要求17所述的結構化對等網絡系統中節點設備的負載轉移方法,其特征在于,將本節點設備的負載轉移到確定的目標負載轉移節點設備之前還包括查詢目標負載轉移節點設備是否可以接受轉移負載,若是,則執行將本節點設備的負載轉移到確定的目標負載轉移節點設備,否則,則等待更新結構化對等網絡系統負載信息后重新發起轉移。
19.根據權利要求17或18所述的結構化對等網絡系統中節點設備的負載轉移方法,其特征在于,所述確定的目標負載轉移節點設備為負載空裕節點設備集合中負載最輕的一個或多個節點設備或者負載空裕節點設備集合中隨機選擇的一個或多個節點設備。
20.一種結構化對等網絡系統中資源查找方法,所述結構化對等網絡系統包括多個節點設備,各個節點設備存儲有所述結構化對等網絡系統負載信息和負載轉移記錄信息,其特征在于,包括按照系統路由信息確定資源所在的目標節點設備;判斷所述目標節點設備的資源是否發生轉移,若判斷結果為是,則根據資源負載轉移記錄信息確定資源轉移存放的節點設備,否則,確定所述目標節點設備為資源存放節點設備。
全文摘要
本發明提供一種可保證負載均衡的結構化對等網絡系統及其負載查詢、轉移及資源查找方法,所述節點設備主要包括存儲單元、負載轉移處理單元以及資源查找單元。本發明通過在結構化對等網絡系統的各個節點設備存儲該對等網絡系統負載信息,當某個節點設備的負載過高時,根據所述對等網絡系統負載信息選擇一個負載較輕的節點設備,并將該過高的負載轉移到所述負載較輕的節點設備,從而可保證系統保持負載均衡。本發明與結構化對等網絡系統中采用何種哈希算法沒有關系,只要系統中存在負載分配不均,就可以應用本發明實現負載均衡。
文檔編號H04L12/46GK1937557SQ20061012206
公開日2007年3月28日 申請日期2006年9月5日 優先權日2006年9月5日
發明者韓定一, 沈霆, 俞勇, 朱賢, 呂曉雨 申請人:華為技術有限公司, 上海交通大學