專利名稱:一種結(jié)構(gòu)化p2p網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種結(jié)構(gòu)化P2P (Peer to Peer,對(duì)等
網(wǎng)絡(luò))網(wǎng)絡(luò)中^:值轉(zhuǎn)移的方法和系統(tǒng)。
背景技術(shù):
P2P技術(shù)充分利用網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)的能力,在節(jié)點(diǎn)間互相提供服務(wù)。使 用P2P技術(shù)將大大提高網(wǎng)'絡(luò)中節(jié)點(diǎn)的利用率,從而進(jìn)一步提升網(wǎng)絡(luò)、設(shè)備和信 息服務(wù)的效能,P2P網(wǎng)絡(luò)迸一步包括結(jié)枸化、非結(jié)構(gòu)化和松散結(jié)構(gòu)化網(wǎng)絡(luò)。其 中,結(jié)構(gòu)化P2P網(wǎng)絡(luò)的特點(diǎn)在于資源的發(fā)布和網(wǎng)絡(luò)拓樸緊密相關(guān),資源按照P2P 拓樸中的邏輯地址精確的分布在網(wǎng)絡(luò)中。在這類網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都具有虛 擬的邏輯地址,并根據(jù)地址使所有節(jié)點(diǎn)構(gòu)成一個(gè)相對(duì)穩(wěn)定而緊密的拓樸結(jié)構(gòu)。 結(jié)構(gòu)化P2P中,對(duì)資源根據(jù)Hash (哈希算法)后生成的值為key (標(biāo)識(shí)),每個(gè) key對(duì)應(yīng)的資源稱為value (可以是索引如IP地址,也可以是內(nèi)容)。因?yàn)閗ey的 名字空間和P2P節(jié)點(diǎn)的名字空間存在映射關(guān)系,資源才艮據(jù)該key和映射關(guān)系分 布在結(jié)構(gòu)化P2P網(wǎng)絡(luò)中,之后可以通過(guò)該key在該P(yáng)2P網(wǎng)絡(luò)中找到該資源。建立 在P2P技術(shù)之上的網(wǎng)絡(luò)通常都具有良好的擴(kuò)展性、易管理性、自組織等特點(diǎn)。 如圖l所示,在一個(gè)結(jié)構(gòu)化P2P網(wǎng)絡(luò)中,所有的節(jié)點(diǎn)共同負(fù)責(zé)一個(gè)連續(xù)的 ID空間(ID和key屬于同一空間,所以也可以叫做key值空間)。以Chord算法 (一種DHT( Distributed Hash Table,分布式哈希表)算法)為例,所有的加 入P2P網(wǎng)絡(luò)的節(jié)點(diǎn)按照節(jié)點(diǎn)的ID順序組成一個(gè)環(huán),每個(gè)節(jié)點(diǎn)負(fù)責(zé)從其前繼節(jié)點(diǎn) 的ID (不含)到自己的節(jié)點(diǎn)ID的鍵值(key/value)范圍。如圖所示,ID為40 的節(jié)點(diǎn)負(fù)責(zé)的key值范閨為為21 40, ID為60的節(jié)點(diǎn)負(fù)責(zé)的key值范圍為41 60, 當(dāng)ID為40的節(jié)點(diǎn)優(yōu)雅離開P2P網(wǎng)絡(luò)時(shí),根據(jù)相應(yīng)的DHT算法,將自己負(fù)責(zé)的 key/value轉(zhuǎn)衫給lD為60的節(jié)點(diǎn)管理,此時(shí),ID為60的節(jié)點(diǎn)負(fù)責(zé)的key值范圍為 21~60,路由表中含有節(jié)點(diǎn)ID為40的節(jié)點(diǎn),更新自己的路由表。由于P2P網(wǎng)絡(luò)的節(jié)點(diǎn)是由普考的設(shè)備構(gòu)成,所以節(jié)點(diǎn)的加入和退出會(huì)比較頻繁,另外,由
于節(jié)點(diǎn)能力的差異,以及負(fù)責(zé)的key值范圍的大小,以及處理P2P層的路由的 多少,會(huì)有出現(xiàn)一些節(jié)點(diǎn)比較忙而負(fù)擔(dān)過(guò)重的情況。另外由于網(wǎng)絡(luò)的不穩(wěn)定, 準(zhǔn)備和當(dāng)前節(jié)點(diǎn)有數(shù)據(jù)交互的節(jié)點(diǎn)可能并不知道當(dāng)前節(jié)點(diǎn)的狀態(tài)如何。
現(xiàn)有技術(shù)中,i在新節(jié)點(diǎn)加入時(shí),新節(jié)點(diǎn)的鄰居節(jié)點(diǎn)根據(jù)節(jié)點(diǎn)的ID值和相 應(yīng)的DHT算法,得到新節(jié)點(diǎn)應(yīng)該負(fù)責(zé)的key值范圍,然后直接把自己當(dāng)前負(fù)責(zé) 的應(yīng)該轉(zhuǎn)移給新節(jié)點(diǎn)的部分key/value發(fā)ii給新節(jié)點(diǎn)?;蛘咴谝粋€(gè)節(jié)點(diǎn)離開P2P 網(wǎng)絡(luò)時(shí),根據(jù)鄰居節(jié)點(diǎn)的ID值和相應(yīng)的DHT算法,得到哪些節(jié)點(diǎn)應(yīng)該接管自 己當(dāng)前負(fù)責(zé)的key傳范圍,然后直接將自己負(fù)責(zé)的相應(yīng)的key/value轉(zhuǎn)移給這些
節(jié)點(diǎn)。 ,,
使用該方法時(shí),可能會(huì)遇到以下問(wèn)題key/value發(fā)起節(jié)點(diǎn)不知道接收節(jié)點(diǎn) 可能正在離開,如果它不接收任何轉(zhuǎn)移key/value的請(qǐng)求,攜帶key/value的報(bào) 文到達(dá)時(shí)將被拒絕或者丟棄,如果此時(shí)接收節(jié)點(diǎn)接收了該轉(zhuǎn)移的key/value,這 些key/value將由+該節(jié)點(diǎn)的退出而失效;另夕卜,key/value接收節(jié)點(diǎn)可能正處于 忙的狀態(tài),可能會(huì)造成k6y/value轉(zhuǎn)移效率低下;最后,轉(zhuǎn)移的key/value中攜帶 明顯不屬于在轉(zhuǎn)移范圍內(nèi)的異常key值,導(dǎo)致接收節(jié)點(diǎn)不加判斷的錯(cuò)誤接收不 屬于自己負(fù)責(zé)的k6y/value 。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的方法和系統(tǒng),以實(shí) 現(xiàn)結(jié)構(gòu)化P2A網(wǎng)絡(luò)中節(jié)點(diǎn)間key/value轉(zhuǎn)移過(guò)程的順利完成,維護(hù)結(jié)構(gòu)化P2P網(wǎng) 絡(luò)的穩(wěn)定性。
為達(dá)到上述目的,本發(fā)明的實(shí)施例提供了 一種結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移 的協(xié)商方法,包括如卞步驟
接收節(jié)點(diǎn)接收發(fā)超節(jié)點(diǎn)發(fā)送的鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息;
所迷接收節(jié)點(diǎn)才艮據(jù)所述協(xié)商請(qǐng)求消息生成協(xié)商響應(yīng)消息;
所述接收節(jié)點(diǎn)向所述發(fā)起節(jié)點(diǎn)發(fā)送所述協(xié)商響應(yīng)消息。
本發(fā)明的實(shí)施例^提供了 一種結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的方法,包括以下步驟
發(fā)起節(jié)點(diǎn)向接收節(jié)點(diǎn)發(fā)送鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息; 所述發(fā)起節(jié)點(diǎn)接收所述接收節(jié)點(diǎn)根據(jù)所述協(xié)商請(qǐng)求返回的協(xié)商響應(yīng)消
自
所述發(fā)起節(jié)點(diǎn)根據(jù)所述協(xié)商響應(yīng)消息對(duì)需要轉(zhuǎn)移的key/value進(jìn)行轉(zhuǎn)移。 本發(fā)明的實(shí)施例還提供了一種結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的系統(tǒng),具體包
括
發(fā)起節(jié)點(diǎn),用于在需要進(jìn)行本節(jié)點(diǎn)的key/value轉(zhuǎn)移時(shí),向接收節(jié)點(diǎn)發(fā)送鍵 值轉(zhuǎn)移協(xié)商請(qǐng)求消息,.并根據(jù)所迷接收節(jié)點(diǎn)返回的協(xié)商響應(yīng)消息,對(duì)所述需 要轉(zhuǎn)移的key/value進(jìn)行轉(zhuǎn)移;
接收節(jié)點(diǎn),用于接收到所述發(fā)起節(jié)點(diǎn)發(fā)送的鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息時(shí), 根據(jù)所述協(xié)商請(qǐng)求消息生成協(xié)商響應(yīng)消息,并向所述發(fā)起節(jié)點(diǎn)發(fā)送所述協(xié)商
響應(yīng)';'封息。 '
與現(xiàn)有技術(shù)相比,本發(fā)明的實(shí)施例具有以下優(yōu)點(diǎn)
通過(guò)在鍵值轉(zhuǎn)移過(guò)程中增加,商過(guò)程,解決了因?yàn)檗D(zhuǎn)移節(jié)點(diǎn)不知道接收 節(jié)點(diǎn)的狀態(tài)而引起的 一 系列問(wèn)題。同時(shí)由于最后的鍵值轉(zhuǎn)移需要按照協(xié)商的 結(jié)果進(jìn)行,有效的防,止了轉(zhuǎn)移過(guò)程中出現(xiàn)的異常鍵值現(xiàn)象。
圖1是現(xiàn)有技術(shù)中結(jié)構(gòu)化P2P網(wǎng)絡(luò)中節(jié)點(diǎn)離開時(shí)鍵值轉(zhuǎn)移示意圖2是本發(fā)明實(shí)施例一的一種結(jié)構(gòu)化P2P網(wǎng)絡(luò)中^^值轉(zhuǎn)移的方法的流程
圖3是本發(fā)明實(shí)施例二的一種維構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的方法的流程
圖4是本發(fā)明實(shí)施例三的一種結(jié)構(gòu)化P2P網(wǎng)絡(luò)中4建值轉(zhuǎn)移的方法的流程
圖5是本發(fā)明實(shí)施例三中key/value轉(zhuǎn)移協(xié)商完全接收示意圖; 圖6是本發(fā)明實(shí)施例三中key/value轉(zhuǎn)移協(xié)商部分接收示意圖;圖7是本發(fā)明實(shí)施例三中key/value轉(zhuǎn)移協(xié)商拒絕接收示意圖8是本發(fā)明實(shí)施例四中結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式
作進(jìn)一步詳細(xì)描述 本發(fā)明的實(shí)施例一中, 一種結(jié)構(gòu)化P2P網(wǎng)絡(luò)中4建值轉(zhuǎn)移的方法如圖2所
示,具體步驟如下
步驟s201、發(fā)起節(jié)點(diǎn)向摔收節(jié)點(diǎn)發(fā)送鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息。
具體的,該鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息中攜帶如下信息(l)將要轉(zhuǎn)移的key
值范圍;(2)該key值范圍攜帶正常轉(zhuǎn)移或因故轉(zhuǎn)移的標(biāo)志。
步驟s202、接收節(jié)^根據(jù)本節(jié)點(diǎn)的狀態(tài)、key值范圍是否屬于本節(jié)點(diǎn)負(fù)責(zé)
以及鍵值轉(zhuǎn)祐協(xié)商請(qǐng)求中是否攜帶因故轉(zhuǎn)移標(biāo)志,對(duì)該鍵值轉(zhuǎn)移協(xié)商請(qǐng)求做
出協(xié)商響應(yīng)。
具體的,接收節(jié)點(diǎn).的狀態(tài)至少包括正常、節(jié)點(diǎn)忙或節(jié)點(diǎn)正在離開等狀態(tài); 正常狀態(tài)是指節(jié)點(diǎn)對(duì)于key/value值轉(zhuǎn)移有能力進(jìn)行處理和接收。key值范圍 包括完全屬于本節(jié)點(diǎn)負(fù)責(zé)、部分屬于本節(jié)點(diǎn)負(fù)責(zé)和完全不屬于本節(jié)點(diǎn)負(fù)責(zé)。 步驟s203、接收節(jié)點(diǎn)向發(fā)起節(jié)點(diǎn)發(fā)送協(xié)商響應(yīng)消息。 具體的,該協(xié)商響應(yīng)消息包括完全接收、部分接收或拒絕接收。 摔收節(jié)點(diǎn)完全接收該key值范圍的原因包括(1)該鍵值轉(zhuǎn)移協(xié)商請(qǐng)求是 正常轉(zhuǎn)移,接收節(jié)點(diǎn)處于正常狀態(tài),并且請(qǐng)求轉(zhuǎn)移的key值范圍在本節(jié)點(diǎn)負(fù)責(zé) 的key值范圍內(nèi);(2 )接收節(jié)點(diǎn)處于正常狀態(tài),雖然鍵值轉(zhuǎn)移協(xié)商請(qǐng)求中有不 屬于本節(jié)點(diǎn)負(fù)責(zé)的key值范圍,但是該鍵值轉(zhuǎn)移協(xié)商請(qǐng)求中攜帶了因故轉(zhuǎn)移的 標(biāo)志。
接收節(jié)點(diǎn)部分^接收該key值范圍的原因包括該鍵值轉(zhuǎn)移協(xié)商請(qǐng)求是正 常轉(zhuǎn)移,接收節(jié)點(diǎn)處于正常狀態(tài),但是^:值轉(zhuǎn)移協(xié)商請(qǐng)求的key值范圍有部 分超出了接收節(jié)點(diǎn)負(fù)責(zé)的key值范圍,所以對(duì)于在本節(jié)點(diǎn)負(fù)責(zé)范圍內(nèi)的key 值同意接收,對(duì)于超出本節(jié)點(diǎn)負(fù)責(zé)范圍的key值進(jìn)行拒絕。
接收節(jié)點(diǎn)拒絕該key值范圍的原因可能有如下幾種(1)本節(jié)點(diǎn)正忙,無(wú)法處理;(2)本節(jié)點(diǎn)正處于離開狀態(tài),合理拒絕;(3)該鍵值協(xié)商轉(zhuǎn)移請(qǐng) 求是正常轉(zhuǎn)移,但是請(qǐng)求的key值范圍不在本節(jié)點(diǎn)負(fù)責(zé)的key值范圍內(nèi)。
步驟s204、發(fā)起節(jié)點(diǎn)接收該協(xié)商響應(yīng)消息,并根據(jù)該協(xié)商響應(yīng)消息中被 接收節(jié)點(diǎn)接收的key值范圍,將對(duì)應(yīng)的key/value進(jìn)行轉(zhuǎn)移。
本發(fā)明的實(shí)施例二中,以接收節(jié)點(diǎn)側(cè)進(jìn)行描述, 一種結(jié)構(gòu)化P2P網(wǎng)絡(luò)中 4建值轉(zhuǎn)移的方法如圖3'所示,具體步驟如下
步驟s301 、接收節(jié)點(diǎn)接收發(fā)起節(jié)點(diǎn)發(fā)送的鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息。
該鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息中攜帶如下信息(1)將要轉(zhuǎn)移的key值范圍; (2)該key值范圍攜帶正常轉(zhuǎn)移還是因故轉(zhuǎn)移的標(biāo)志; 一般來(lái)說(shuō),在key/value 轉(zhuǎn)移過(guò)程中,第一次發(fā)起的鍵值轉(zhuǎn)移協(xié)商請(qǐng)求是正常轉(zhuǎn)移,如果因?yàn)榻邮展?jié) 點(diǎn)忙或者其他原因被拒絕后、再次請(qǐng)求轉(zhuǎn)移時(shí),該鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息則 攜帶上因故轉(zhuǎn)移的標(biāo)志。
步驟s302、接收節(jié)點(diǎn)判斷本節(jié)點(diǎn)的狀態(tài)是否正常,如果本節(jié)點(diǎn)的狀態(tài)正常, 轉(zhuǎn)步驟s303,否則轉(zhuǎn)步緘s305。
步驟s303、判斷該^值轉(zhuǎn)移協(xié)商請(qǐng)求消息是否攜帶因故轉(zhuǎn)移標(biāo)志,如果攜 帶因故轉(zhuǎn)移標(biāo)志,轉(zhuǎn)步驟s307,否則轉(zhuǎn)步驟s304。
步驟s304、當(dāng)該鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息的key值范圍不攜帶因故轉(zhuǎn)移標(biāo)志 時(shí),即該key值范圍為正常轉(zhuǎn)移,接收節(jié)點(diǎn)判斷該key值范圍是否屬于本節(jié)點(diǎn)負(fù) 責(zé),如果該key值范圍完全屬于本節(jié)點(diǎn)負(fù)責(zé),轉(zhuǎn)步驟s307,如果key值范圍部分 屬于本節(jié)點(diǎn)負(fù)責(zé),轉(zhuǎn)步驟s308,如果key值范圍完全不屬于本節(jié)點(diǎn)負(fù)責(zé),轉(zhuǎn)步 驟s309。
步驟s305、當(dāng)接權(quán)節(jié)點(diǎn)的狀態(tài)為非正常狀態(tài)時(shí),判斷該接收節(jié)點(diǎn)是否正在
離開,如果正在離開,、轉(zhuǎn)步驟s309,否則轉(zhuǎn)步驟s306。
步驟s306、接收節(jié)點(diǎn)判斷該鍵值協(xié)商轉(zhuǎn)移請(qǐng)求消息中是否有key值范圍屬
于本節(jié)點(diǎn)負(fù)責(zé),如果是,轉(zhuǎn)步驟s310,否則轉(zhuǎn)步驟s309。
步驟s307、接收節(jié)點(diǎn)向發(fā)起節(jié)點(diǎn)發(fā)送完全接收響應(yīng)消息并結(jié)束。 步驟s308、接收節(jié)點(diǎn)向發(fā)起節(jié)點(diǎn)發(fā)逸部分接收響應(yīng)消息并結(jié)束。 該響應(yīng)消息中包含接收的key值范圍和不接收的key值范圍,對(duì)不接收的key值范圍給'出替代節(jié)點(diǎn)和拒絕原因。
步驟s309、接收節(jié)點(diǎn)向發(fā)起節(jié)點(diǎn)發(fā)送拒絕接收響應(yīng)消息并結(jié)束。 該拒絕接收響應(yīng)消息中可以攜帶拒絕原因、和/或替代節(jié)點(diǎn)信息。 步驟s310、接收節(jié)點(diǎn)向發(fā)起節(jié)點(diǎn)發(fā)送拒絕接收響應(yīng)消息并結(jié)束。 該拒絕接收響應(yīng)消息中應(yīng)該攜帶以下信息(l)拒絕原因;(2)如果請(qǐng) 求中有屬于本節(jié)點(diǎn)負(fù)責(zé)的key值范圍,接收節(jié)點(diǎn)不是因?yàn)樘幱谡陔x開狀態(tài)而 拒絕key/value轉(zhuǎn)移的,要帶上標(biāo)志,表示需要知道最后存儲(chǔ)該key值范圍對(duì)應(yīng) 的key/value的節(jié)點(diǎn)的信息。這樣當(dāng)因?yàn)槊Χ鵁o(wú)法接收key/value轉(zhuǎn)移的節(jié)點(diǎn),在 收到相應(yīng)的key/value查詢請(qǐng)求的時(shí)候,可以將請(qǐng)求轉(zhuǎn)移給實(shí)際存儲(chǔ)相應(yīng) key/value的節(jié)點(diǎn)處理,'保證了服務(wù)的可用性。
本發(fā)明的實(shí)施例二中,以發(fā)起節(jié)點(diǎn)側(cè)進(jìn)行描述, 一種結(jié)構(gòu)化PP網(wǎng)絡(luò)中 鍵值轉(zhuǎn)移的方法如圖4所示,具體步驟如下
步驟s40'l、泉起節(jié)'點(diǎn)向摔收節(jié)點(diǎn)發(fā)送鍵值協(xié)商請(qǐng)求消息。 該鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息中攜帶如下信息(1)將要轉(zhuǎn)移的key值范圍; (2)該key值范閨攜帶正常轉(zhuǎn)移還是因故轉(zhuǎn)移的標(biāo)志。
步驟s402、發(fā)起,點(diǎn)接收該接收節(jié)點(diǎn)根據(jù)該鍵值協(xié)商請(qǐng)求返回的協(xié)商響 應(yīng)消息。
步驟s403、發(fā)起節(jié)點(diǎn)判斷該協(xié)商響應(yīng)消息中^皮接收節(jié)點(diǎn)接收的key值范 圍,如果是完全接收,'轉(zhuǎn)步驟s404,如果是部分接收,轉(zhuǎn)步驟s405,如果是 拒絕接收,轉(zhuǎn)步驟s406。
步驟s404、發(fā)起節(jié)點(diǎn)向接收節(jié)點(diǎn)轉(zhuǎn)移接收節(jié)點(diǎn)接收的key值范圍對(duì)應(yīng)的 key/value并結(jié)束。
步驟s405、'發(fā)起,點(diǎn)向接收節(jié)點(diǎn)轉(zhuǎn)移接收節(jié)點(diǎn)接收的key值范圍對(duì)應(yīng)的 key/value并結(jié)束。
具體的,對(duì)鍵值協(xié)商請(qǐng)求響應(yīng)消息中接收的key值范圍進(jìn)行對(duì)應(yīng)的 key/value轉(zhuǎn)移;對(duì)》巨絕接收的key值范圍,發(fā)起節(jié)點(diǎn)根據(jù)鍵值協(xié)商請(qǐng)求響應(yīng)消 息中的替代節(jié)點(diǎn)信息和本身的鄰居列表選擇節(jié)點(diǎn)進(jìn)行協(xié)商和轉(zhuǎn)移,并攜帶上 因故轉(zhuǎn)移標(biāo)志。
步驟s4G6 、發(fā)起節(jié)點(diǎn)判斷該協(xié)商響應(yīng)消息中是否攜帶接收節(jié)點(diǎn)需要知道的 key值范圍和該key值范圍對(duì)應(yīng)的key/value最終存儲(chǔ)地址的標(biāo)志,如果是,轉(zhuǎn)步 驟s407,否則轉(zhuǎn)步驟s408。
步驟s407、發(fā)起節(jié)點(diǎn)根據(jù)該鍵值協(xié)商請(qǐng)求響應(yīng)消息中的替代節(jié)點(diǎn)信息和本 身的鄰居列表選擇節(jié)點(diǎn)進(jìn)行協(xié)商和轉(zhuǎn)移,并攜帶上因故轉(zhuǎn)移標(biāo)志;最后通知 接收節(jié)點(diǎn)其希望獲取的key值范圍對(duì)應(yīng)的key/value的最終存儲(chǔ)地址并結(jié)束。
如果發(fā)起節(jié)點(diǎn)不處于正在離開P2'P網(wǎng)絡(luò)狀態(tài),且能力充足,并且前面協(xié)商 響應(yīng)中攜帶了因忙或者其他非離開狀態(tài)而拒,絕的key值范圍,發(fā)起節(jié)點(diǎn)對(duì)相應(yīng) 的key值范圍對(duì)應(yīng)的key/value可以暫不轉(zhuǎn)移,需要通知接收節(jié)點(diǎn)其希望獲取的 key值范圍對(duì)應(yīng)的key/vahie的最終存儲(chǔ)地址在本地。
'步驟 408、根挺替代節(jié)點(diǎn)和鄰居列表選擇節(jié)點(diǎn)協(xié)商轉(zhuǎn)移,攜帶因故轉(zhuǎn)移標(biāo)
士
key/value轉(zhuǎn)移完成后,發(fā)起節(jié)點(diǎn)和接收節(jié)點(diǎn)進(jìn)行全部轉(zhuǎn)移完成的確認(rèn)。
如圖5所示,為上述涉及的發(fā)起節(jié)點(diǎn)和接收節(jié)點(diǎn)之間key/value完全轉(zhuǎn)移示 意圖,包括以下步驟
步驟s501 、發(fā)起節(jié)點(diǎn)向接收節(jié)點(diǎn)發(fā)送^^值協(xié)商轉(zhuǎn)移請(qǐng)求消息。
步驟s502、接收節(jié)點(diǎn)向發(fā)起節(jié)點(diǎn)返回完全接收響應(yīng)。
步驟s50'3、發(fā)起節(jié)點(diǎn)開始key/value轉(zhuǎn)移,接收節(jié)點(diǎn)對(duì)在協(xié)商key值范圍內(nèi) 的key/value,進(jìn)行確i人,對(duì)不在協(xié)商key值范圍內(nèi)的key/value,做出錯(cuò)誤反饋。
步驟s504、全部轉(zhuǎn)移完成
步驟s505、摔收節(jié)點(diǎn)向發(fā)起節(jié)點(diǎn)發(fā)送確認(rèn)消息。
如圖6所示,為上述涉及的發(fā)起節(jié)點(diǎn)和接收節(jié)點(diǎn)之間key/value部分轉(zhuǎn)移示 意圖,包括以下步驟
步驟s601 、發(fā)起節(jié)點(diǎn)向接收節(jié)點(diǎn)發(fā)送鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息。
步驟s602、接^l史節(jié),點(diǎn)向發(fā)起節(jié)點(diǎn)返回部分接收響應(yīng),允許部分key范圍對(duì) 應(yīng)的key/value轉(zhuǎn)移,拒絕鍵值轉(zhuǎn)移協(xié)商請(qǐng)求中的部分key值范圍,給出替代節(jié) 點(diǎn)信息。 '
步驟s603、發(fā)起節(jié)點(diǎn)開始key/value轉(zhuǎn)移,接收節(jié)點(diǎn)對(duì)在協(xié)商key值范圍內(nèi)的key/value,進(jìn)行確認(rèn),對(duì)不在協(xié)商key值范圍內(nèi)的key/value,做出錯(cuò)誤反饋。 步驟s604、發(fā)起節(jié)點(diǎn)和響應(yīng)中的替代節(jié)點(diǎn)或其他節(jié)點(diǎn)協(xié)商轉(zhuǎn)移被拒絕的 key值范圍。
步驟s605、發(fā)起節(jié)點(diǎn)通知^"收節(jié)點(diǎn)全部轉(zhuǎn)移完成。 步驟s606 、接收節(jié)點(diǎn)向發(fā)起節(jié)點(diǎn)發(fā)送確認(rèn)消息。
如圖7所示,為上迷涉及的發(fā)起節(jié)點(diǎn)和接收節(jié)點(diǎn)之間拒絕key/value轉(zhuǎn)移示 意圖,包括以下步驟
步驟s701 、發(fā)起節(jié)點(diǎn)向接收節(jié)點(diǎn)發(fā)送鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息
步驟s702、接收節(jié)點(diǎn)向發(fā)起節(jié)點(diǎn)返回拒絕響應(yīng),拒絕key/value轉(zhuǎn)移,給出 替代節(jié)點(diǎn)信息,以及標(biāo)志是否需要知道該消息中屬于本節(jié)點(diǎn)負(fù)責(zé)范圍的key值 范圍對(duì)應(yīng)的key/value的最后存儲(chǔ)地址。
步驟s703、發(fā)起節(jié)點(diǎn)和響應(yīng)中的替代節(jié)點(diǎn)或其他節(jié)點(diǎn)協(xié)商及轉(zhuǎn)移 key/value,或者不轉(zhuǎn)移。
步驟s704、如果接收節(jié)點(diǎn)的協(xié)商響應(yīng)消息中攜帶了希望收到某key值范圍 對(duì)應(yīng)的key/value最后存儲(chǔ)地址的標(biāo)志,則在和別的節(jié)點(diǎn)協(xié)商成功后(或者不轉(zhuǎn) 移),發(fā)起節(jié)點(diǎn)通知接收節(jié)點(diǎn)實(shí)際存儲(chǔ)key值范圍對(duì)應(yīng)的key/value的節(jié)點(diǎn)信息。
為了維持結(jié)構(gòu)化P2P網(wǎng)絡(luò)的服務(wù)穩(wěn)定性,每個(gè)節(jié)點(diǎn)還需要周期性的檢查 本節(jié)點(diǎn)的正常負(fù)責(zé)的key/value表中,有沒(méi)有超出本身負(fù)責(zé)key值范圍的,有 則利用上面的過(guò)程進(jìn)行key/value協(xié)商轉(zhuǎn)移。另夕卜,在key/value按照協(xié)商轉(zhuǎn)移 的過(guò)程中,i可以進(jìn)一步包括,如果接收節(jié)點(diǎn)的存儲(chǔ)空間不足,可以反饋給 發(fā)送節(jié)點(diǎn),并帶上標(biāo)志希望知道剩余尚未轉(zhuǎn)移的key值范圍的最后存儲(chǔ)的地 址,并立即結(jié)束key/value轉(zhuǎn)移過(guò)程。在泉送節(jié)點(diǎn)和別的節(jié)點(diǎn)協(xié)商轉(zhuǎn)移相應(yīng)的 key/value或者不轉(zhuǎn)移后,通知該接收節(jié)點(diǎn)剩余key值范圍的最后存儲(chǔ)地址。 以使_接收節(jié)點(diǎn)在后續(xù)收到相應(yīng)key值的查詢請(qǐng)求時(shí),可以轉(zhuǎn)移給實(shí)際存儲(chǔ)相 應(yīng)key/value的節(jié)點(diǎn)處理。
通過(guò)使用上述實(shí)施例提供的方法,在key/value轉(zhuǎn)移過(guò)程中增加了協(xié)商過(guò) 程,解決了因?yàn)榘l(fā)起節(jié)點(diǎn)不知道接收節(jié)點(diǎn)的狀態(tài)而引起的一系列問(wèn)題;由于 最后的key/value轉(zhuǎn)移需要按照協(xié)商的結(jié)果進(jìn)行,所以有效的防止了轉(zhuǎn)移過(guò)程中出現(xiàn)的異常key的現(xiàn)象;通過(guò)周期性的key/value自^r和協(xié)商轉(zhuǎn)移,維護(hù)了結(jié)構(gòu) 化P2P網(wǎng)絡(luò)服務(wù)的穩(wěn)定性。
本發(fā)明的實(shí)施例四中, 一種結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的系統(tǒng)如圖8所 示,具體包括
發(fā)起節(jié)點(diǎn)10,用于在需要進(jìn)行本節(jié)點(diǎn)的key/value轉(zhuǎn)移時(shí),向接收節(jié)點(diǎn)20 發(fā)送鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息,并根據(jù)接收節(jié)點(diǎn)20返回的協(xié)商響應(yīng)消息,對(duì)需 要轉(zhuǎn)移的key/value進(jìn)行轉(zhuǎn)移。
接收節(jié)點(diǎn)20,用于接收到發(fā)超節(jié)點(diǎn)IO發(fā)送的鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息時(shí), 根插本節(jié)點(diǎn)的狀態(tài)、一y值范圍是否為于本節(jié)點(diǎn)負(fù)責(zé)以及鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消 息中是否攜帶因故轉(zhuǎn)衫標(biāo)志,對(duì)該鍵值轉(zhuǎn)移協(xié)商請(qǐng)求做出協(xié)商響應(yīng),并發(fā)送 給發(fā)起節(jié)點(diǎn)10,并在需要時(shí),對(duì)發(fā)起節(jié)點(diǎn)10需要轉(zhuǎn)移的key/value進(jìn)行接收 或要求發(fā)起節(jié)點(diǎn)IO通知其相應(yīng)key值范圍的最后存儲(chǔ)地址。
具體的,發(fā)起節(jié)點(diǎn)10進(jìn)一步包括
請(qǐng)求發(fā)送單元11,,用于向接收節(jié)點(diǎn)20發(fā)送鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息。
響應(yīng)接收單元12,用'于接收來(lái)自接收節(jié)點(diǎn)20的協(xié)商響應(yīng)消息并發(fā)送給協(xié) 商響應(yīng)處理單元13。
協(xié)商響應(yīng)處理單元13,用于對(duì)響應(yīng)接收單元12接收的來(lái)自接收節(jié)點(diǎn)20 的協(xié)商響應(yīng)消息中的key值范圍進(jìn)行判斷,該key值范圍包括完全接收、部分 接收、或拒絕接收。'
key/value轉(zhuǎn)^單;^ 14,用于對(duì)協(xié)商響應(yīng)處理單元13判斷為可以進(jìn)行轉(zhuǎn)移 的key/value向接收節(jié)點(diǎn)20進(jìn)行轉(zhuǎn)移。
轉(zhuǎn)移標(biāo)志設(shè)置單元15,用于將協(xié)商響應(yīng)處理單元13判斷為拒絕接收的 key值范圍設(shè)置因^L轉(zhuǎn)移標(biāo)志,并發(fā)送給請(qǐng)求發(fā)送單元11 ,用于下一次與其他 的鄰居節(jié)點(diǎn)進(jìn)行鍵值轉(zhuǎn)移協(xié)商時(shí)使用。
鄰居列表存儲(chǔ)羊元16,用于存儲(chǔ)發(fā)^節(jié)點(diǎn)10的所有鄰居節(jié)點(diǎn)的信息并提 供給請(qǐng)求發(fā)送單元11,當(dāng)鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息中的key值范圍被接收節(jié)點(diǎn) 20拒絕時(shí),將轉(zhuǎn)移#志設(shè)置單元15生成的攜帶因故轉(zhuǎn)移標(biāo)志通過(guò)請(qǐng)求發(fā)送單 元11與本單元選擇其他的鄰居節(jié)點(diǎn)進(jìn)行協(xié)商轉(zhuǎn)移。發(fā)起節(jié)點(diǎn)自檢單元17,用于周期性的檢查本節(jié)點(diǎn)上有沒(méi)有超出本身負(fù)責(zé) key值范圍的key/Value。
具體的,接收節(jié)點(diǎn)'20進(jìn)一步包括
請(qǐng)求接收單元21 ,.用于接收發(fā)起節(jié)點(diǎn)10發(fā)送的鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息, 并發(fā)送給協(xié)畝響應(yīng)單元22。
協(xié)商響應(yīng)單元22,'用于根據(jù)從請(qǐng)求接收單元21接收到的鍵值轉(zhuǎn)移協(xié)商請(qǐng) 求,根據(jù)本節(jié)點(diǎn)的狀態(tài),、key值范圍是否屬于本節(jié)點(diǎn)負(fù)責(zé)以及鍵值轉(zhuǎn)移協(xié)商請(qǐng) 求消息中是否攜帶因故轉(zhuǎn)移標(biāo)志,對(duì)該鍵值轉(zhuǎn)移協(xié)商請(qǐng)求做出協(xié)商響應(yīng),該 協(xié)商響應(yīng)消息包括完全接收響應(yīng)、部分接收響應(yīng)、或拒絕接收響應(yīng)。
響應(yīng)發(fā)送單元23,用于將協(xié)商響應(yīng)單元22生成的協(xié)商響應(yīng)消息發(fā)送結(jié)^發(fā) 起節(jié)點(diǎn)10。
接收節(jié)點(diǎn)自檢單元24,用于周期性的檢查本節(jié)點(diǎn)上有沒(méi)有超出本身負(fù)責(zé) key值范圍的key/value。
其中,協(xié)商響應(yīng)單元22進(jìn)一步包括
狀態(tài)獲取子單元221,用于獲取接收節(jié)點(diǎn)的狀態(tài)是正常狀態(tài)還是非正常狀 態(tài),其中非正常狀態(tài)可以為接收節(jié)點(diǎn)正忙、正在離開網(wǎng)絡(luò)或其他非正常狀
太
標(biāo)志判斷子單元222,用于判斷接收到的鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息中是否攜 帶因故轉(zhuǎn)移標(biāo)志。
key值范'圍判斷子單元223 ,用于判斷該鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息中是否有 key值范圍屬于本接收節(jié)點(diǎn)負(fù)責(zé)。
響應(yīng)消息生成子單元224,用于根據(jù)狀態(tài)獲取單元221、標(biāo)志判斷子單元 222以及key值范圍判kif子單元223 ,的判斷結(jié)果生成協(xié)商響應(yīng)消息。
拒絕原因添加子單元225,用于在響應(yīng)消息生成子單元生成的消息中對(duì)于 不接收的key值范圍添加^皮拒絕的原因。
替代節(jié)點(diǎn)添加子單元226,用手在響應(yīng)消息生成子單元生成的消息中對(duì)于 不接收的key值范圍添加替代節(jié)點(diǎn)的信息。
key值范圍標(biāo)志子單元227,用于對(duì)屬于本節(jié)點(diǎn)負(fù)責(zé)的、但不能接收的key值范圍進(jìn)行標(biāo)志,希望獲取所述key值范圍對(duì)應(yīng)的key/value的最終存儲(chǔ)地址。
以上系統(tǒng)描述了 ^結(jié)構(gòu)化P2P網(wǎng)絡(luò)中的發(fā)起節(jié)點(diǎn)需要進(jìn)行key/value轉(zhuǎn)移 時(shí),和接收節(jié)點(diǎn)進(jìn)行協(xié)商并進(jìn)行key/value轉(zhuǎn)移的過(guò)程。在該特定場(chǎng)景中,所 涉及的每個(gè)節(jié)點(diǎn)的辨能是單一的。但一般情況下,在不同的應(yīng)用場(chǎng)景中,同 一個(gè)節(jié)點(diǎn)可以充當(dāng)不同的角色,這也就要求結(jié)構(gòu)化P2P網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)設(shè) 備應(yīng)該同時(shí)具有上述發(fā)起節(jié)點(diǎn)和接收節(jié)點(diǎn)的功能。對(duì)于該兼具多功能的節(jié)點(diǎn) 設(shè)備的結(jié)構(gòu),為上述實(shí)施例中發(fā)起節(jié)點(diǎn)和接收節(jié)點(diǎn)所應(yīng)具有的功能的總和, 在此不做重復(fù)描述。
通過(guò)使用上迷實(shí)竭例提供的系統(tǒng)和設(shè)備,在鍵值轉(zhuǎn)移過(guò)程中增加了協(xié)商 過(guò)程,解決了因?yàn)榘l(fā)起節(jié)點(diǎn)不知道接收節(jié)點(diǎn)的狀態(tài)而引起的一系列問(wèn)題;由 于最后的鍵值轉(zhuǎn)移需荽按照協(xié)商的結(jié)果進(jìn)行,所以有效的防止了轉(zhuǎn)移過(guò)程中 出現(xiàn)的異常key值的現(xiàn)象;通過(guò)周期性的鍵值自檢和協(xié)商轉(zhuǎn)移,維護(hù)了結(jié)構(gòu)化 P2P網(wǎng)絡(luò)服務(wù)的穩(wěn)定性。 1
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā) 明可借助庫(kù)欠件加必需"通用石更件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)石更件, 但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案 本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái), 該獲取機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)節(jié)點(diǎn) 設(shè)備執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
以上公開的僅為本發(fā)明的幾個(gè)具體實(shí)施例,但是,本發(fā)明并非局限于此, 任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種結(jié)構(gòu)化對(duì)等P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的協(xié)商方法,其特征在于,包括以下步驟接收節(jié)點(diǎn)接收發(fā)起節(jié)點(diǎn)發(fā)送的鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息;所述接收節(jié)點(diǎn)根據(jù)所述協(xié)商請(qǐng)求消息生成協(xié)商響應(yīng)消息;所述接收節(jié)點(diǎn)向所述發(fā)起節(jié)點(diǎn)發(fā)送所述協(xié)商響應(yīng)消息。
2、 如權(quán)利要求1所述結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的協(xié)商方法,其特征在 于,所述鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息中,攜'帶需要轉(zhuǎn)移的鍵值key/value對(duì)應(yīng)的key 值范圍。
3、 如權(quán)利要求2所述結(jié)構(gòu)化P2P,網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的協(xié)商方法,其特征在 于,所述鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息中還攜帶所述key值范圍的標(biāo)志,所述標(biāo)志 包括因故轉(zhuǎn)移或正常轉(zhuǎn)移。
4、 如權(quán)利要求2或3所述結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的協(xié)商方法,其特 征在手,所述接收節(jié)點(diǎn)根據(jù)所述協(xié)商請(qǐng)求消息生成協(xié)商響應(yīng)消息的步驟具體 為所述接收節(jié)點(diǎn)根據(jù)本節(jié)點(diǎn)的狀態(tài)是否正常、所述鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息 中的key值范圍是否屬于本節(jié)點(diǎn)負(fù)責(zé)、以及所述鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息是否 攜帶因故轉(zhuǎn)移標(biāo)志中的一種或多種,生成協(xié)商響應(yīng)消息。
5、 如權(quán)利要求1或4所述結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的協(xié)商方法,其特 征在乎,所述接收節(jié)點(diǎn)向所述發(fā)起節(jié)點(diǎn)發(fā)送的協(xié)商響應(yīng)消息具體為完全接收 響應(yīng)、,部分接收響應(yīng)、或拒絕接收響應(yīng)。
6、 如權(quán)利要求5所述結(jié)構(gòu)化P2P網(wǎng)絡(luò)中^^值轉(zhuǎn)移的協(xié)商方法,其特征在 于,所述接收節(jié)點(diǎn)在以下情況下向所述發(fā)起節(jié)點(diǎn)發(fā)送的協(xié)商響應(yīng)消息為完全 接收響應(yīng)所述接收節(jié)點(diǎn)為正常狀態(tài),所述鍵值轉(zhuǎn)移協(xié)商請(qǐng)求中key值范圍完全屬于本節(jié)點(diǎn)負(fù)責(zé);或所述接收節(jié)點(diǎn)為正常狀態(tài),所述鍵值轉(zhuǎn)移協(xié)商請(qǐng)求中攜帶了因故轉(zhuǎn)移標(biāo)志o
7、 如權(quán)利要求6所述結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的協(xié)商方法,其特征在 于,所述協(xié)商響應(yīng)消息為完全接收響應(yīng)時(shí),所述接收節(jié)點(diǎn)向所述發(fā)起節(jié)點(diǎn)發(fā) 送所述協(xié)商響應(yīng)消息后還包括所述接收節(jié)點(diǎn)接收所述發(fā)起節(jié)點(diǎn)對(duì)接收key值范圍對(duì)應(yīng)的key/value進(jìn)行 的轉(zhuǎn)移。
8、 如權(quán)利要求5所述結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的協(xié)商方法,其特征在 于,所述接收節(jié)點(diǎn)在以下情況下向所述發(fā)起節(jié)點(diǎn)發(fā)送的協(xié)商響應(yīng)消息為部分 接收響應(yīng)所述接收節(jié)點(diǎn)為正常狀態(tài),所述鍵值轉(zhuǎn)移協(xié)商請(qǐng)求中key值范圍部分屬 于本節(jié)點(diǎn)負(fù)責(zé),且所述鍵值轉(zhuǎn)移協(xié)商請(qǐng)求中未攜帶因故轉(zhuǎn)移標(biāo)志。
9、 如權(quán)利要求8所述結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的協(xié)商方法,其特征在 于,所述部分接收^應(yīng)中攜帶所述接收節(jié)點(diǎn)接收的key值范圍和不接收的key 值范圍,且對(duì)所述不接收的key值范圍給出拒絕原因、和/或替代節(jié)點(diǎn)信息。
10、 如權(quán)利要求8或9所述結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的協(xié)商方法,其 特征在于,所述協(xié)商響應(yīng)消息為部分接收響應(yīng)時(shí),所述接收節(jié)點(diǎn)向所述發(fā)起 節(jié)點(diǎn)發(fā)送所述協(xié)商響應(yīng)消息后還包括所述接收節(jié)點(diǎn)接收所述發(fā)起節(jié)點(diǎn)對(duì)所述部分接收響應(yīng)中攜帶的接收key 值范圍對(duì)應(yīng)的key value進(jìn)行的轉(zhuǎn)移。
11、 如權(quán)利要求5所迷結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的協(xié)商方法,其特征 在于,所述接收節(jié)點(diǎn)在以下情況下向所述發(fā)起節(jié)點(diǎn)發(fā)送的協(xié)商響應(yīng)消息為拒 絕接收響應(yīng)所述接收節(jié)點(diǎn)為正常狀態(tài),所述鍵值轉(zhuǎn)移協(xié)商請(qǐng)求中key值范圍不屬于 本節(jié)點(diǎn)負(fù)責(zé),且所述鍵值轉(zhuǎn)移協(xié)商請(qǐng)求中未攜帶因故轉(zhuǎn)移標(biāo)志;或 所述接收節(jié)點(diǎn)正處于離開網(wǎng)絡(luò)狀態(tài)、或遇忙狀態(tài)。
12、 如權(quán)利要求li所述結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的協(xié)商方法,其特征 在于,所述拒絕接收響應(yīng)中攜帶拒絕原因、和/或替代節(jié)點(diǎn)信息。
13、 如權(quán)利要求,11或12所述結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的協(xié)商方法, 其特征在于,當(dāng)所述接收節(jié)點(diǎn)正處于遇忙狀態(tài),且所述鍵值轉(zhuǎn)移請(qǐng)求消息中key值范圍屬于所述接收節(jié)點(diǎn)負(fù)責(zé)時(shí),所述拒絕接收響應(yīng)中攜帶拒絕原因,且 對(duì)屬于本節(jié)點(diǎn)負(fù)責(zé)的key值范圍進(jìn)行標(biāo)記,用于要求所述發(fā)起節(jié)點(diǎn)通知其所 述key值范圍對(duì)應(yīng)的key/value的最終存儲(chǔ)地址。
14、 如權(quán)利要求13所述結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的協(xié)街方法,其特征 在于,所述協(xié)商響應(yīng)消息為拒絕接收響應(yīng),且響應(yīng)消息中包括所述接收節(jié)點(diǎn) 對(duì)key值范圍的標(biāo)記時(shí),所述接收節(jié)點(diǎn)向所述發(fā)起節(jié)點(diǎn)發(fā)送所述協(xié)商響應(yīng)消 息后還包括所述接體節(jié)點(diǎn)接^所述發(fā)起節(jié)點(diǎn)的通知,所述通知中包括所述key值范 圍對(duì)應(yīng)的key/value的最終存儲(chǔ)地址。
15、 一種結(jié)構(gòu)化對(duì)等P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的方法,其特征在于,包括以 下步驟發(fā)起節(jié)點(diǎn)向接收節(jié)點(diǎn)發(fā)送鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息;自 所述發(fā)起節(jié)點(diǎn)根據(jù)所述協(xié)商響應(yīng)消息對(duì)需要轉(zhuǎn)移的key/value進(jìn)行轉(zhuǎn)移。
16、 如權(quán)利要求15所述結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的方法,其特征在于, 所述發(fā)起節(jié)泰根據(jù)所述協(xié)商響應(yīng)消息對(duì)需要轉(zhuǎn)移的key/value進(jìn)行轉(zhuǎn)移的步驟 具體為當(dāng)所述協(xié)商響應(yīng)消息為完全接收響應(yīng)時(shí),所述發(fā)起節(jié)點(diǎn)對(duì)所述完全接收 響應(yīng)中攜帶的key值范圍對(duì)應(yīng)的key/value進(jìn)行轉(zhuǎn)移;當(dāng)所述i^商響應(yīng)消息為部分接收響應(yīng)時(shí),所述發(fā)起節(jié)點(diǎn)對(duì)所迷部分接收 響應(yīng)中攜帶的key值范圍對(duì)應(yīng)的key/value進(jìn)行轉(zhuǎn)移,對(duì)拒絕接收的key值范 圍根據(jù)所述部分接收響應(yīng)中的替代節(jié)點(diǎn)和本節(jié)點(diǎn)的鄰居列表選擇其他節(jié)點(diǎn)進(jìn) 行4定值轉(zhuǎn)移協(xié)商,并攜帶因故轉(zhuǎn)移標(biāo)志;當(dāng)所述協(xié)商響應(yīng)消息為拒絕接收響應(yīng)時(shí),所述發(fā)起節(jié)點(diǎn)判斷所述拒絕接 收響應(yīng)中是否攜帶key值范圍標(biāo)記,所述key值范圍標(biāo)記表示所述接收節(jié)點(diǎn)要 求獲取所述標(biāo)記的key值范圍對(duì)應(yīng)的key/value的最終存儲(chǔ)地址;如果未攜帶, 根據(jù)所述拒絕接收響應(yīng)中替代節(jié)點(diǎn)和本節(jié)點(diǎn)的鄰居列表選擇其他節(jié)點(diǎn)進(jìn)行鍵值轉(zhuǎn)移協(xié)商,并攜帶因故轉(zhuǎn)移標(biāo)志;否則,根據(jù)所述拒絕接收響應(yīng)中替代節(jié) 點(diǎn)和本節(jié)點(diǎn)的鄰居列表以及本節(jié)點(diǎn)的狀態(tài),選擇特定節(jié)點(diǎn)協(xié)商轉(zhuǎn)移,攜帶因 故轉(zhuǎn)移標(biāo)志,并且通知所述接收節(jié)點(diǎn)所述標(biāo)記的key值范圍對(duì)應(yīng)的key/value 的最終存儲(chǔ)地址。
17、 一種結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的系統(tǒng),其特征在于,具體包括 發(fā)起節(jié)點(diǎn),用于在需要進(jìn)行本節(jié)點(diǎn)的key/value轉(zhuǎn)移時(shí),向接收節(jié)點(diǎn)發(fā)送鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息,并一艮據(jù)所述接收節(jié)點(diǎn)返回的協(xié)商響應(yīng)消息,對(duì)所述 需要轉(zhuǎn)移的key/value進(jìn)行轉(zhuǎn)移;接收節(jié)點(diǎn),用于接收所迷發(fā)起節(jié)點(diǎn)發(fā)送的鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息,根據(jù) 所述協(xié)商請(qǐng)求消息生成協(xié)商響應(yīng)消息,并向所述發(fā)起節(jié)點(diǎn)發(fā)送所述協(xié)商響應(yīng) 消息。 '
18、 如權(quán)利要求17所述結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的系統(tǒng),其特征在于, 所述發(fā)起節(jié)點(diǎn)進(jìn)—步包括請(qǐng)求發(fā)送單元,用于向所述接收節(jié)點(diǎn)發(fā)送鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息; 響應(yīng)接收單元,用于接收來(lái)自所述接收節(jié)點(diǎn)的協(xié)商響應(yīng)消息并發(fā)送給協(xié) 商響應(yīng)處理單元;協(xié)商響應(yīng)處理單元,用于根據(jù)所述響應(yīng)接收單元發(fā)送的來(lái)自所述接收節(jié) 點(diǎn)的協(xié)商響應(yīng)消息確定可以轉(zhuǎn)移的key值范圍;轉(zhuǎn)移單元,用于向所述接收節(jié)點(diǎn)轉(zhuǎn)移所述協(xié)商響應(yīng)處理單元確定為可以進(jìn)行轉(zhuǎn)移的key值范圍對(duì)應(yīng)的key/value。
19、 如權(quán)利要求17所述結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的系統(tǒng),其特征在于, 所述發(fā)起節(jié)點(diǎn)還包括轉(zhuǎn)移標(biāo)志設(shè)置單元,用于將所述協(xié)商響應(yīng)處理單元判斷為拒絕接收的key 值范圍設(shè)置因故#移標(biāo)志,并發(fā)送給所述請(qǐng)求發(fā)送單元用于向其他的鄰居節(jié) 點(diǎn)發(fā)送鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息;鄰居列表存儲(chǔ)單元,用于存儲(chǔ)所迷發(fā)起節(jié)點(diǎn)的所有鄰居節(jié)點(diǎn)的信息,當(dāng) 所述鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息中的key值范圍被所述接收節(jié)點(diǎn)拒絕時(shí),所述發(fā) 起節(jié)點(diǎn)從所迷鄰居列表存儲(chǔ)單元中選擇其他的鄰居節(jié)點(diǎn)進(jìn)行協(xié)商轉(zhuǎn)移,并攜帶上所述轉(zhuǎn)移標(biāo)志設(shè)置單元設(shè)置的因故轉(zhuǎn)移標(biāo)志。
20、 如權(quán)利要求17所述結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的系統(tǒng),其特征在于, 所述接收節(jié)點(diǎn)進(jìn)一步包括請(qǐng)求接收單元,用于接收所述發(fā)起節(jié)點(diǎn)發(fā)送的鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息, 并轉(zhuǎn)發(fā)給協(xié)商響應(yīng)單元;協(xié)商響應(yīng)單元,用于根據(jù)從所述請(qǐng)求接收單元接收的鍵值轉(zhuǎn)移協(xié)商請(qǐng)求 消息生成協(xié)商響應(yīng)消息,'所述協(xié)商響應(yīng)消息具體為完全接收響應(yīng)、部分接 收響應(yīng)、或拒絕接收響應(yīng);響應(yīng)發(fā)送單元,用于將所述協(xié)商響應(yīng)單元生成的協(xié)商響應(yīng)消息發(fā)送給所 迷發(fā)起節(jié)點(diǎn)。
21、 如權(quán)利要求20所述結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的系統(tǒng),其特征在于, 所述協(xié)商響應(yīng)單元進(jìn)一步包括狀態(tài)獲取子單元,'用于獲馭所述接收節(jié)點(diǎn)的狀態(tài)是正常狀態(tài)還是非正常 狀態(tài),其中非正常狀態(tài)具體為所述接收節(jié)點(diǎn)遇忙或者正在離開網(wǎng)絡(luò);標(biāo)志判斷子單元,用于判斷所述鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息中是否攜帶因故 轉(zhuǎn)移標(biāo)志;key值范圍判斷子單元,用于判斷所述鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息中是否有 key值范圍屬于本節(jié)點(diǎn)負(fù)責(zé);響應(yīng)消息生成子單元,用于根據(jù)所述狀態(tài)獲取單元獲取的接收節(jié)點(diǎn)的狀 態(tài)、以及所述標(biāo)志判斷子單元和所述key值范圍判斷子單元的判斷結(jié)果生成 協(xié)商響應(yīng)消息。
22、 如權(quán)利要求2L所述結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的系統(tǒng),其特征在于, 所述協(xié)商響應(yīng)單元還包括拒絕原因添加子單元,用于在響應(yīng)消息生成子單元生成的協(xié)商響應(yīng)消息 中對(duì)于不接收的key值范圍添加被拒絕的原因;替代節(jié)點(diǎn)添加子單元,用于在響應(yīng)消息生成子單元生成的協(xié)商響應(yīng)消息 中對(duì)于不接收的一y值范圍添加替代節(jié)點(diǎn)的信息。
23、 如權(quán)利要求21所述結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的系統(tǒng),其特征在于,所述協(xié)商響應(yīng)單元還包括key值范圍標(biāo)志子單元,用于對(duì)屬于本節(jié)點(diǎn)負(fù)責(zé)的、但不能接收的key值 范圍進(jìn)4亍才示i己。
全文摘要
本發(fā)明的實(shí)施例提供了一種結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的方法,包括以下步驟發(fā)起節(jié)點(diǎn)向接收節(jié)點(diǎn)發(fā)送鍵值轉(zhuǎn)移協(xié)商請(qǐng)求消息;所述發(fā)起節(jié)點(diǎn)接收所述接收節(jié)點(diǎn)根據(jù)所述協(xié)商請(qǐng)求返回的協(xié)商響應(yīng)消息;所述發(fā)起節(jié)點(diǎn)根據(jù)所述協(xié)商響應(yīng)消息對(duì)需要轉(zhuǎn)移的key/value進(jìn)行轉(zhuǎn)移。本發(fā)明的實(shí)施例還提供一種結(jié)構(gòu)化P2P網(wǎng)絡(luò)中鍵值轉(zhuǎn)移的系統(tǒng)。通過(guò)使用本發(fā)明的實(shí)施例提供的方法,解決了因?yàn)檗D(zhuǎn)移節(jié)點(diǎn)不知道接收節(jié)點(diǎn)的狀態(tài)而引起的一系列問(wèn)題;同時(shí)由于最后的鍵值轉(zhuǎn)移需要按照協(xié)商的結(jié)果進(jìn)行,有效的防止了轉(zhuǎn)移過(guò)程中出現(xiàn)的異常鍵值的現(xiàn)象;最后,通過(guò)周期性的鍵值自檢和協(xié)商轉(zhuǎn)移,維護(hù)了結(jié)構(gòu)化P2P網(wǎng)絡(luò)服務(wù)的穩(wěn)定性。
文檔編號(hào)H04L12/46GK101420352SQ200710163239
公開日2009年4月29日 申請(qǐng)日期2007年10月22日 優(yōu)先權(quán)日2007年10月22日
發(fā)明者張錦輝 申請(qǐng)人:華為技術(shù)有限公司