專利名稱::一種分布式關(guān)鍵字表網(wǎng)絡(luò)及對(duì)其進(jìn)行操作的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域,尤其涉及一種分布式關(guān)鍵字表網(wǎng)絡(luò)及對(duì)其進(jìn)行操作的方法。
背景技術(shù):
:分布式關(guān)鍵字(key)表是兩種非常類似的P2P技術(shù)分布式哈希表(distributedhashtable,DHT)和分布式順序表(distributedorderingtable)的統(tǒng)稱。分布式哈希表和分布式順序表近年來(lái)已經(jīng)成為P2P領(lǐng)域的熱點(diǎn)技術(shù),應(yīng)用于BT、電騾等多種P2P應(yīng)用。采用分布式關(guān)鍵字表技術(shù)構(gòu)建的疊加網(wǎng)稱為分布式關(guān)鍵字表網(wǎng)絡(luò),包含分布式哈希表網(wǎng)絡(luò)和分布式順序表網(wǎng)絡(luò)。分布式關(guān)鍵字表網(wǎng)絡(luò)可以提供數(shù)據(jù)分布式存儲(chǔ)和管理的功能,也可以提供分布式任務(wù)處理和管理的功能。分布式關(guān)鍵字表網(wǎng)絡(luò)的客戶端都可以添加/修改/刪除/查詢分布式關(guān)鍵字表網(wǎng)絡(luò)中的數(shù)據(jù)/任務(wù)。關(guān)鍵字表網(wǎng)絡(luò)的節(jié)點(diǎn)和/或客戶端擁有關(guān)鍵字表網(wǎng)絡(luò)的路由表,根據(jù)路由表能將添加/修改/刪除/查詢等操作請(qǐng)求路由到數(shù)據(jù)/任務(wù)的存儲(chǔ)/部署節(jié)點(diǎn)。每個(gè)數(shù)據(jù)/任務(wù)都有唯一的標(biāo)識(shí),稱為關(guān)鍵字。分布式關(guān)鍵字表網(wǎng)絡(luò)中的節(jié)點(diǎn)一起共同維護(hù)一個(gè)數(shù)據(jù)/任務(wù)的關(guān)鍵字空間。關(guān)鍵字空間被劃分為多段分配給節(jié)點(diǎn)負(fù)責(zé),每個(gè)節(jié)點(diǎn)負(fù)責(zé)其中的一段或多段空間。每個(gè)節(jié)點(diǎn)管理其空間段內(nèi)的數(shù)據(jù)/任務(wù)。關(guān)鍵字表網(wǎng)絡(luò)的節(jié)點(diǎn)共同維護(hù)多對(duì)從數(shù)據(jù)/任務(wù)關(guān)鍵字到數(shù)據(jù)/任務(wù)的映射。為了保證可靠性,分布式關(guān)鍵字表中將數(shù)據(jù)/任務(wù)存儲(chǔ)/部署于多個(gè)節(jié)點(diǎn)上,具體的,首先,每個(gè)數(shù)據(jù)/任務(wù)存儲(chǔ)/部署于其主節(jié)點(diǎn),即關(guān)鍵字所在關(guān)鍵字空間段的負(fù)責(zé)節(jié)點(diǎn)。其次,每個(gè)數(shù)據(jù)/任務(wù)備份于其主節(jié)點(diǎn)的若干鄰居關(guān)鍵字空間段的負(fù)責(zé)節(jié)點(diǎn),通常是后續(xù)關(guān)鍵字空間段的負(fù)責(zé)節(jié)點(diǎn)?,F(xiàn)有的分布式關(guān)鍵字表中,每個(gè)節(jié)點(diǎn)同時(shí)承擔(dān)主備兩種負(fù)載,通常主負(fù)載和備份負(fù)載的形式不一樣。主備負(fù)載需要同時(shí)均衡,但卻難同時(shí)均衡?,F(xiàn)有技術(shù)在劃分和分配關(guān)鍵字空間段時(shí),要兼顧物理節(jié)點(diǎn)的主備,兼顧前后關(guān)鍵字空間段的負(fù)責(zé)物理節(jié)點(diǎn),才能做到負(fù)載均衡。圖I為現(xiàn)有實(shí)施例一種關(guān)鍵字表網(wǎng)絡(luò)負(fù)載分配示意圖,以圖I為例,數(shù)據(jù)以I主2備的形式存儲(chǔ)3份,環(huán)形的關(guān)鍵字空間分成若干段(關(guān)鍵字空間一般以環(huán)形表示,也可以以其他形式表示),分配給各節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)負(fù)責(zé)至少一段,每個(gè)節(jié)點(diǎn)負(fù)責(zé)所分配的段數(shù)據(jù)的主存儲(chǔ),并為前驅(qū)的2段做備份,節(jié)點(diǎn)自己負(fù)責(zé)段的數(shù)據(jù)備份于后續(xù)2段的負(fù)責(zé)節(jié)點(diǎn),圖I中節(jié)點(diǎn)A的能力是系統(tǒng)所有節(jié)點(diǎn)能力之和的1/16,如圖I所示,A負(fù)責(zé)了整個(gè)系統(tǒng)1/16的主負(fù)載,卻負(fù)責(zé)整個(gè)系統(tǒng)6/32的備份負(fù)載。由于備份負(fù)載的均衡受制于鄰居空間段的大小,所以節(jié)點(diǎn)A的負(fù)載無(wú)法均衡??梢姡捎诠?jié)點(diǎn)負(fù)載分配受鄰居節(jié)點(diǎn)影響問(wèn)題,目前的分布式關(guān)鍵字表網(wǎng)絡(luò)要么無(wú)法做到負(fù)載均衡;要么需要依賴很復(fù)雜的算法、犧牲性能來(lái)頻繁調(diào)整關(guān)鍵字空間的分割和分配,來(lái)實(shí)現(xiàn)負(fù)載均衡;要么需要以大大增大路由表為代價(jià)將關(guān)鍵字空間分割為非常多段,給每個(gè)節(jié)點(diǎn)分配很多段關(guān)鍵字空間,從而導(dǎo)致路由表的維護(hù)及使用較為繁瑣,總之,現(xiàn)有分布式關(guān)鍵字表網(wǎng)絡(luò)不能有效實(shí)現(xiàn)負(fù)載均衡。
發(fā)明內(nèi)容有鑒于此,本發(fā)明的主要目的在于提供一種分布式關(guān)鍵字表網(wǎng)絡(luò)及對(duì)其進(jìn)行操作的方法,能夠有效實(shí)現(xiàn)負(fù)載均衡。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種對(duì)分布式關(guān)鍵字表網(wǎng)絡(luò)進(jìn)行操作的方法,分布式關(guān)鍵字表網(wǎng)絡(luò)維護(hù)多個(gè)關(guān)鍵字取值范圍相同的關(guān)鍵字空間,每個(gè)關(guān)鍵字空間分割為至少一個(gè)關(guān)鍵字空間段,關(guān)鍵字空間段分配給節(jié)點(diǎn)負(fù)責(zé),每個(gè)節(jié)點(diǎn)負(fù)責(zé)至少一個(gè)關(guān)鍵字空間中的至少一段關(guān)鍵字空間段,該方法包括分布式關(guān)鍵字表網(wǎng)絡(luò)的節(jié)點(diǎn)或客戶端發(fā)起對(duì)數(shù)據(jù)/任務(wù)的操作請(qǐng)求時(shí),將所述操作請(qǐng)求路由到存儲(chǔ)/部署所述數(shù)據(jù)/任務(wù)的一個(gè)關(guān)鍵字空間中的負(fù)責(zé)節(jié)點(diǎn),由所述負(fù)責(zé)節(jié)點(diǎn)向存儲(chǔ)/部署所述數(shù)據(jù)/任務(wù)的其余全部或部分關(guān)鍵字空間發(fā)起對(duì)所述數(shù)據(jù)/任務(wù)的相同操作。數(shù)據(jù)/任務(wù)在分布式關(guān)鍵字表網(wǎng)絡(luò)中存儲(chǔ)/部署k份,則一次對(duì)所述數(shù)據(jù)/任務(wù)的操作涉及的份數(shù)為I至k份,一次讀操作的份數(shù)r和一次寫操作的份數(shù)w滿足r+w>k。一種對(duì)分布式關(guān)鍵字表網(wǎng)絡(luò)進(jìn)行操作的方法,分布式關(guān)鍵字表網(wǎng)絡(luò)維護(hù)多個(gè)關(guān)鍵字取值范圍相同的關(guān)鍵字空間,每個(gè)關(guān)鍵字空間分割為至少一個(gè)關(guān)鍵字空間段,關(guān)鍵字空間段分配給節(jié)點(diǎn)負(fù)責(zé),每個(gè)節(jié)點(diǎn)負(fù)責(zé)至少一個(gè)關(guān)鍵字空間中的至少一段關(guān)鍵字空間段,該方法包括分布式關(guān)鍵字表網(wǎng)絡(luò)的節(jié)點(diǎn)或客戶端發(fā)起對(duì)數(shù)據(jù)/任務(wù)的操作請(qǐng)求時(shí),將所述操作請(qǐng)求路由到存儲(chǔ)/部署所述數(shù)據(jù)/任務(wù)的一個(gè)關(guān)鍵字空間中的負(fù)責(zé)節(jié)點(diǎn),由所述負(fù)責(zé)節(jié)點(diǎn)向存儲(chǔ)/部署所述數(shù)據(jù)/任務(wù)的另一空間發(fā)起對(duì)所述數(shù)據(jù)/任務(wù)的相同操作,直到被操作的空間數(shù)滿足預(yù)設(shè)值。數(shù)據(jù)/任務(wù)在分布式關(guān)鍵字表網(wǎng)絡(luò)中存儲(chǔ)/部署k份,則一次對(duì)所述數(shù)據(jù)/任務(wù)的操作涉及的份數(shù)為I至k份,一次讀操作的份數(shù)r和一次寫操作的份數(shù)w滿足r+w>k。一種對(duì)分布式關(guān)鍵字表網(wǎng)絡(luò)進(jìn)行操作的方法,分布式關(guān)鍵字表網(wǎng)絡(luò)維護(hù)多個(gè)關(guān)鍵字取值范圍相同的關(guān)鍵字空間,每個(gè)關(guān)鍵字空間分割為至少一個(gè)關(guān)鍵字空間段,關(guān)鍵字空間段分配給節(jié)點(diǎn)負(fù)責(zé),每個(gè)節(jié)點(diǎn)負(fù)責(zé)至少一個(gè)關(guān)鍵字空間中的至少一段關(guān)鍵字空間段,該方法包括分布式關(guān)鍵字表網(wǎng)絡(luò)的節(jié)點(diǎn)或客戶端發(fā)起對(duì)數(shù)據(jù)/任務(wù)的操作請(qǐng)求時(shí),將所述操作請(qǐng)求分別路由到所有存儲(chǔ)/部署所述數(shù)據(jù)/任務(wù)的關(guān)鍵字空間中的負(fù)責(zé)節(jié)點(diǎn)。數(shù)據(jù)/任務(wù)在分布式關(guān)鍵字表網(wǎng)絡(luò)中存儲(chǔ)/部署k份,則一次對(duì)所述數(shù)據(jù)/任務(wù)的操作涉及的份數(shù)為I至k份,一次讀操作的份數(shù)r和一次寫操作的份數(shù)w滿足r+w>k。一種分布式關(guān)鍵字表網(wǎng)絡(luò),該分布式關(guān)鍵字表網(wǎng)絡(luò)維護(hù)多個(gè)關(guān)鍵字取值范圍相同的關(guān)鍵字空間,每個(gè)關(guān)鍵字空間分割為至少一個(gè)關(guān)鍵字空間段,關(guān)鍵字空間段分配給節(jié)點(diǎn)負(fù)責(zé),每個(gè)節(jié)點(diǎn)負(fù)責(zé)至少一個(gè)關(guān)鍵字空間中的至少一段關(guān)鍵字空間段。每個(gè)數(shù)據(jù)/任務(wù)根據(jù)其關(guān)鍵字存儲(chǔ)/部署于至少一個(gè)關(guān)鍵字空間中負(fù)責(zé)對(duì)應(yīng)關(guān)鍵字空間段的節(jié)點(diǎn)上。該分布式關(guān)鍵字表網(wǎng)絡(luò)中的部分關(guān)鍵字空間為主關(guān)鍵字空間,其余關(guān)鍵字空間為備關(guān)鍵字空間,主關(guān)鍵字空間中的負(fù)責(zé)節(jié)點(diǎn)優(yōu)先對(duì)相應(yīng)數(shù)據(jù)/任務(wù)的部分操作或全部操作請(qǐng)求進(jìn)行處理,主關(guān)鍵字空間中的負(fù)責(zé)節(jié)點(diǎn)無(wú)法訪問(wèn)時(shí),由備關(guān)鍵字空間的負(fù)責(zé)節(jié)點(diǎn)對(duì)所述數(shù)據(jù)/任務(wù)的部分操作或全部操作請(qǐng)求進(jìn)行處理,或者,該分布式關(guān)鍵字表網(wǎng)絡(luò)中所有關(guān)鍵字空間對(duì)等,關(guān)鍵字空間進(jìn)行數(shù)據(jù)/任務(wù)操作不受優(yōu)先順序限制。分布式關(guān)鍵字表網(wǎng)絡(luò)中的節(jié)點(diǎn)只負(fù)責(zé)主關(guān)鍵字空間中的關(guān)鍵字空間段,或者,只負(fù)責(zé)備關(guān)鍵字空間中的關(guān)鍵字空間段。分布式關(guān)鍵字表網(wǎng)絡(luò)中的節(jié)點(diǎn)負(fù)責(zé)一個(gè)關(guān)鍵字空間中的一個(gè)或多個(gè)關(guān)鍵字空間段,或者,在每個(gè)關(guān)鍵字空間都負(fù)責(zé)一個(gè)或多個(gè)關(guān)鍵字空間段,或者,在所有關(guān)鍵字空間中的多個(gè)關(guān)鍵字空間中負(fù)責(zé)一個(gè)或多個(gè)關(guān)鍵字空間段。本發(fā)明分布式關(guān)鍵字表網(wǎng)絡(luò)及對(duì)其進(jìn)行操作的方法,分布式關(guān)鍵字表網(wǎng)絡(luò)維護(hù)多個(gè)關(guān)鍵字取值范圍相同的關(guān)鍵字空間,每個(gè)關(guān)鍵字空間分割為至少一個(gè)關(guān)鍵字空間段,關(guān)鍵字空間段分配給節(jié)點(diǎn)負(fù)責(zé),每個(gè)節(jié)點(diǎn)負(fù)責(zé)至少一個(gè)關(guān)鍵字空間中的至少一段關(guān)鍵字空間段。通過(guò)本發(fā)明,分布式關(guān)鍵字表網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)可以靈活分配數(shù)據(jù)/任務(wù),節(jié)點(diǎn)間不互相影響任務(wù)/數(shù)據(jù)分配,從而負(fù)載分配靈活,能夠以較小的代價(jià)有效實(shí)現(xiàn)負(fù)載均衡。圖I為現(xiàn)有實(shí)施例一種關(guān)鍵字表網(wǎng)絡(luò)負(fù)載分配不意圖;圖2為本發(fā)明實(shí)施例I一種關(guān)鍵字表網(wǎng)絡(luò)的關(guān)鍵字空間分割示意圖;圖3為本發(fā)明實(shí)施例2—種關(guān)鍵字表網(wǎng)絡(luò)負(fù)載分配意圖;圖4為本發(fā)明實(shí)施例3—種關(guān)鍵字表網(wǎng)絡(luò)負(fù)載分配意圖;圖5為本發(fā)明實(shí)施例4關(guān)鍵字表網(wǎng)絡(luò)中數(shù)據(jù)/任務(wù)操作方法流程示意圖;圖6為本發(fā)明實(shí)施例5關(guān)鍵字表網(wǎng)絡(luò)中數(shù)據(jù)/任務(wù)操作方法流程示意圖;圖7為本發(fā)明實(shí)施例6關(guān)鍵字表網(wǎng)絡(luò)中數(shù)據(jù)/任務(wù)操作方法流程示意圖。具體實(shí)施例方式為了解決現(xiàn)有分布式關(guān)鍵字表網(wǎng)絡(luò)的節(jié)點(diǎn)負(fù)載分配受鄰居節(jié)點(diǎn)影響,無(wú)法做到負(fù)載均衡或負(fù)載均衡代價(jià)大的問(wèn)題,本發(fā)明提出一種分布式關(guān)鍵字表網(wǎng)絡(luò),該分布式關(guān)鍵字表網(wǎng)絡(luò)維護(hù)多個(gè)關(guān)鍵字取值范圍相同的關(guān)鍵字空間,每個(gè)關(guān)鍵字空間又分割為至少一個(gè)關(guān)鍵字空間段,關(guān)鍵字空間段分配給節(jié)點(diǎn)負(fù)責(zé),每個(gè)節(jié)點(diǎn)負(fù)責(zé)至少一個(gè)關(guān)鍵字空間中的至少一段關(guān)鍵字空間段。相應(yīng)的,每個(gè)數(shù)據(jù)/任務(wù)根據(jù)其關(guān)鍵字存儲(chǔ)/部署于至少一個(gè)關(guān)鍵字空間中負(fù)責(zé)對(duì)應(yīng)關(guān)鍵字空間段的節(jié)點(diǎn)上。關(guān)鍵字可以通過(guò)哈希函數(shù)生成,分布式關(guān)鍵字表網(wǎng)絡(luò)的客戶端可以對(duì)分布式關(guān)鍵字表網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)/任務(wù)的操作,如增加、刪除、查詢、修改。需要說(shuō)明的是,可以將所有關(guān)鍵字空間中的部分關(guān)鍵字空間設(shè)置為主關(guān)鍵字空間,其余關(guān)鍵字空間設(shè)置為備關(guān)鍵字空間,這樣,對(duì)數(shù)據(jù)/任務(wù)的部分操作(如增加、刪除、修改操作)或全部操作請(qǐng)求優(yōu)先發(fā)向主關(guān)鍵字空間中負(fù)責(zé)所述數(shù)據(jù)/任務(wù)的節(jié)點(diǎn)(也稱為負(fù)責(zé)節(jié)點(diǎn)),主關(guān)鍵字空間中的負(fù)責(zé)節(jié)點(diǎn)因節(jié)點(diǎn)故障等原因無(wú)法訪問(wèn)才將所述操作請(qǐng)求發(fā)向備關(guān)鍵字空間的負(fù)責(zé)節(jié)點(diǎn);也可以設(shè)置所有關(guān)鍵字空間對(duì)等,對(duì)任意一個(gè)關(guān)鍵字空間均可進(jìn)行數(shù)據(jù)/任務(wù)操作,沒有優(yōu)先順序??蛇x的,分布式關(guān)鍵字表網(wǎng)絡(luò)中,有的節(jié)點(diǎn)只負(fù)責(zé)主關(guān)鍵字空間中的關(guān)鍵字空間段,有的節(jié)點(diǎn)只負(fù)責(zé)備關(guān)鍵字空間中的關(guān)鍵字空間段。需要說(shuō)明的是,分布式關(guān)鍵字表網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)可以只負(fù)責(zé)一個(gè)關(guān)鍵字空間中的一個(gè)或多個(gè)關(guān)鍵字空間段,也可以在每個(gè)關(guān)鍵字空間都負(fù)責(zé)一個(gè)或多個(gè)關(guān)鍵字空間段,還可以在所有關(guān)鍵字空間中的多個(gè)關(guān)鍵字空間中負(fù)責(zé)一個(gè)或多個(gè)關(guān)鍵字空間段??蛇x的,分布式關(guān)鍵字表網(wǎng)絡(luò)的節(jié)點(diǎn)或客戶端向部分或所有關(guān)鍵字空間節(jié)點(diǎn)請(qǐng)求操作同一數(shù)據(jù)/任務(wù)??蛇x的,分布式關(guān)鍵字表網(wǎng)絡(luò)的節(jié)點(diǎn)或客戶端發(fā)起一個(gè)對(duì)數(shù)據(jù)/任務(wù)的操作請(qǐng)求時(shí),該請(qǐng)求被路由到存儲(chǔ)/部署所述數(shù)據(jù)/任務(wù)的一個(gè)關(guān)鍵字空間中所述數(shù)據(jù)/任務(wù)的負(fù)責(zé)節(jié)點(diǎn),并由該負(fù)責(zé)節(jié)點(diǎn)代為向存儲(chǔ)/部署所述數(shù)據(jù)/任務(wù)的其余全部或部分關(guān)鍵字空間發(fā)起對(duì)同一數(shù)據(jù)/任務(wù)的相同操作??蛇x的,分布式關(guān)鍵字表網(wǎng)絡(luò)的節(jié)點(diǎn)或客戶端發(fā)起一個(gè)對(duì)數(shù)據(jù)/任務(wù)的操作請(qǐng)求時(shí),該請(qǐng)求被路由到存儲(chǔ)/部署所述數(shù)據(jù)/任務(wù)的一個(gè)關(guān)鍵字空間中所述數(shù)據(jù)/任務(wù)的負(fù)責(zé)節(jié)點(diǎn),收到請(qǐng)求的負(fù)責(zé)節(jié)點(diǎn)代為發(fā)起對(duì)存儲(chǔ)/部署所述數(shù)據(jù)/任務(wù)的另一空間的同一數(shù)據(jù)/任務(wù)的相同操作,直到被操作的空間數(shù)滿足預(yù)設(shè)值。在分布式關(guān)鍵字表網(wǎng)絡(luò)中,假設(shè)數(shù)據(jù)/任務(wù)存儲(chǔ)/部署k份,則一次對(duì)數(shù)據(jù)/任務(wù)的操作可以操作I至k份,只要一次讀操作的份數(shù)r和一次寫操作(增刪改)的份數(shù)w滿足r+w>k即可。需要說(shuō)明的是,要對(duì)關(guān)鍵字表網(wǎng)絡(luò)中的數(shù)據(jù)/任務(wù)執(zhí)行操作時(shí),關(guān)鍵字表網(wǎng)絡(luò)節(jié)點(diǎn)或關(guān)鍵字表網(wǎng)絡(luò)的客戶端發(fā)起的操作請(qǐng)求必須路由到負(fù)責(zé)所述數(shù)據(jù)/任務(wù)的存儲(chǔ)/部署的節(jié)點(diǎn)。現(xiàn)有分布式關(guān)鍵字表網(wǎng)絡(luò)只需將請(qǐng)求路由到一個(gè)空間的數(shù)據(jù)/任務(wù)的存儲(chǔ)/部署的節(jié)點(diǎn),路由方法有非常多種,但都是根據(jù)路由表進(jìn)行路由;本發(fā)明需要路由到多個(gè)空間,路由到每個(gè)空間的方法可以與現(xiàn)有技術(shù)相同或類似。為說(shuō)明本發(fā)明的可實(shí)現(xiàn)性,下面舉例說(shuō)明一種路由表和路由方式。每個(gè)分布式關(guān)鍵字表網(wǎng)絡(luò)節(jié)點(diǎn)都擁有一個(gè)包含所有關(guān)鍵字段和所有分布式關(guān)鍵字表網(wǎng)絡(luò)節(jié)點(diǎn)信息的路由表,路由表記錄了任何一個(gè)空間的任何關(guān)鍵字段是由哪個(gè)節(jié)點(diǎn)負(fù)責(zé),記錄了每個(gè)節(jié)點(diǎn)的地址。根據(jù)想操作的數(shù)據(jù)或任務(wù)的關(guān)鍵字,查詢路由表,就知道要將操作請(qǐng)求發(fā)送到哪個(gè)地址。由于路由和負(fù)載分配方式不同,節(jié)點(diǎn)的加入和退出分布式關(guān)鍵字表網(wǎng)絡(luò)可以有很多種方式。下面仍然以擁有完全路由表的方式為例說(shuō)明一個(gè)節(jié)點(diǎn)加入分布式關(guān)鍵字表網(wǎng)絡(luò)時(shí),向分布式關(guān)鍵字表網(wǎng)絡(luò)中的任意節(jié)點(diǎn)獲取路由表,分配空間段并復(fù)制其中數(shù)據(jù)后,根據(jù)路由表中節(jié)點(diǎn)地址,向網(wǎng)絡(luò)中的所有節(jié)點(diǎn)通知自身加入和分配到的空間段,讓其他節(jié)點(diǎn)更新路由表。分配空間段可以索要負(fù)載最重的一個(gè)或多個(gè)節(jié)點(diǎn)的部分空間段或部分空間段的一部分,節(jié)點(diǎn)間相互?;睿ㄟ^(guò)?;罟?jié)點(diǎn)間可以互相檢測(cè)對(duì)方是否退出網(wǎng)絡(luò)。當(dāng)一個(gè)節(jié)點(diǎn)檢測(cè)到另一個(gè)節(jié)點(diǎn)退出時(shí),向網(wǎng)絡(luò)中的所有節(jié)點(diǎn)通知,并從網(wǎng)絡(luò)中選擇負(fù)載最輕的一個(gè)或多個(gè)節(jié)點(diǎn)來(lái)負(fù)責(zé)退出節(jié)點(diǎn)的空間段。每個(gè)節(jié)點(diǎn)的容量信息可以包含在路由表中,使每個(gè)節(jié)點(diǎn)知道任何一個(gè)節(jié)點(diǎn)的負(fù)載情況。下面通過(guò)具體實(shí)施例對(duì)本發(fā)明的方案作進(jìn)一步說(shuō)明。實(shí)施例I圖2為本發(fā)明實(shí)施例I一種關(guān)鍵字表網(wǎng)絡(luò)的關(guān)鍵字空間分割不意圖,如圖I所不,本發(fā)明一種分布式關(guān)鍵字表網(wǎng)絡(luò)包含多個(gè)相同的關(guān)鍵字空間。數(shù)據(jù)/任務(wù)在每個(gè)關(guān)鍵字空間至多只存儲(chǔ)/分配一份。一個(gè)關(guān)鍵字空間被分割可以被分割為多段,將空間以段為單位分配給多個(gè)節(jié)點(diǎn)負(fù)責(zé)。一個(gè)關(guān)鍵字空間也可以不分割,完全分配給一個(gè)節(jié)點(diǎn)。實(shí)施例2圖3為本發(fā)明實(shí)施例2—種關(guān)鍵字表網(wǎng)絡(luò)負(fù)載分配示意圖,如圖3所示,該關(guān)鍵字表網(wǎng)絡(luò)有兩個(gè)相同的關(guān)鍵字空間,兩個(gè)關(guān)鍵字空間分別有3個(gè)節(jié)點(diǎn),分別為A1、B1、C1,以及A2、B2、C2,節(jié)點(diǎn)A1、B1、C1,以及A2、B2、C2都分別在兩個(gè)空間分配了一個(gè)關(guān)鍵字空間段。每個(gè)節(jié)點(diǎn)在兩個(gè)空間負(fù)責(zé)多長(zhǎng)的關(guān)鍵字空間段不受其他節(jié)點(diǎn)影響。假設(shè)節(jié)點(diǎn)A1、B1、C1的容量比為367,節(jié)點(diǎn)A2、B2、C2的容量比也為367,要實(shí)現(xiàn)負(fù)載均衡可以讓節(jié)點(diǎn)A1、B1、C1,以及A2、B2、C2在每個(gè)空間負(fù)責(zé)的空間段長(zhǎng)度比也是367,這樣的話,不管這兩個(gè)空間是對(duì)等的空間,還是一個(gè)主空間一個(gè)備份空間,三個(gè)節(jié)點(diǎn)的負(fù)載都是均衡的。實(shí)施例3圖4為本發(fā)明實(shí)施例3—種關(guān)鍵字表網(wǎng)絡(luò)負(fù)載分配示意圖,如圖4所示,該關(guān)鍵字表網(wǎng)絡(luò)有兩個(gè)相同的關(guān)鍵字空間,共有4個(gè)節(jié)點(diǎn)A、B、C、D,節(jié)點(diǎn)A、B分別在空間I分配了一個(gè)關(guān)鍵字空間段,節(jié)點(diǎn)C、D分別在空間2分配了一個(gè)關(guān)鍵字空間段。每個(gè)節(jié)點(diǎn)在負(fù)責(zé)多長(zhǎng)的關(guān)鍵字空間段不受其他節(jié)點(diǎn)影響。兩個(gè)空間的節(jié)點(diǎn)完全不同便于實(shí)現(xiàn)高可靠性的多地域或多數(shù)據(jù)中心數(shù)據(jù)存儲(chǔ)??臻gI的節(jié)點(diǎn)和空間2的節(jié)點(diǎn)不同且分布處于不同的地域或數(shù)據(jù)中心,使每個(gè)數(shù)據(jù)可以存儲(chǔ)在兩個(gè)地域或數(shù)據(jù)中心中,避免了由于區(qū)域故障造成兩份數(shù)據(jù)都丟失的情況。參考圖4,假設(shè)兩個(gè)空間是對(duì)等的,沒有主備之分。每個(gè)節(jié)點(diǎn)負(fù)責(zé)的空間長(zhǎng)度與兩個(gè)空間長(zhǎng)度和之比應(yīng)與其容量與所有節(jié)點(diǎn)容量和之比相當(dāng)。假設(shè)A、B、C、D的容量比為10:6:7:9,要實(shí)現(xiàn)負(fù)載均衡只要它們負(fù)責(zé)的空間長(zhǎng)度比為10679S阿,與節(jié)點(diǎn)負(fù)責(zé)了幾個(gè)空間的空間段無(wú)關(guān),與節(jié)點(diǎn)負(fù)責(zé)哪個(gè)空間的空間段無(wú)關(guān)。參考圖4,假設(shè)兩個(gè)空間中,一個(gè)空間是主空間,另一個(gè)空間是備空間。假設(shè)A、B的容量比106,專門部署來(lái)承擔(dān)主負(fù)載;C、D的容量比為79,專門部署來(lái)承擔(dān)備負(fù)載。只需要A、B在主空間分配均衡,即A、B負(fù)責(zé)的空間長(zhǎng)度比為106,C、D在備空間分配均衡,即C、D負(fù)責(zé)的空間長(zhǎng)度比為79即可實(shí)現(xiàn)A、B的負(fù)載均衡和C、D的負(fù)載均衡。實(shí)施例4本實(shí)施例中,關(guān)鍵字表網(wǎng)絡(luò)節(jié)點(diǎn)或客戶端發(fā)起一個(gè)對(duì)某數(shù)據(jù)/任務(wù)的操作請(qǐng)求(包括增刪查改),該請(qǐng)求被路由到其中一個(gè)空間的該數(shù)據(jù)/任務(wù)的負(fù)責(zé)節(jié)點(diǎn),并由該負(fù)責(zé)節(jié)點(diǎn)代為對(duì)發(fā)起其余全部或部分空間的同一數(shù)據(jù)/任務(wù)的相同操作。圖5為本發(fā)明實(shí)施例4關(guān)鍵字表網(wǎng)絡(luò)中數(shù)據(jù)/任務(wù)操作方法流程示意圖,如圖5所示,對(duì)關(guān)鍵字為13的數(shù)據(jù)/任務(wù)操作請(qǐng)求首先被路由到空間I的負(fù)責(zé)節(jié)點(diǎn),然后由空間I的負(fù)責(zé)節(jié)點(diǎn)分別發(fā)起對(duì)空間2和空間3的同一數(shù)據(jù)/任務(wù)的同一操作請(qǐng)求,請(qǐng)求分別被路由到空間2的負(fù)責(zé)節(jié)點(diǎn)和空間3的負(fù)責(zé)節(jié)點(diǎn),三個(gè)負(fù)責(zé)節(jié)點(diǎn)根據(jù)請(qǐng)求內(nèi)容對(duì)數(shù)據(jù)/任務(wù)進(jìn)行相應(yīng)操作。實(shí)施例5本實(shí)施例中,關(guān)鍵字表網(wǎng)絡(luò)節(jié)點(diǎn)或客戶端發(fā)起一個(gè)對(duì)某數(shù)據(jù)/任務(wù)的操作請(qǐng)求(包括增刪查改),該請(qǐng)求被路由到其中一個(gè)空間的該數(shù)據(jù)/任務(wù)的負(fù)責(zé)節(jié)點(diǎn),收到請(qǐng)求的負(fù)責(zé)節(jié)點(diǎn)代為發(fā)起對(duì)另一空間的同一數(shù)據(jù)/任務(wù)的相同操作,直到被操作的空間數(shù)滿足預(yù)設(shè)值。圖6為本發(fā)明實(shí)施例5關(guān)鍵字表網(wǎng)絡(luò)中數(shù)據(jù)/任務(wù)操作方法流程示意圖,如圖6所示,對(duì)關(guān)鍵字為13的數(shù)據(jù)/任務(wù)操作請(qǐng)求首先被路由到空間I的負(fù)責(zé)節(jié)點(diǎn);然后由空間I的負(fù)責(zé)節(jié)點(diǎn)發(fā)起對(duì)空間2的同一數(shù)據(jù)/任務(wù)的同一操作請(qǐng)求,請(qǐng)求被路由到空間2的負(fù)責(zé)節(jié)點(diǎn);接著由空間2的負(fù)責(zé)節(jié)點(diǎn)發(fā)起對(duì)空間3的同一數(shù)據(jù)/任務(wù)的同一操作請(qǐng)求,請(qǐng)求被路由到空間3的負(fù)責(zé)節(jié)點(diǎn);3個(gè)負(fù)責(zé)節(jié)點(diǎn)根據(jù)請(qǐng)求內(nèi)容對(duì)數(shù)據(jù)/任務(wù)進(jìn)行相應(yīng)操作。實(shí)施例6本實(shí)施例中,關(guān)鍵字表網(wǎng)絡(luò)節(jié)點(diǎn)或客戶端分別對(duì)全部或部分關(guān)鍵字空間發(fā)起對(duì)某數(shù)據(jù)或任務(wù)的相同操作請(qǐng)求(包括增刪查改),操作請(qǐng)求分別被路由到全部或部分空間的該數(shù)據(jù)或任務(wù)的負(fù)責(zé)節(jié)點(diǎn)。圖7為本發(fā)明實(shí)施例6關(guān)鍵字表網(wǎng)絡(luò)中數(shù)據(jù)/任務(wù)操作方法流程示意圖,如圖7所示,對(duì)關(guān)鍵字為13的數(shù)據(jù)/任務(wù)操作請(qǐng)求被路由到3個(gè)空間的負(fù)責(zé)節(jié)點(diǎn),3個(gè)負(fù)責(zé)節(jié)點(diǎn)根據(jù)請(qǐng)求內(nèi)容對(duì)數(shù)據(jù)/任務(wù)進(jìn)行相應(yīng)操作。需要說(shuō)明的是,實(shí)施例中所述方法中的路由,可能不經(jīng)過(guò)中間節(jié)點(diǎn),也可能經(jīng)過(guò)若干中間節(jié)點(diǎn)。由以上技術(shù)方案可以看出,本發(fā)明的分布式關(guān)鍵字表網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)可以靈活分配數(shù)據(jù)/任務(wù),節(jié)點(diǎn)間不互相影響任務(wù)/數(shù)據(jù)分配,負(fù)載分配靈活,容易實(shí)現(xiàn)負(fù)載均衡。同時(shí),本發(fā)明的分布式關(guān)鍵字表網(wǎng)絡(luò)還能夠?qū)崿F(xiàn)主備和對(duì)等兩種數(shù)據(jù)/任務(wù)管理,便于實(shí)現(xiàn)針對(duì)主備兩種形式負(fù)載的節(jié)點(diǎn)配置部署,保證數(shù)據(jù)/任務(wù)的高可靠性的多區(qū)域或多數(shù)據(jù)中心的存儲(chǔ)。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。權(quán)利要求1.一種對(duì)分布式關(guān)鍵字表網(wǎng)絡(luò)進(jìn)行操作的方法,其特征在于,分布式關(guān)鍵字表網(wǎng)絡(luò)維護(hù)多個(gè)關(guān)鍵字取值范圍相同的關(guān)鍵字空間,每個(gè)關(guān)鍵字空間分割為至少一個(gè)關(guān)鍵字空間段,關(guān)鍵字空間段分配給節(jié)點(diǎn)負(fù)責(zé),每個(gè)節(jié)點(diǎn)負(fù)責(zé)至少一個(gè)關(guān)鍵字空間中的至少一段關(guān)鍵字空間段,該方法包括分布式關(guān)鍵字表網(wǎng)絡(luò)的節(jié)點(diǎn)或客戶端發(fā)起對(duì)數(shù)據(jù)/任務(wù)的操作請(qǐng)求時(shí),將所述操作請(qǐng)求路由到存儲(chǔ)/部署所述數(shù)據(jù)/任務(wù)的一個(gè)關(guān)鍵字空間中的負(fù)責(zé)節(jié)點(diǎn),由所述負(fù)責(zé)節(jié)點(diǎn)向存儲(chǔ)/部署所述數(shù)據(jù)/任務(wù)的其余全部或部分關(guān)鍵字空間發(fā)起對(duì)所述數(shù)據(jù)/任務(wù)的相同操作。2.根據(jù)權(quán)利要求I所述的方法,其特征在于,數(shù)據(jù)/任務(wù)在分布式關(guān)鍵字表網(wǎng)絡(luò)中存儲(chǔ)/部署k份,則一次對(duì)所述數(shù)據(jù)/任務(wù)的操作涉及的份數(shù)為I至k份,一次讀操作的份數(shù)r和一次寫操作的份數(shù)w滿足r+w>k。3.一種對(duì)分布式關(guān)鍵字表網(wǎng)絡(luò)進(jìn)行操作的方法,其特征在于,分布式關(guān)鍵字表網(wǎng)絡(luò)維護(hù)多個(gè)關(guān)鍵字取值范圍相同的關(guān)鍵字空間,每個(gè)關(guān)鍵字空間分割為至少一個(gè)關(guān)鍵字空間段,關(guān)鍵字空間段分配給節(jié)點(diǎn)負(fù)責(zé),每個(gè)節(jié)點(diǎn)負(fù)責(zé)至少一個(gè)關(guān)鍵字空間中的至少一段關(guān)鍵字空間段,該方法包括分布式關(guān)鍵字表網(wǎng)絡(luò)的節(jié)點(diǎn)或客戶端發(fā)起對(duì)數(shù)據(jù)/任務(wù)的操作請(qǐng)求時(shí),將所述操作請(qǐng)求路由到存儲(chǔ)/部署所述數(shù)據(jù)/任務(wù)的一個(gè)關(guān)鍵字空間中的負(fù)責(zé)節(jié)點(diǎn),由所述負(fù)責(zé)節(jié)點(diǎn)向存儲(chǔ)/部署所述數(shù)據(jù)/任務(wù)的另一空間發(fā)起對(duì)所述數(shù)據(jù)/任務(wù)的相同操作,直到被操作的空間數(shù)滿足預(yù)設(shè)值。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,數(shù)據(jù)/任務(wù)在分布式關(guān)鍵字表網(wǎng)絡(luò)中存儲(chǔ)/部署k份,則一次對(duì)所述數(shù)據(jù)/任務(wù)的操作涉及的份數(shù)為I至k份,一次讀操作的份數(shù)r和一次寫操作的份數(shù)w滿足r+w>k。5.—種對(duì)分布式關(guān)鍵字表網(wǎng)絡(luò)進(jìn)行操作的方法,其特征在于,分布式關(guān)鍵字表網(wǎng)絡(luò)維護(hù)多個(gè)關(guān)鍵字取值范圍相同的關(guān)鍵字空間,每個(gè)關(guān)鍵字空間分割為至少一個(gè)關(guān)鍵字空間段,關(guān)鍵字空間段分配給節(jié)點(diǎn)負(fù)責(zé),每個(gè)節(jié)點(diǎn)負(fù)責(zé)至少一個(gè)關(guān)鍵字空間中的至少一段關(guān)鍵字空間段,該方法包括分布式關(guān)鍵字表網(wǎng)絡(luò)的節(jié)點(diǎn)或客戶端發(fā)起對(duì)數(shù)據(jù)/任務(wù)的操作請(qǐng)求時(shí),將所述操作請(qǐng)求分別路由到所有存儲(chǔ)/部署所述數(shù)據(jù)/任務(wù)的關(guān)鍵字空間中的負(fù)責(zé)節(jié)點(diǎn)。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,數(shù)據(jù)/任務(wù)在分布式關(guān)鍵字表網(wǎng)絡(luò)中存儲(chǔ)/部署k份,則一次對(duì)所述數(shù)據(jù)/任務(wù)的操作涉及的份數(shù)為I至k份,一次讀操作的份數(shù)r和一次寫操作的份數(shù)w滿足r+w>k。7.一種分布式關(guān)鍵字表網(wǎng)絡(luò),其特征在于,該分布式關(guān)鍵字表網(wǎng)絡(luò)維護(hù)多個(gè)關(guān)鍵字取值范圍相同的關(guān)鍵字空間,每個(gè)關(guān)鍵字空間分割為至少一個(gè)關(guān)鍵字空間段,關(guān)鍵字空間段分配給節(jié)點(diǎn)負(fù)責(zé),每個(gè)節(jié)點(diǎn)負(fù)責(zé)至少一個(gè)關(guān)鍵字空間中的至少一段關(guān)鍵字空間段。8.根據(jù)權(quán)利要求7所述的分布式關(guān)鍵字表網(wǎng)絡(luò),其特征在于,每個(gè)數(shù)據(jù)/任務(wù)根據(jù)其關(guān)鍵字存儲(chǔ)/部署于至少一個(gè)關(guān)鍵字空間中負(fù)責(zé)對(duì)應(yīng)關(guān)鍵字空間段的節(jié)點(diǎn)上。9.根據(jù)權(quán)利要求7所述的分布式關(guān)鍵字表網(wǎng)絡(luò),其特征在于,該分布式關(guān)鍵字表網(wǎng)絡(luò)中的部分關(guān)鍵字空間為主關(guān)鍵字空間,其余關(guān)鍵字空間為備關(guān)鍵字空間,主關(guān)鍵字空間中的負(fù)責(zé)節(jié)點(diǎn)優(yōu)先對(duì)相應(yīng)數(shù)據(jù)/任務(wù)的部分操作或全部操作請(qǐng)求進(jìn)行處理,主關(guān)鍵字空間中的負(fù)責(zé)節(jié)點(diǎn)無(wú)法訪問(wèn)時(shí),由備關(guān)鍵字空間的負(fù)責(zé)節(jié)點(diǎn)對(duì)所述數(shù)據(jù)/任務(wù)的部分操作或全部操作請(qǐng)求進(jìn)行處理,或者,該分布式關(guān)鍵字表網(wǎng)絡(luò)中所有關(guān)鍵字空間對(duì)等,關(guān)鍵字空間進(jìn)行數(shù)據(jù)/任務(wù)操作不受優(yōu)先順序限制。10.根據(jù)權(quán)利要求7所述的分布式關(guān)鍵字表網(wǎng)絡(luò),其特征在于,分布式關(guān)鍵字表網(wǎng)絡(luò)中的節(jié)點(diǎn)只負(fù)責(zé)主關(guān)鍵字空間中的關(guān)鍵字空間段,或者,只負(fù)責(zé)備關(guān)鍵字空間中的關(guān)鍵字空間段。11.根據(jù)權(quán)利要求7所述的分布式關(guān)鍵字表網(wǎng)絡(luò),其特征在于,分布式關(guān)鍵字表網(wǎng)絡(luò)中的節(jié)點(diǎn)負(fù)責(zé)一個(gè)關(guān)鍵字空間中的一個(gè)或多個(gè)關(guān)鍵字空間段,或者,在每個(gè)關(guān)鍵字空間都負(fù)責(zé)一個(gè)或多個(gè)關(guān)鍵字空間段,或者,在所有關(guān)鍵字空間中的多個(gè)關(guān)鍵字空間中負(fù)責(zé)一個(gè)或多個(gè)關(guān)鍵字空間段。全文摘要本發(fā)明公開了一種分布式關(guān)鍵字表網(wǎng)絡(luò),分布式關(guān)鍵字表網(wǎng)絡(luò)維護(hù)多個(gè)關(guān)鍵字取值范圍相同的關(guān)鍵字空間,每個(gè)關(guān)鍵字空間分割為至少一個(gè)關(guān)鍵字空間段,關(guān)鍵字空間段分配給節(jié)點(diǎn)負(fù)責(zé),每個(gè)節(jié)點(diǎn)負(fù)責(zé)至少一個(gè)關(guān)鍵字空間中的至少一段關(guān)鍵字空間段。本發(fā)明還相應(yīng)地公開一種對(duì)分布式關(guān)鍵字表網(wǎng)絡(luò)進(jìn)行操作的方法。通過(guò)本發(fā)明,分布式關(guān)鍵字表網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)可以靈活分配數(shù)據(jù)/任務(wù),節(jié)點(diǎn)間不互相影響任務(wù)/數(shù)據(jù)分配,從而負(fù)載分配靈活,能夠以較小的代價(jià)有效實(shí)現(xiàn)負(fù)載均衡。文檔編號(hào)H04L29/08GK102739707SQ201110086320公開日2012年10月17日申請(qǐng)日期2011年4月7日優(yōu)先權(quán)日2011年4月7日發(fā)明者李漓春申請(qǐng)人:中興通訊股份有限公司