專利名稱:分布式哈希表網(wǎng)絡(luò)的負(fù)載均衡實(shí)現(xiàn)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種分布式哈希表(Distributed Hash Table,簡(jiǎn)稱為DHT)網(wǎng)絡(luò)的負(fù)載均衡實(shí)現(xiàn)方法及裝置。
背景技術(shù):
目前,分布式哈希表(DHT)已成為點(diǎn)對(duì)點(diǎn)(P2P)疊加網(wǎng)絡(luò)的主要組織形式,其存儲(chǔ)負(fù)載均衡主要使用虛擬標(biāo)識(shí)的方法實(shí)現(xiàn)。在分布式哈希疊加網(wǎng)絡(luò)中同時(shí)具有節(jié)點(diǎn)ID與虛擬標(biāo)識(shí)兩種不同屬性的標(biāo)識(shí)。其中,節(jié)點(diǎn)ID用于區(qū)分不同節(jié)點(diǎn),維護(hù)分布式哈希表疊加網(wǎng)絡(luò);虛擬標(biāo)識(shí)用于將哈希表空間分割成多個(gè)區(qū)間并分配到節(jié)點(diǎn)。在一個(gè)分布式哈希表疊加網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)ID都不相同,每個(gè)虛擬標(biāo)識(shí)也都不相同。允許出現(xiàn)節(jié)點(diǎn)ID相同于虛擬標(biāo)識(shí)的情況。疊加網(wǎng)絡(luò)中根據(jù)全部節(jié)點(diǎn)的全部虛擬標(biāo)識(shí)和一定的分割規(guī)則,將哈希表空間分為多個(gè)區(qū)間。區(qū)間數(shù)量與虛擬標(biāo)識(shí)數(shù)量等同,每個(gè)區(qū)間與一個(gè)虛擬標(biāo)識(shí)互相關(guān)聯(lián)。哈希表區(qū)間由與其關(guān)聯(lián)的虛擬標(biāo)識(shí)所屬的節(jié)點(diǎn)負(fù)責(zé)。由于每個(gè)節(jié)點(diǎn)擁有多個(gè)虛擬標(biāo)識(shí),因此,每個(gè)節(jié)點(diǎn)需要負(fù)責(zé)多個(gè)哈希表區(qū)間。而疊加網(wǎng)絡(luò)中的每個(gè)數(shù)據(jù)資源被分配一個(gè)唯一的資源標(biāo)識(shí), 若某數(shù)據(jù)資源的資源標(biāo)識(shí)位于某一哈希表區(qū)間內(nèi),該數(shù)據(jù)資源由與負(fù)責(zé)該哈希表區(qū)間的虛擬標(biāo)識(shí)所在的節(jié)點(diǎn)保存。這樣,疊加網(wǎng)絡(luò)中的所有節(jié)點(diǎn)ID與虛擬標(biāo)識(shí)組成兩個(gè)不同的邏輯環(huán)路。虛擬標(biāo)識(shí)將哈希表空間進(jìn)行更精細(xì)的劃分,每個(gè)虛擬標(biāo)識(shí)負(fù)責(zé)相應(yīng)的哈希塊,資源標(biāo)識(shí)落在該哈希塊內(nèi)的數(shù)據(jù)資源由該虛擬標(biāo)識(shí)負(fù)責(zé)保存,從而起到提升網(wǎng)絡(luò)負(fù)載均衡效果的作用。如
圖1所示,假設(shè)哈??臻g為0-63被12個(gè)虛擬標(biāo)識(shí)均等分割成12份。網(wǎng)絡(luò)中有 A、B、C和D四個(gè)節(jié)點(diǎn),四個(gè)節(jié)點(diǎn)分別具有各自的節(jié)點(diǎn)ID :附、_、擬8、附9,并且假設(shè)這四個(gè)節(jié)點(diǎn)能力相同。則每個(gè)節(jié)點(diǎn)均具有三個(gè)虛擬標(biāo)識(shí),如節(jié)點(diǎn)B具有三個(gè)虛擬標(biāo)識(shí)P8、P28和 P43。資源對(duì)象根據(jù)資源標(biāo)識(shí)與虛擬標(biāo)識(shí)的關(guān)系由相應(yīng)的虛擬標(biāo)識(shí)負(fù)責(zé)保存(如資源標(biāo)識(shí)為K5的,就由虛擬標(biāo)識(shí)P8負(fù)責(zé))。其中,如表1所示,節(jié)點(diǎn)B的三個(gè)虛擬標(biāo)識(shí)所負(fù)責(zé)的哈希塊分別為(1,8], (23,28]、(38,43],資源標(biāo)識(shí)在此空間的資源屬于節(jié)點(diǎn)B負(fù)責(zé)。從而可以得到在該種負(fù)載均衡方法下,四個(gè)節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)資源空間都是15,具體如表1所示。 由于資源標(biāo)識(shí)在整個(gè)哈希空間是均勻分布的,因此,每個(gè)節(jié)點(diǎn)所負(fù)責(zé)的數(shù)據(jù)資源是均衡的。表 1.
權(quán)利要求
1.一種分布式哈希表DHT網(wǎng)絡(luò)的負(fù)載均衡實(shí)現(xiàn)方法,其特征在于,包括根據(jù)所述DHT網(wǎng)絡(luò)的節(jié)點(diǎn)規(guī)劃及預(yù)設(shè)的負(fù)載不均衡度閾值,確定第一虛擬標(biāo)識(shí)的數(shù)量 Z,其中,Z為自然數(shù);將所述DHT網(wǎng)絡(luò)的整個(gè)負(fù)載空間均分為Z份,各份負(fù)載空間分別用互不相同的所述第一虛擬標(biāo)識(shí)進(jìn)行標(biāo)識(shí);根據(jù)各個(gè)所述節(jié)點(diǎn)的能力,將Z個(gè)所述第一虛擬標(biāo)識(shí)分配各個(gè)所述節(jié)點(diǎn),由各個(gè)所述節(jié)點(diǎn)負(fù)責(zé)分配給其的所述第一虛擬標(biāo)識(shí)對(duì)應(yīng)的負(fù)載空間。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述DHT網(wǎng)絡(luò)的節(jié)點(diǎn)規(guī)劃及預(yù)設(shè)的負(fù)載不均衡度閾值,確定第一虛擬標(biāo)識(shí)的數(shù)量Z包括獲取所述DHT網(wǎng)絡(luò)中能力最差的節(jié)點(diǎn);根據(jù)所述負(fù)載不均衡度閾值,確定所述第一虛擬標(biāo)識(shí)的數(shù)量Z,使得所述能力最差的節(jié)點(diǎn)的負(fù)載不均衡度小于所述負(fù)載不均衡度閾值。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,確定所述第一虛擬標(biāo)識(shí)的數(shù)量Z,使下式成立
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括新的節(jié)點(diǎn)加入所述DHT 網(wǎng)絡(luò);根據(jù)所述新的節(jié)點(diǎn)的能力,計(jì)算所述新的節(jié)點(diǎn)應(yīng)該負(fù)責(zé)的所述第一虛擬標(biāo)識(shí)的數(shù)量;將所述DHT網(wǎng)絡(luò)中負(fù)責(zé)的所述第一虛擬標(biāo)識(shí)數(shù)超過(guò)理論值的節(jié)點(diǎn)負(fù)責(zé)的部分所述第一虛擬標(biāo)識(shí)分配給所述新的節(jié)點(diǎn)負(fù)責(zé),使所述新的節(jié)點(diǎn)負(fù)責(zé)的所述第一虛擬標(biāo)識(shí)的數(shù)量接近所述新的節(jié)點(diǎn)應(yīng)該負(fù)責(zé)的所述第一虛擬標(biāo)識(shí)的數(shù)量。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,將所述DHT網(wǎng)絡(luò)中負(fù)責(zé)的所述第一虛擬標(biāo)識(shí)數(shù)超過(guò)理論值的節(jié)點(diǎn)負(fù)責(zé)的部分所述第一虛擬標(biāo)識(shí)分配給所述新的節(jié)點(diǎn)負(fù)責(zé)包括根據(jù)所述DHT網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的能力,計(jì)算加入所述新的節(jié)點(diǎn)后各個(gè)所述節(jié)點(diǎn)應(yīng)該負(fù)責(zé)的所述第一虛擬標(biāo)識(shí)的理論值;判斷各個(gè)所述節(jié)點(diǎn)當(dāng)前負(fù)責(zé)的所述第一虛擬標(biāo)識(shí)的數(shù)量是否超過(guò)該節(jié)點(diǎn)的所述理論值,如果是,則將該節(jié)點(diǎn)負(fù)責(zé)的所有所述第一虛擬標(biāo)識(shí)中隨機(jī)取超出該理論值部分的所述第一虛擬標(biāo)識(shí)分配給所述新的節(jié)點(diǎn)。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括所述DHT網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn)的負(fù)載不均衡度超過(guò)所述負(fù)載不均衡度閾值;將已分配給各個(gè)節(jié)點(diǎn)的各個(gè)所述第一虛擬標(biāo)識(shí)對(duì)應(yīng)的負(fù)載空間再次均分為M份,使用MXZ個(gè)第二虛擬標(biāo)識(shí)對(duì)再次均分后的各份負(fù)載空間進(jìn)行標(biāo)識(shí),其中,M為自然數(shù),且M > 2。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,在使用MXZ個(gè)第二虛擬標(biāo)識(shí)對(duì)再次均分后的各份負(fù)載空間進(jìn)行標(biāo)識(shí)之后,所述方法還包括根據(jù)所述DHT網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的負(fù)載不均衡度,對(duì)各個(gè)節(jié)點(diǎn)負(fù)責(zé)的所述第二虛擬標(biāo)識(shí)的數(shù)量進(jìn)行調(diào)整,使其中負(fù)載不均衡度超過(guò)所述負(fù)載不均衡度閾值的節(jié)點(diǎn)的負(fù)載不均衡度下降。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,在使用MXZ個(gè)第二虛擬標(biāo)識(shí)對(duì)再次均分后的各份負(fù)載空間進(jìn)行標(biāo)識(shí)之后,所述方法還包括新節(jié)點(diǎn)加入所述DHT網(wǎng)絡(luò);將所述DHT網(wǎng)絡(luò)中負(fù)責(zé)的所述第二虛擬標(biāo)識(shí)數(shù)超過(guò)理論值的節(jié)點(diǎn)負(fù)責(zé)的部分所述第二虛擬標(biāo)識(shí)分配給該新節(jié)點(diǎn)負(fù)責(zé),使該新節(jié)點(diǎn)負(fù)責(zé)的所述第二虛擬標(biāo)識(shí)的數(shù)量接近該新節(jié)點(diǎn)應(yīng)該負(fù)責(zé)的所述第二虛擬標(biāo)識(shí)的數(shù)量。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括新的節(jié)點(diǎn)加入所述DHT網(wǎng)絡(luò);將各個(gè)所述第一虛擬標(biāo)識(shí)對(duì)應(yīng)的負(fù)載空間再次均分為M份,使用MXZ個(gè)第二虛擬標(biāo)識(shí)對(duì)再次均分后的各份負(fù)載空間進(jìn)行標(biāo)識(shí),其中,M為自然數(shù),且M > 2 ;根據(jù)所述新的節(jié)點(diǎn)的能力,計(jì)算所述新的節(jié)點(diǎn)應(yīng)該負(fù)責(zé)的所述第二虛擬標(biāo)識(shí)的數(shù)量;將所述DHT網(wǎng)絡(luò)中負(fù)責(zé)的所述第二虛擬標(biāo)識(shí)數(shù)超過(guò)理論值的節(jié)點(diǎn)負(fù)責(zé)的部分所述第二虛擬標(biāo)識(shí)分配給所述新的節(jié)點(diǎn)負(fù)責(zé),使所述新的節(jié)點(diǎn)負(fù)責(zé)的所述第二虛擬標(biāo)識(shí)的數(shù)量接近所述數(shù)量。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,將所述DHT網(wǎng)絡(luò)中負(fù)責(zé)的所述第二虛擬標(biāo)識(shí)數(shù)超過(guò)理論值的節(jié)點(diǎn)負(fù)責(zé)的部分所述第二虛擬標(biāo)識(shí)分配給所述新的節(jié)點(diǎn)負(fù)責(zé)包括根據(jù)所述DHT網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的能力,計(jì)算加入所述新的節(jié)點(diǎn)后各個(gè)所述節(jié)點(diǎn)應(yīng)該負(fù)責(zé)的所述第二虛擬標(biāo)識(shí)的理論值;判斷各個(gè)所述節(jié)點(diǎn)當(dāng)前負(fù)責(zé)的所述第二虛擬標(biāo)識(shí)的數(shù)量是否超過(guò)該節(jié)點(diǎn)的所述理論值,如果是,則將該節(jié)點(diǎn)負(fù)責(zé)的所有所述第二虛擬標(biāo)識(shí)中隨機(jī)取超出該理論值部分的所述第二虛擬標(biāo)識(shí)分配給所述新的節(jié)點(diǎn)。
11.根據(jù)權(quán)利要求6或9所述的方法,其特征在于,使用MXZ個(gè)第二虛擬標(biāo)識(shí)對(duì)再次均分后的各份負(fù)載空間進(jìn)行標(biāo)識(shí)包括對(duì)于Z個(gè)所述第一虛擬標(biāo)識(shí),在兩個(gè)連續(xù)所述第一虛擬標(biāo)識(shí)中間生成M-I個(gè)新的虛擬標(biāo)識(shí),使用所述兩個(gè)連續(xù)所述第一虛擬標(biāo)識(shí)中的前一個(gè)所述第一虛擬標(biāo)識(shí)和所述M-I個(gè)新的虛擬標(biāo)識(shí)作為M個(gè)所述第二虛擬標(biāo)識(shí),分別標(biāo)識(shí)所述前一個(gè)第一虛擬標(biāo)識(shí)對(duì)應(yīng)的負(fù)載空間均分出的M份負(fù)載空間。
12.—種DHT網(wǎng)絡(luò)的負(fù)載均衡實(shí)現(xiàn)裝置,其特征在于,包括確定模塊,用于根據(jù)所述DHT網(wǎng)絡(luò)的節(jié)點(diǎn)規(guī)劃及預(yù)設(shè)的負(fù)載不均衡度閾值,確定第一虛擬標(biāo)識(shí)的數(shù)量Z,其中,Z為自然數(shù);劃分模塊,用于將所述DHT網(wǎng)絡(luò)的整個(gè)負(fù)載空間均分為Z份,各份負(fù)載空間分別用互不相同的所述第一虛擬標(biāo)識(shí)進(jìn)行標(biāo)識(shí);分配模塊,用于根據(jù)各個(gè)所述節(jié)點(diǎn)的能力,將Z個(gè)所述第一虛擬標(biāo)識(shí)分配各個(gè)所述節(jié)點(diǎn),由各個(gè)所述節(jié)點(diǎn)負(fù)責(zé)分配給其的所述第一虛擬標(biāo)識(shí)對(duì)應(yīng)的負(fù)載空間。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述裝置還包括分裂模塊,用于將已分配給各個(gè)節(jié)點(diǎn)的各個(gè)所述第一虛擬標(biāo)識(shí)對(duì)應(yīng)的負(fù)載空間再次均分為M份,使用MXZ個(gè)第二虛擬標(biāo)識(shí)對(duì)再次均分后的各份負(fù)載空間進(jìn)行標(biāo)識(shí),其中,M為自然數(shù),且M彡2;則所述分配模塊還用于根據(jù)所述DHT網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的能力,將MXZ個(gè)所述第二虛擬標(biāo)識(shí)分配各個(gè)所述節(jié)點(diǎn),由各個(gè)所述節(jié)點(diǎn)負(fù)責(zé)分配給其的所述第二虛擬標(biāo)識(shí)對(duì)應(yīng)的負(fù)載空間。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述裝置還包括更新模塊,用于在所述分配模塊將MXZ個(gè)所述第二虛擬標(biāo)識(shí)分配各個(gè)所述節(jié)點(diǎn)之后, 更新所述DHT網(wǎng)絡(luò)的查詢路由表。
全文摘要
本發(fā)明公開了一種分布式哈希表網(wǎng)絡(luò)的負(fù)載均衡實(shí)現(xiàn)方法及裝置。其中,該方法包括根據(jù)所述DHT網(wǎng)絡(luò)的節(jié)點(diǎn)規(guī)劃及預(yù)設(shè)的負(fù)載不均衡度閾值,確定第一虛擬標(biāo)識(shí)的數(shù)量Z,其中,Z為自然數(shù);將所述DHT網(wǎng)絡(luò)的整個(gè)負(fù)載空間均分為Z份,各份負(fù)載空間分別用互不相同的所述第一虛擬標(biāo)識(shí)進(jìn)行標(biāo)識(shí);根據(jù)各個(gè)所述節(jié)點(diǎn)的能力,將Z個(gè)所述第一虛擬標(biāo)識(shí)分配各個(gè)所述節(jié)點(diǎn),由各個(gè)所述節(jié)點(diǎn)負(fù)責(zé)分配給其的所述第一虛擬標(biāo)識(shí)對(duì)應(yīng)的負(fù)載空間。通過(guò)本發(fā)明,可以在實(shí)現(xiàn)DHT網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)負(fù)載均衡的同時(shí),減少虛擬標(biāo)識(shí)管理和虛擬標(biāo)識(shí)遷移的工作量。
文檔編號(hào)H04L12/56GK102457429SQ20101052280
公開日2012年5月16日 申請(qǐng)日期2010年10月27日 優(yōu)先權(quán)日2010年10月27日
發(fā)明者王煒, 胡學(xué)川, 郝振武 申請(qǐng)人:中興通訊股份有限公司