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