專利名稱:一種dht網(wǎng)絡(luò)的存儲(chǔ)負(fù)載均衡方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域,尤其涉及一種DHT網(wǎng)絡(luò)的存儲(chǔ)負(fù)載均衡方法。
背景技術(shù):
DHT(Distributed Hash Table)又叫分布式散列表。DHT網(wǎng)絡(luò)是一種分布式的結(jié)構(gòu)化P2P網(wǎng)絡(luò),不需要任何服務(wù)器,將由關(guān)鍵值所唯一標(biāo)識(shí)的信息按照網(wǎng)絡(luò)協(xié)議分散地存儲(chǔ)在多個(gè)節(jié)點(diǎn)上,可以有效地避免服務(wù)器故障所帶來(lái)的整個(gè)網(wǎng)絡(luò)的癱瘓。DHT網(wǎng)絡(luò)具有去中心化、可擴(kuò)展、可靠等特點(diǎn)。知名的DHT協(xié)議與實(shí)現(xiàn)有CAN、Chord、Pastry和Tapestry。
DHT網(wǎng)絡(luò)利用散列函數(shù)將關(guān)鍵值所唯一標(biāo)志的數(shù)據(jù)信息均勻分布到多個(gè)DHT節(jié)點(diǎn)。但是,由于在DHT網(wǎng)絡(luò)中每個(gè)關(guān)鍵值所標(biāo)識(shí)的數(shù)據(jù)信息的存儲(chǔ)和查詢頻率各不相同,所以會(huì)出現(xiàn)某個(gè)關(guān)鍵值所標(biāo)識(shí)的數(shù)據(jù)信息被頻繁訪問(wèn)而造成的網(wǎng)絡(luò)熱點(diǎn),由此形成網(wǎng)絡(luò)瓶頸。而且,各個(gè)關(guān)鍵值所標(biāo)識(shí)的數(shù)據(jù)信息的數(shù)據(jù)尺寸大小也各不相同,若某個(gè)關(guān)鍵值所標(biāo)識(shí)的數(shù)據(jù)信息的數(shù)據(jù)尺寸過(guò)大,會(huì)造成大量數(shù)據(jù)在同一個(gè)關(guān)鍵值,形成數(shù)據(jù)存儲(chǔ)熱點(diǎn)問(wèn)題。由一個(gè)關(guān)鍵值的存儲(chǔ)和查詢頻率過(guò)于頻繁所造成的網(wǎng)絡(luò)瓶頸可以通過(guò)緩存機(jī)制來(lái)得到緩解,而由于關(guān)鍵值所標(biāo)識(shí)的數(shù)據(jù)信息的數(shù)據(jù)尺寸過(guò)大,造成大量數(shù)據(jù)在同一個(gè)關(guān)鍵值,進(jìn)而形成的數(shù)據(jù)存儲(chǔ)熱點(diǎn)問(wèn)題,不僅消耗了網(wǎng)絡(luò)節(jié)點(diǎn)的存儲(chǔ)資源,還會(huì)造成對(duì)于該關(guān)鍵值的訪問(wèn)產(chǎn)生網(wǎng)絡(luò)瓶頸。因此,如何解決由于關(guān)鍵值所標(biāo)識(shí)的數(shù)據(jù)信息的數(shù)據(jù)尺寸過(guò)大所造成的數(shù)據(jù)存儲(chǔ)熱點(diǎn)問(wèn)題和對(duì)于該關(guān)鍵值的訪問(wèn)產(chǎn)生的網(wǎng)絡(luò)瓶頸問(wèn)題,成為一個(gè)待解決的課題。
發(fā)明內(nèi)容
有鑒于現(xiàn)有技術(shù)的上述缺陷,本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種能夠?qū)HT網(wǎng)絡(luò)中的一個(gè)關(guān)鍵值所存儲(chǔ)的大量不同數(shù)據(jù)分散到與其相關(guān)聯(lián)的多個(gè)子關(guān)鍵值,從而避免存儲(chǔ)熱點(diǎn)的產(chǎn)生、實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載均衡的一種DHT網(wǎng)絡(luò)的存儲(chǔ)負(fù)載均衡方法。為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種DHT網(wǎng)絡(luò)的存儲(chǔ)負(fù)載均衡方法,在該方法中,若DHT網(wǎng)絡(luò)中的節(jié)點(diǎn)所對(duì)應(yīng)的關(guān)鍵值所存儲(chǔ)的所有數(shù)據(jù)的數(shù)據(jù)量總和超過(guò)某一預(yù)定的閥值M,則將所述關(guān)鍵值所存儲(chǔ)的數(shù)據(jù)分散到與其相關(guān)聯(lián)的預(yù)定個(gè)數(shù)為C的多個(gè)子關(guān)鍵值,在所述關(guān)鍵值中只保存所述多個(gè)子關(guān)鍵值的地址,直到每一個(gè)子關(guān)鍵值所存儲(chǔ)的所有數(shù)據(jù)的數(shù)據(jù)量總和不超過(guò)所述預(yù)定的閥值M,具體包括如下步驟步驟I),對(duì)待存儲(chǔ)數(shù)據(jù)的關(guān)鍵值進(jìn)行查詢,若查詢結(jié)果為所述關(guān)鍵值中存儲(chǔ)的數(shù)據(jù)量為空或者存儲(chǔ)有數(shù)據(jù),則進(jìn)行步驟2,若查詢結(jié)果為所述關(guān)鍵值中存儲(chǔ)有C個(gè)關(guān)鍵值的地址,則從所述C個(gè)關(guān)鍵值中隨機(jī)確定一個(gè)關(guān)鍵值,并以確定的關(guān)鍵值作為待存儲(chǔ)數(shù)據(jù)的關(guān)鍵值,進(jìn)入步驟I ;步驟2),將待存儲(chǔ)的數(shù)據(jù)存儲(chǔ)到所述關(guān)鍵值中,判斷所述關(guān)鍵值中所存儲(chǔ)的所有數(shù)據(jù)的數(shù)據(jù)量總和是否超過(guò)所述預(yù)定閥值M,若超過(guò)所述預(yù)定閥值M,則進(jìn)入步驟3,若不超過(guò)所述預(yù)定閥值M,則結(jié)束存儲(chǔ);步驟3),將所述關(guān)鍵值分裂為C個(gè)下一級(jí)的關(guān)鍵值,C為預(yù)定的個(gè)數(shù)。
進(jìn)一步地,所述步驟3所述的將關(guān)鍵值分裂為C個(gè)下一級(jí)的關(guān)鍵值具體為步驟3. I),隨機(jī)產(chǎn)生C個(gè)新的關(guān)鍵值,并逐一對(duì)所產(chǎn)生的每個(gè)新的關(guān)鍵值進(jìn)行查詢,確保每個(gè)新的關(guān)鍵值中所存儲(chǔ)的數(shù)據(jù)為空,若某個(gè)新的關(guān)鍵值所存儲(chǔ)的數(shù)據(jù)不為空,則重新產(chǎn)生直至所產(chǎn)生的新的關(guān)鍵值個(gè)數(shù)到達(dá)C,其中C為預(yù)定的個(gè)數(shù),將所產(chǎn)生的C個(gè)新的關(guān)鍵值作為待分裂關(guān)鍵值的下一級(jí)關(guān)鍵值;步驟3. 2),將待分裂的關(guān)鍵值所存儲(chǔ)的所有數(shù)據(jù)分散地存儲(chǔ)到C個(gè)下一級(jí)關(guān)鍵值中,將C個(gè)下一級(jí)關(guān)鍵值的地址存儲(chǔ)到待分裂的關(guān)鍵值。進(jìn)一步地,所述預(yù)定的個(gè)數(shù)C為3,預(yù)定的數(shù)據(jù)量總和的閥值為4。本發(fā)明的有益效果在于該DHT網(wǎng)絡(luò)的存儲(chǔ)負(fù)載均衡方法通過(guò)對(duì)DHT網(wǎng)絡(luò)中的節(jié) 點(diǎn)所對(duì)應(yīng)的存儲(chǔ)數(shù)據(jù)量總和超過(guò)預(yù)定閥值的關(guān)鍵值進(jìn)行分裂,將其所存儲(chǔ)的數(shù)據(jù)分散到多個(gè)子關(guān)鍵值,從而避免存儲(chǔ)熱點(diǎn)的產(chǎn)生,節(jié)約網(wǎng)絡(luò)節(jié)點(diǎn)資源,有效地防止由于對(duì)數(shù)據(jù)存儲(chǔ)量過(guò)大的關(guān)鍵值的防問(wèn)而導(dǎo)致的網(wǎng)絡(luò)瓶頸的發(fā)生,實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載均衡。以下將結(jié)合附圖對(duì)本發(fā)明的構(gòu)思、具體結(jié)構(gòu)及產(chǎn)生的技術(shù)效果作進(jìn)一步說(shuō)明,以充分地了解本發(fā)明的目的、特征和效果。
圖I是本發(fā)明的DHT網(wǎng)絡(luò)的存儲(chǔ)負(fù)載均衡方法的處理流程圖;圖2是本發(fā)明的DHT網(wǎng)絡(luò)的存儲(chǔ)負(fù)載均衡方法的關(guān)鍵值分裂流程具體實(shí)施例方式下面結(jié)合附圖來(lái)具體說(shuō)明本發(fā)明的實(shí)施例。一種DHT網(wǎng)絡(luò)的存儲(chǔ)負(fù)載均衡方法,該方法對(duì)于DHT網(wǎng)絡(luò)節(jié)點(diǎn)所對(duì)應(yīng)的存儲(chǔ)數(shù)據(jù)量總和超過(guò)預(yù)定閥值的關(guān)鍵值進(jìn)行關(guān)鍵值分裂,將其分裂為預(yù)定個(gè)數(shù)的新關(guān)鍵值,并將該關(guān)鍵值中所存儲(chǔ)的所有數(shù)據(jù)分散地存儲(chǔ)到各個(gè)新關(guān)鍵值,而在該關(guān)鍵值中只存儲(chǔ)所有新關(guān)鍵值的地址,使得該關(guān)鍵值可以關(guān)聯(lián)到其分裂所產(chǎn)生的每一個(gè)新關(guān)鍵值。直到每一個(gè)關(guān)鍵值所存儲(chǔ)的數(shù)據(jù)量總和不超過(guò)預(yù)定的閥值M。如圖I所示,本發(fā)明的DHT網(wǎng)絡(luò)的存儲(chǔ)負(fù)載均衡方法中,將數(shù)據(jù)存儲(chǔ)到關(guān)鍵值時(shí),首先,查詢待存儲(chǔ)數(shù)據(jù)的關(guān)鍵值中所存儲(chǔ)的內(nèi)容,若所存儲(chǔ)的內(nèi)容為C個(gè)關(guān)鍵值的地址,則從C個(gè)關(guān)鍵值的地址中選擇一個(gè)地址,找到該地址所對(duì)應(yīng)的關(guān)鍵值,以該關(guān)鍵值作為待存儲(chǔ)數(shù)據(jù)的關(guān)鍵值,重新開始此存儲(chǔ)過(guò)程。若所存儲(chǔ)的內(nèi)容為數(shù)據(jù)或者存儲(chǔ)內(nèi)容為空,則將待存儲(chǔ)的數(shù)據(jù)存儲(chǔ)到該關(guān)鍵值上,并判斷該關(guān)鍵值所存儲(chǔ)的數(shù)據(jù)量總和是否超過(guò)預(yù)定的閥值M,若不超過(guò)預(yù)定的閥值M,則存儲(chǔ)過(guò)程結(jié)束;若該關(guān)鍵值所存儲(chǔ)的數(shù)據(jù)量總和超過(guò)預(yù)定的閥值M,則對(duì)該關(guān)鍵值進(jìn)行分裂,將該關(guān)鍵值分裂為預(yù)定個(gè)數(shù)為C個(gè)新的關(guān)鍵值。上述過(guò)程中所提到的對(duì)關(guān)鍵值進(jìn)行分裂,其具體過(guò)程如圖2所示隨機(jī)產(chǎn)生C個(gè)新的關(guān)鍵值,并逐一對(duì)所產(chǎn)生的每個(gè)新的關(guān)鍵值進(jìn)行查詢,確保每個(gè)新的關(guān)鍵值中所存儲(chǔ)的數(shù)據(jù)為空,若某個(gè)新關(guān)鍵值所存儲(chǔ)的數(shù)據(jù)不為空,則重新產(chǎn)生直至所產(chǎn)生的新的關(guān)鍵值個(gè)數(shù)到達(dá)C,將所產(chǎn)生的C個(gè)新的關(guān)鍵值作為待分裂關(guān)鍵值的下一級(jí)關(guān)鍵值。然后,將待分裂的關(guān)鍵值所存儲(chǔ)的所有數(shù)據(jù)分散地存儲(chǔ)到各個(gè)下一級(jí)關(guān)鍵值中,將C個(gè)下一級(jí)關(guān)鍵值的地址存儲(chǔ)到待分裂的關(guān)鍵值。其中,C為預(yù)定的關(guān)鍵值分裂的個(gè)數(shù)。
實(shí)施例I本實(shí)施例中,采用本發(fā)明的DHT網(wǎng)絡(luò)的存儲(chǔ)負(fù)載均衡方法的DHT系統(tǒng),其中,假設(shè)M為4,C為3,在該DHT系統(tǒng)中,向已經(jīng)存儲(chǔ)有10個(gè)數(shù)據(jù)的關(guān)鍵值K存儲(chǔ)數(shù)據(jù)Vnew,因?yàn)殛P(guān)鍵值上已經(jīng)存儲(chǔ)有10個(gè)數(shù)據(jù),超過(guò)了預(yù)定的閥值4,因此該關(guān)鍵值已經(jīng)進(jìn)行過(guò)一次分裂,假設(shè)關(guān)鍵值K的三個(gè)子關(guān)鍵值為P1J2和P3,子關(guān)鍵值P1上存儲(chǔ)有數(shù)據(jù)VV2、V3和V4,子關(guān)鍵值P2上存儲(chǔ)有數(shù)據(jù)V5、V6和V7,而子關(guān)鍵值P3上存儲(chǔ)有數(shù)據(jù)V8、V9和Vltl,向關(guān)鍵值K存儲(chǔ)數(shù)據(jù)Vnrat的過(guò)程為首先,查詢關(guān)鍵值K上存儲(chǔ)的內(nèi)容,查詢結(jié)果為P1, P2和P3的地址,然后,隨機(jī)選擇一個(gè)P1的地址,找到關(guān)鍵值P1,向關(guān)鍵值P1存儲(chǔ)數(shù)據(jù)VnOT。同樣,按照本發(fā)明的方法中,向關(guān)鍵值存儲(chǔ)數(shù)據(jù)的流程,查詢關(guān)鍵值P1上存儲(chǔ)的內(nèi)容,查詢結(jié)果為數(shù)據(jù)m和v4,于是將待存儲(chǔ)數(shù)據(jù)vn 存儲(chǔ)到關(guān)鍵值P1上,則關(guān)鍵值P1所存儲(chǔ)的數(shù)據(jù)為m V4和VnOT,數(shù)據(jù)量超過(guò)了預(yù)定的閥值4,因此需要對(duì)關(guān)鍵值P1進(jìn)行分裂,分裂的過(guò)程為隨機(jī)產(chǎn)生 3個(gè)新的關(guān)鍵值P4、P5和P6,并通過(guò)查詢確保P4、P5和P6中所存儲(chǔ)內(nèi)容為空,沒(méi)有存儲(chǔ)數(shù)據(jù),刪除P1中的數(shù)據(jù)為Vi、V2、V3、V4和Vnrat,將分裂所產(chǎn)生的關(guān)鍵值P4、P5和P6的地址存儲(chǔ)到關(guān)鍵值P1中。然后將關(guān)鍵值P1中的原數(shù)據(jù)WH和Vnrat依次隨機(jī)地存儲(chǔ)到關(guān)鍵值P1分裂所產(chǎn)生的關(guān)鍵值P4、P5和P6中,例如可以是關(guān)鍵值P4中存儲(chǔ)數(shù)據(jù)V3,,關(guān)鍵值P5中存儲(chǔ)數(shù)據(jù)V2和Vn ,而關(guān)鍵值P6中存儲(chǔ)數(shù)據(jù)V1和V4。其中,向關(guān)鍵值P4中存儲(chǔ)數(shù)據(jù)V3、向關(guān)鍵值P5中分別存儲(chǔ)數(shù)據(jù)V2和Vmw以及向關(guān)鍵值P6中分別存儲(chǔ)數(shù)據(jù)V1和V4的過(guò)程同樣需要通過(guò)上述的整個(gè)流程,本實(shí)施例中,因?yàn)殛P(guān)鍵值P4、P5和P6中所存儲(chǔ)的數(shù)據(jù)量都沒(méi)有超過(guò)4,所以關(guān)鍵值P4、P5和P6不需要繼續(xù)分裂。至此,存儲(chǔ)過(guò)程結(jié)束。實(shí)施例2本實(shí)施例中,采用本發(fā)明的DHT網(wǎng)絡(luò)的存儲(chǔ)負(fù)載均衡方法的DHT系統(tǒng),其中,假設(shè)M為4,C為3,在該DHT系統(tǒng)中,向已經(jīng)存儲(chǔ)有數(shù)據(jù)V1的關(guān)鍵值K存儲(chǔ)數(shù)據(jù)Vnew的過(guò)程為首先查詢關(guān)鍵值K上存儲(chǔ)的內(nèi)容,查詢到存儲(chǔ)內(nèi)容為數(shù)據(jù),則將待存儲(chǔ)的數(shù)據(jù)VnOT存儲(chǔ)到關(guān)鍵值K,由于本實(shí)施例中VnOT與V1的數(shù)據(jù)量之和小于4,所以至此,存儲(chǔ)過(guò)程結(jié)束。以上介紹了采用本發(fā)明的DHT網(wǎng)絡(luò)的存儲(chǔ)負(fù)載均衡方法的DHT系統(tǒng)中,向關(guān)鍵值存儲(chǔ)數(shù)據(jù)的詳細(xì)過(guò)程,下面仍以實(shí)施例2為例,介紹應(yīng)用本發(fā)明的DHT網(wǎng)絡(luò)的存儲(chǔ)負(fù)載均衡方法的DHT系統(tǒng)中對(duì)關(guān)鍵值所存儲(chǔ)的數(shù)據(jù)進(jìn)行查詢的過(guò)程。關(guān)鍵值K上存儲(chǔ)著包括V1到Vltl以及Vnew的11個(gè)數(shù)據(jù),關(guān)鍵值K有三個(gè)子關(guān)鍵值P1^ P2和P3,其中,子關(guān)鍵值P1又有三個(gè)子關(guān)鍵值P4、P5和P6,關(guān)鍵值P2上存儲(chǔ)有數(shù)據(jù)\、V6和V7,而關(guān)鍵值P3上存儲(chǔ)有數(shù)據(jù)v8、v9和Vltl,關(guān)鍵值P4上存儲(chǔ)有數(shù)據(jù)V3,關(guān)鍵值P5上存儲(chǔ)有數(shù)據(jù)V2和vnew,而關(guān)鍵值P6上存儲(chǔ)有數(shù)據(jù)V1和v4。要查詢關(guān)鍵值K上所存儲(chǔ)的全部數(shù)據(jù),首先,對(duì)關(guān)鍵值K所存儲(chǔ)的內(nèi)容進(jìn)行查詢,所存儲(chǔ)的內(nèi)容為關(guān)鍵值PpP2和P3的地址,然后,對(duì)關(guān)鍵值Pp P2和P3分別繼續(xù)進(jìn)行查詢,對(duì)關(guān)鍵值P1進(jìn)行查詢,所存儲(chǔ)內(nèi)容為關(guān)鍵值P4、P5和P6的地址,而對(duì)關(guān)鍵值P2和P3進(jìn)行查詢的結(jié)果,存儲(chǔ)內(nèi)容分別為數(shù)據(jù)V5、V6、V7和數(shù)據(jù)\、%、V10,將數(shù)據(jù)\、V6 > V7和數(shù)據(jù)\、%、V10輸出到查詢結(jié)果,然后,繼續(xù)對(duì)關(guān)鍵值P1的子關(guān)鍵值p4、P5和P6進(jìn)行查詢,得到數(shù)據(jù)V3和數(shù)據(jù)\、Vnew以及數(shù)據(jù)\、V4,至此,可以得到關(guān)鍵值K上所存儲(chǔ)的11個(gè)數(shù)據(jù)。以上實(shí)施方式中的預(yù)定關(guān)鍵值分裂個(gè)數(shù)C和預(yù)定數(shù)據(jù)量閥值M不僅限于實(shí)施例中所采用的,可以根據(jù)需要自行設(shè)定。
通過(guò)以上介紹的本發(fā)明的DHT網(wǎng)絡(luò)的存儲(chǔ)負(fù)載均衡方法,通過(guò)對(duì)DHT網(wǎng)絡(luò)中的節(jié)點(diǎn)所對(duì)應(yīng)的存儲(chǔ)數(shù)據(jù)量總和超過(guò)預(yù)定閥值的關(guān)鍵值進(jìn)行分裂,將其所存儲(chǔ)的數(shù)據(jù)分散到多個(gè)子關(guān)鍵值,從而避免存儲(chǔ)熱點(diǎn)的產(chǎn)生,節(jié)約網(wǎng)絡(luò)節(jié)點(diǎn)資源,有效地防止由于對(duì)數(shù)據(jù)存儲(chǔ)量過(guò)大的關(guān)鍵值的訪問(wèn)而導(dǎo)致的網(wǎng)絡(luò)瓶頸的發(fā)生,實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載均衡。以上詳細(xì)描述了本發(fā)明的較佳具體實(shí)施例。應(yīng)當(dāng)理解,本領(lǐng)域的普通技術(shù)人員無(wú)需創(chuàng)造性勞動(dòng)就可以根據(jù)本發(fā)明的構(gòu)思做出諸多修改和變化。因此,凡本技術(shù)領(lǐng)域的技術(shù)人員依本發(fā)明的構(gòu)思在現(xiàn)有技術(shù)的基礎(chǔ)上通過(guò)邏輯分析、推理或者有限的實(shí)驗(yàn)可以得到的 技術(shù)方案,皆應(yīng)在由權(quán)利要求書所確定的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種DHT網(wǎng)絡(luò)的存儲(chǔ)負(fù)載均衡方法,其特征在于,若DHT網(wǎng)絡(luò)中的節(jié)點(diǎn)所對(duì)應(yīng)的關(guān)鍵值所存儲(chǔ)的所有數(shù)據(jù)的數(shù)據(jù)量總和超過(guò)某一預(yù)定的閥值M,則將所述關(guān)鍵值所存儲(chǔ)的數(shù)據(jù)分散到與其相關(guān)聯(lián)的預(yù)定個(gè)數(shù)為C的多個(gè)子關(guān)鍵值,在所述關(guān)鍵值中只保存所述多個(gè)子關(guān)鍵值的地址,直到每一個(gè)子關(guān)鍵值所存儲(chǔ)的所有數(shù)據(jù)的數(shù)據(jù)量總和不超過(guò)所述預(yù)定的閥值M,具體包括如下步驟步驟I),對(duì)待存儲(chǔ)數(shù)據(jù)的關(guān)鍵值進(jìn)行查詢,若查詢結(jié)果為所述關(guān)鍵值中存儲(chǔ)的數(shù)據(jù)量為空或者存儲(chǔ)有數(shù)據(jù),則進(jìn)行步驟2,若查詢結(jié)果為所述關(guān)鍵值中存儲(chǔ)有C個(gè)關(guān)鍵值的地址,則從所述C個(gè)關(guān)鍵值中隨機(jī)確定一個(gè)關(guān)鍵值,并以確定的關(guān)鍵值作為待存儲(chǔ)數(shù)據(jù)的關(guān)鍵值,進(jìn)入步驟I ;步驟2),將待存儲(chǔ)的數(shù)據(jù)存儲(chǔ)到所述關(guān)鍵值中,判斷所述關(guān)鍵值中所存儲(chǔ)的所有數(shù)據(jù)的數(shù)據(jù)量總和是否超過(guò)所述預(yù)定閥值M,若超過(guò)所述預(yù)定閥值M, 則進(jìn)入步驟3,若不超過(guò)所述預(yù)定閥值M,則結(jié)束存儲(chǔ);步驟3),將所述關(guān)鍵值分裂為C個(gè)下一級(jí)的關(guān)鍵值,C為預(yù)定的個(gè)數(shù)。
2.如權(quán)利要求I所述的DHT網(wǎng)絡(luò)的存儲(chǔ)負(fù)載均衡方法,其中,所述步驟3所述的將關(guān)鍵值分裂為C個(gè)下一級(jí)的關(guān)鍵值具體為步驟3. I),隨機(jī)產(chǎn)生C個(gè)新的關(guān)鍵值,并逐一對(duì)所產(chǎn)生的每個(gè)新的關(guān)鍵值進(jìn)行查詢,確保每個(gè)新的關(guān)鍵值中所存儲(chǔ)的數(shù)據(jù)為空,若某個(gè)新的關(guān)鍵值所存儲(chǔ)的數(shù)據(jù)不為空,則重新產(chǎn)生直至所產(chǎn)生的新的關(guān)鍵值個(gè)數(shù)到達(dá)C,其中C為預(yù)定的個(gè)數(shù),將所產(chǎn)生的C個(gè)新的關(guān)鍵值作為待分裂關(guān)鍵值的下一級(jí)關(guān)鍵值;步驟3. 2),將待分裂的關(guān)鍵值所存儲(chǔ)的所有數(shù)據(jù)分散地存儲(chǔ)到C個(gè)下一級(jí)關(guān)鍵值中,將C個(gè)下一級(jí)關(guān)鍵值的地址存儲(chǔ)到待分裂的關(guān)鍵值。
3.如權(quán)利要求2所述的DHT網(wǎng)絡(luò)的存儲(chǔ)負(fù)載均衡方法,其中,所述預(yù)定的個(gè)數(shù)C為3,預(yù)定的數(shù)據(jù)量總和的閥值為4。
全文摘要
本發(fā)明公開了一種1DHT網(wǎng)絡(luò)的存儲(chǔ)負(fù)載均衡方法,通過(guò)對(duì)DHT網(wǎng)絡(luò)中的節(jié)點(diǎn)所對(duì)應(yīng)的存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)量超過(guò)預(yù)定閥值的關(guān)鍵值進(jìn)行分裂,將其所存儲(chǔ)的數(shù)據(jù)分散到與其相關(guān)聯(lián)的預(yù)定個(gè)數(shù)的多個(gè)子關(guān)鍵值,在所述關(guān)鍵值中只保存所述多個(gè)子關(guān)鍵值的地址,直到每一個(gè)子關(guān)鍵值所存儲(chǔ)的所有數(shù)據(jù)的數(shù)據(jù)量總和不超過(guò)預(yù)定閥值。使用本發(fā)明的方法,能夠避免存儲(chǔ)熱點(diǎn)的產(chǎn)生,節(jié)約網(wǎng)絡(luò)節(jié)點(diǎn)資源,有效地防止由于對(duì)數(shù)據(jù)存儲(chǔ)量過(guò)大的關(guān)鍵值的訪問(wèn)而導(dǎo)致的網(wǎng)絡(luò)瓶頸的發(fā)生,實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載均衡。
文檔編號(hào)H04L29/08GK102970349SQ20121043497
公開日2013年3月13日 申請(qǐng)日期2012年11月2日 優(yōu)先權(quán)日2012年11月2日
發(fā)明者鄒福泰, 章思宇, 裴蓓, 黃道麗 申請(qǐng)人:上海交通大學(xué), 公安部第三研究所