專利名稱:一種基于路徑劃分與多分布目錄的快速數(shù)據(jù)定位方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于路徑劃分與多分布目錄的快速數(shù)據(jù)定位方法,屬于計 算機(jī)應(yīng)用技術(shù)領(lǐng)域。
背景技術(shù):
計算機(jī)對等(P2P)網(wǎng)絡(luò)中每個節(jié)點(diǎn)的地位是相同的,每個節(jié)點(diǎn)既充當(dāng)服務(wù) 器,為其他節(jié)點(diǎn)提供服務(wù),同時也充當(dāng)客戶機(jī),享受其他節(jié)點(diǎn)提供的服務(wù)。
目前,計算機(jī)對等網(wǎng)絡(luò)可分為兩大類非結(jié)構(gòu)對等網(wǎng)絡(luò)和結(jié)構(gòu)化對等網(wǎng)絡(luò)。 非結(jié)構(gòu)對等網(wǎng)絡(luò)包括具有中心服務(wù)器的非結(jié)構(gòu)對等網(wǎng)絡(luò)、純分散的非結(jié)構(gòu)化對 等網(wǎng)絡(luò)和帶超級節(jié)點(diǎn)的混合對等網(wǎng)絡(luò),它們要么存在一個集中式的目錄管理, 要么查詢時采用的是廣播機(jī)制,要么存在著超級節(jié)點(diǎn)管理問題。而在近年出現(xiàn) 的結(jié)構(gòu)化對等網(wǎng)絡(luò)系統(tǒng)中,采用的是分布式哈希表技術(shù),在這些系統(tǒng)中,將數(shù) 據(jù)對象的名字經(jīng)過哈希函數(shù)處理,其結(jié)果是一個全局沖突概率很小的ID標(biāo)識; 系統(tǒng)中的每個節(jié)點(diǎn)都和一定范圍內(nèi)的標(biāo)識有關(guān),并保存該區(qū)間的數(shù)據(jù)信息;當(dāng) 系統(tǒng)按照數(shù)據(jù)名字的ID標(biāo)識進(jìn)行查詢時,相應(yīng)的節(jié)點(diǎn)返回對應(yīng)的信息;每個節(jié) 點(diǎn)擁有M個鄰居,每一次查詢路由都會在M內(nèi)完成,N為系統(tǒng)中 的節(jié)點(diǎn)數(shù)。由于數(shù)據(jù)分布存放的地點(diǎn)與該數(shù)據(jù)名字的ID標(biāo)識關(guān)聯(lián),其數(shù)據(jù)定位 就較容易, 一般適合于數(shù)據(jù)分布存放的大型對等網(wǎng)絡(luò)應(yīng)用系統(tǒng)。
然而,目前基于對等網(wǎng)絡(luò)的許多應(yīng)用系統(tǒng),如本地資源共享系統(tǒng)、瀏覽器 協(xié)作緩存系統(tǒng)等,其數(shù)據(jù)往往需要存放在本地節(jié)點(diǎn)中。在這種情況下,若采用 非結(jié)構(gòu)化方式,則會存在單點(diǎn)失效或洪泛搜索效率低的問題;若采用結(jié)構(gòu)化方 式,由于用戶數(shù)據(jù)只能存放在本地節(jié)點(diǎn),即不能分布存放的應(yīng)用需求,又與結(jié) 構(gòu)化對等網(wǎng)絡(luò)的數(shù)據(jù)分布存放要求相矛盾。為了擴(kuò)展結(jié)構(gòu)化對等網(wǎng)絡(luò)對這類情 況的處理能力,近年在基于結(jié)構(gòu)化對等網(wǎng)絡(luò)的Squirrel協(xié)作緩存應(yīng)用系統(tǒng)中, 引入了宿主節(jié)點(diǎn)的單分布目錄機(jī)制,通過使數(shù)據(jù)對象路徑的索引記錄存放地點(diǎn) 與該數(shù)據(jù)的ID標(biāo)識密切關(guān)聯(lián),將數(shù)據(jù)對象路徑的索引記錄存儲在其宿主節(jié)點(diǎn)的 目錄中。這樣,其緩存定位機(jī)制就變?yōu)椋?dāng)一個節(jié)點(diǎn)發(fā)出查找某個數(shù)據(jù)對象時,先對其進(jìn)行哈希,取其值作為這個數(shù)據(jù)對象路徑的唯一ID標(biāo)識,然后在結(jié)構(gòu)化 對等網(wǎng)絡(luò)的相應(yīng)路由表中,査找這個ID,經(jīng)過若干跳后,找到該數(shù)據(jù)對象索引
所在的宿主節(jié)點(diǎn),再查找其上的相應(yīng)目錄,得到該數(shù)據(jù)對象存儲的節(jié)點(diǎn)地址。 雖然這種單分布目錄方法擴(kuò)展了結(jié)構(gòu)化對等網(wǎng)絡(luò)對這類情況的轉(zhuǎn)換處理,
但是把數(shù)據(jù)對象路徑的哈希值作為其鍵值ID,查找這個ID時,通常需要經(jīng)過若 干跳,才能找到宿主節(jié)點(diǎn),其數(shù)據(jù)定位的有效性有待進(jìn)一步提高,尤其是當(dāng)匹 配的宿主節(jié)點(diǎn)已退出系統(tǒng)時,還會引發(fā)數(shù)據(jù)定位時的多跳現(xiàn)象,造成系統(tǒng)的不 穩(wěn)定和不健壯。
發(fā)明內(nèi)容
本發(fā)明的目的是為了解決目前基于結(jié)構(gòu)化對等網(wǎng)絡(luò)的Squirrel系統(tǒng)存在的 數(shù)據(jù)定位的效率低以及有效性、穩(wěn)定性和健壯性差的問題,提出一種基于路徑 劃分與多分布目錄的快速數(shù)據(jù)定位方法。
本發(fā)明針對數(shù)據(jù)只能存放在本地節(jié)點(diǎn)的結(jié)構(gòu)化對等網(wǎng)絡(luò)應(yīng)用系統(tǒng),引入了 數(shù)據(jù)路徑的劃分、數(shù)據(jù)路徑相似度及多分布式目錄等機(jī)制。
本發(fā)明的一種基于路徑劃分與多分布目錄的快速數(shù)據(jù)定位方法的整體框架 設(shè)計流程如圖1所示,具體實現(xiàn)步驟如下
步驟一、設(shè)計路徑劃分的方法
首先,給出相關(guān)概念的定義。
假設(shè)基于本地存放的結(jié)構(gòu)化對等網(wǎng)絡(luò)應(yīng)用系統(tǒng)中的任意兩個數(shù)據(jù)路徑 PATH1和PATH2,其中,PATH1= sl/pl/p2…/pi/…/pn/FILEl;
PATH2二s2/ql/q2…/qj/…/qm/FILE2。 這里,sl和s2均是對等節(jié)點(diǎn)或服務(wù)器的唯一標(biāo)識;
Pi和qj均是目錄信息,i是l到n的正整數(shù),j是l到m的正整
數(shù);
FILE1和FILE2均是文件標(biāo)識符。 基于上述假設(shè)-定義l:數(shù)據(jù)路徑特征
所有這些sl、 s2、 pi、 qj、 FILE1、 FILE2符號,均是數(shù)據(jù)路徑特征。其中 i是l到n的正整數(shù),j是l到m的正整數(shù)。 定義2:數(shù)據(jù)路徑相似度任意兩個數(shù)據(jù)路徑PATH1和PATH2的相似度是從數(shù)據(jù)路徑左端第一個數(shù)據(jù) 路徑特征起,連續(xù)相同的數(shù)據(jù)路徑特征的個數(shù)。 其次,基于上述定義設(shè)計數(shù)據(jù)路徑劃分方法。
考慮到結(jié)構(gòu)化對等網(wǎng)絡(luò)自身的數(shù)據(jù)定位特點(diǎn),為了把具有一定相似度的數(shù) 據(jù)路徑目錄存放在鄰近位置,本發(fā)明把數(shù)據(jù)路徑的鍵值ID劃分成r個部分,這 里r是一個正整數(shù),它可綜合應(yīng)用系統(tǒng)節(jié)點(diǎn)的規(guī)模和數(shù)據(jù)路徑特征等來設(shè)置。
具體數(shù)據(jù)路徑的劃分方法為
第(l)步首先確定Keyi(i4,2,……,r)的位數(shù),用bit (Keyi)來表示。然 后按照數(shù)據(jù)路徑特征順序計算第一個數(shù)據(jù)路徑特征的哈希值,并從高位到低位 的順序取bit(keyl)位作為keyl的值,再計算第二個數(shù)據(jù)路徑特征的哈希值取 bit(key2)位作為key2的值,以此類推,最后,哈希路徑的其余部分,并取 bit(keyr)位作為keyr的值。
第(2)步如果數(shù)據(jù)路徑特征的數(shù)目小于r,在按第(l)步處理完所有數(shù)據(jù)路 徑特征后,還須哈希整個路徑,并取其高位,記為key補(bǔ),補(bǔ)齊ID的空余部分。 這樣其數(shù)據(jù)路徑鍵值ID二 keylkey2…keymkey補(bǔ),這里,m〈r。
第(3)步經(jīng)過第(l)步的計算,得到keyl, key2 ,…,keyr,則一個數(shù)據(jù) 路徑鍵值ID就是keyl, key2,…,keyr的順序連接keylkey2…keyr;或者經(jīng) 過第(2)步的計算,得到keyl, key2 ,…,keym, key補(bǔ),則一個數(shù)據(jù)路徑鍵值 ID就是keyl, key2,…,keym, key補(bǔ)的順序連接keylkey2…keymkey補(bǔ)。其 中,keyl , key2,…,keyr , keym' key補(bǔ)的位數(shù)分別是bit (keyl), bit(key2),…,bit (keyr), bit(keyra), bit (key補(bǔ))。
通過數(shù)據(jù)路徑的劃分方法,可使數(shù)據(jù)路徑索引能夠存放在結(jié)構(gòu)化對等網(wǎng)絡(luò) 系統(tǒng)中的鄰近位置[Keyl路徑宿主節(jié)點(diǎn),HOME路徑宿主節(jié)點(diǎn)]區(qū)間上,為基于路 徑劃分的多分布目錄建立做好準(zhǔn)備。
步驟二、建立基于路徑劃分的多分布式目錄
在步驟一的數(shù)據(jù)路徑劃分和計算路徑相似度的基礎(chǔ)上,建立基于數(shù)據(jù)路徑 劃分的多分布式目錄表。
首先,引入HOME路徑宿主節(jié)點(diǎn)和keyi路徑宿主節(jié)點(diǎn)的語義。 [定義3] HOME路徑宿主節(jié)點(diǎn)
把存儲路徑的鍵值ID: Keylkey2…keyr-lkeyr的節(jié)點(diǎn)記作其HOME路徑宿
主節(jié)點(diǎn)。
keyl路徑宿主節(jié)點(diǎn)把存儲keyl路徑的節(jié)點(diǎn)記作keyl路徑宿主節(jié)點(diǎn),它作為所有與其相似度 大于等于1的路徑查詢起始位置。keyl路徑索引存儲在keyl所有的路徑宿主 結(jié)點(diǎn)和相應(yīng)的HOME路徑宿主結(jié)點(diǎn)。
keyr-1路徑宿主節(jié)點(diǎn)
把存儲Keylkey2…keyr-1路徑信息的節(jié)點(diǎn)記作keyr-1路徑宿主節(jié)點(diǎn),這里 r是指數(shù)據(jù)路徑鍵值ID劃分的數(shù)目。
其次,結(jié)構(gòu)化對等網(wǎng)絡(luò)應(yīng)用系統(tǒng)的每個節(jié)點(diǎn)包括以下功能
(1) 每個節(jié)點(diǎn)維護(hù)本地的存儲對象;
(2) 每個節(jié)點(diǎn)主要維護(hù)三個表 一個路徑宿主索引表、 一個宿主索引表和
一個本地路徑宿主節(jié)點(diǎn)表。其中,在路徑宿主索引表中,每一行包括一個數(shù)據(jù)
路徑、數(shù)據(jù)對象的最后訪問時間和一個含有多個相似路徑的宿主節(jié)點(diǎn)表等;宿 主索引表也包含上述表項,當(dāng)此節(jié)點(diǎn)恰好就是數(shù)據(jù)路徑的HOME路徑宿主節(jié)點(diǎn)時, 該節(jié)點(diǎn)的宿主索引表記錄此路徑索引關(guān)系;當(dāng)此節(jié)點(diǎn)不是數(shù)據(jù)路徑的HOME路徑 宿主節(jié)點(diǎn)時,該節(jié)點(diǎn)的宿主索引表不作記錄。本地路徑宿主節(jié)點(diǎn)表存儲和更新 與本節(jié)點(diǎn)最近頻繁訪問的相似路徑宿主節(jié)點(diǎn)信息。
最后,設(shè)計基于數(shù)據(jù)路徑劃分的多分布式目錄表的建立過程,有以下三種 情況
情況l:網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量沒有變化
第(l)步用戶對本地共享資源進(jìn)行創(chuàng)建或更新;
第(2)步更新節(jié)點(diǎn)發(fā)布發(fā)布相應(yīng)的路徑索引到相應(yīng)的路徑宿主節(jié)點(diǎn)和HOME
宿主節(jié)點(diǎn)上。
第(3)步當(dāng)一個節(jié)點(diǎn)獲得數(shù)據(jù)對象后,它向查詢到的路徑宿主節(jié)點(diǎn)與HOME 宿主節(jié)點(diǎn)發(fā)布信息,告知這些節(jié)點(diǎn)其有此對象,路徑宿主節(jié)點(diǎn)及HOME宿主節(jié)點(diǎn) 相應(yīng)地更新它們的路徑宿主索引表、宿主索引表和本地路徑宿主節(jié)點(diǎn)表。
第(4)步每個節(jié)點(diǎn)根據(jù)自身最近訪問的對象,計算其路徑的相似度,并在 其路徑宿主索引表中記錄最近訪問頻繁的多個路徑相似的宿主節(jié)點(diǎn)。
第(5)步在經(jīng)過一段時間后,路徑宿主節(jié)點(diǎn)之間以及宿主節(jié)點(diǎn)上的索引信
息可能不同步,這不會影響系統(tǒng)的査詢性能,因為數(shù)據(jù)對象的所有路徑宿主節(jié) 點(diǎn)上有整個的索引信息,節(jié)點(diǎn)只要依次査找到各個路徑宿主節(jié)點(diǎn)就能獲知索引
信息。為同步信息,Keyi(i=l,2,……,r)路徑宿主結(jié)點(diǎn)在經(jīng)過一段時間后,主 動與其它路徑宿主節(jié)點(diǎn)和宿主節(jié)點(diǎn)聯(lián)系并同步它們之間相應(yīng)的索引信息。
情況2:網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量增加當(dāng)一個新節(jié)點(diǎn)加入網(wǎng)絡(luò)時,它將自動成為一些路徑的宿主節(jié)點(diǎn),但此時節(jié) 點(diǎn)上還沒有相應(yīng)的路徑索引信息,如果此時有到這個結(jié)點(diǎn)的查詢信息,將可能 增加?xùn)嗽兲鴶?shù),同時,對已經(jīng)緩存了此路徑的宿主節(jié)點(diǎn)的節(jié)點(diǎn),并不知道路徑 宿主節(jié)點(diǎn)已經(jīng)改變。為了克服這些問題,當(dāng)一個節(jié)點(diǎn)加入網(wǎng)絡(luò)時,首先做個標(biāo) 記,指示相應(yīng)對象的索引信息在其后繼節(jié)點(diǎn)上,這樣經(jīng)過這個加入節(jié)點(diǎn)的信息 就可以轉(zhuǎn)發(fā)到其后繼,直至所有的索引信息已經(jīng)復(fù)制到此節(jié)點(diǎn)后,取消這個標(biāo) 記。
情況3:網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量減少
當(dāng)一個節(jié)點(diǎn)失效或退出前,此節(jié)點(diǎn)復(fù)制其路徑索引信息到其后繼,在這個 節(jié)點(diǎn)失效后,只需重新査找到新的路徑宿主節(jié)點(diǎn)即可。如果其后繼同時失效, 須重新建立這些索引信息。此方法可提高系統(tǒng)的健壯性。
步驟三、設(shè)計數(shù)據(jù)快速定位的方法
經(jīng)過步驟一和步驟二,在完成路徑劃分并建立了多分布目錄的基礎(chǔ)上,提 出一種快速數(shù)據(jù)定位的方法。
首先,給出相關(guān)概念的定義。 [定義6]本地代理
每個節(jié)點(diǎn)由一個本地代理來操作本地的共享存儲資源。 [定義7]本地路徑服務(wù)
本地路徑服務(wù)通過底層對等網(wǎng)絡(luò)平臺為系統(tǒng)提供查詢請求,以及返回查詢
的結(jié)果到本地代理。同時根據(jù)路徑服務(wù)返回的路徑宿主節(jié)點(diǎn)和HOME宿主節(jié)點(diǎn)信
息,發(fā)布相應(yīng)數(shù)據(jù)對象的索引信息到相應(yīng)的節(jié)點(diǎn)。
其次,設(shè)計基于路徑劃分與多分布目錄的快速數(shù)據(jù)定位方法。
(l)本地資源共享系統(tǒng)的數(shù)據(jù)快速定位方法,步驟如下
① 用戶發(fā)出 一個數(shù)據(jù)查詢請求;
② 請求送到本地代理,本地代理分析該請求,并查詢本地是否存儲有請求 對象。如有則轉(zhuǎn)到步驟⑧;
③ 如果本地沒有請求對象,本地代理轉(zhuǎn)發(fā)請求到本地路徑服務(wù);
④ 本地路徑服務(wù)査看路徑宿主節(jié)點(diǎn)表,檢查是否有與請求相似的路徑,如 果有,則直接轉(zhuǎn)到其所對應(yīng)的路徑宿主節(jié)點(diǎn);否則發(fā)送查詢到下層的結(jié)構(gòu)化對 等網(wǎng)絡(luò)模塊,查詢keyl路徑宿主節(jié)點(diǎn);
⑤ 如果找到相應(yīng)的keyl路徑宿主節(jié)點(diǎn),查詢其路徑宿主索引表和宿主索引表,看是否存在與請求相應(yīng)的索引,如果沒有找到,則繼續(xù)查詢下一個路徑宿 主節(jié)點(diǎn);如果找到,路徑宿主節(jié)點(diǎn)把査詢到的索引信息返回到發(fā)起查詢請求節(jié) 點(diǎn)的本地路徑服務(wù);如果返回結(jié)果中包含有請求的信息,則該路徑服務(wù)對其路 徑宿主節(jié)點(diǎn)表發(fā)起更新操作。
⑥ 轉(zhuǎn)發(fā)該返回信息到本地代理;
⑦ 如果返回是Nu11,本地代理轉(zhuǎn)到步驟⑧,否則根據(jù)返回結(jié)果從相應(yīng)節(jié)點(diǎn) 獲得對象,然后在本地存儲此對象的一份拷貝,并發(fā)布相應(yīng)的索引信息到相應(yīng) 的路徑宿主節(jié)點(diǎn)和HOME路徑宿主節(jié)點(diǎn);
⑧ 本次操作結(jié)束。
(2)結(jié)構(gòu)化瀏覽器緩存系統(tǒng)的數(shù)據(jù)快速定位方法,步驟如下
① 用戶瀏覽器發(fā)出一個URL請求后,送到本地代理,本地代理分析該請求, 如果該請求是不可緩存的,則直接轉(zhuǎn)發(fā)到源服務(wù)器;
② 本地代理查詢本地緩存中是否有請求的對象。如果有則轉(zhuǎn)到步驟⑨;
③ 如果本地緩存中沒有請求的對象,本地代理轉(zhuǎn)發(fā)請求到URL路徑服務(wù);
④ URL路徑服務(wù)查看路徑宿主節(jié)點(diǎn)表中是否有與請求URL相似的URL路徑; 如果有,則直接轉(zhuǎn)到此其所對應(yīng)的路徑宿主節(jié)點(diǎn);如果沒有,則URL路徑服務(wù) 發(fā)送查詢到下層對等網(wǎng)絡(luò)模塊,査詢URL的keyl路徑宿主節(jié)點(diǎn);
(D通過査找找到相應(yīng)的路徑宿主節(jié)點(diǎn);路徑宿主節(jié)點(diǎn)或宿主節(jié)點(diǎn)查詢其路 徑宿主索引表和宿主索引表,看是否存在請求URL相應(yīng)的索引,如果此時是路 徑宿主節(jié)點(diǎn)且沒有找到請求URL的索引,則通過下層對等網(wǎng)絡(luò)模塊,繼續(xù)査詢 下一個路徑宿主節(jié)點(diǎn)或宿主節(jié)點(diǎn);
⑥ 路徑宿主節(jié)點(diǎn)或宿主節(jié)點(diǎn)把査詢到的索引信息返回到發(fā)起査詢請求的節(jié) 點(diǎn)的URL路徑服務(wù);此時如果返回的結(jié)果包含有請求URL的路徑宿主節(jié)點(diǎn),則 URL路徑服務(wù)對路徑宿主節(jié)點(diǎn)表進(jìn)行更新。
⑦ 轉(zhuǎn)發(fā)這個返回信息到本地代理;
⑧ 如果返回的是Nu11,本地代理通過源服務(wù)器上獲取Web對象,否則根據(jù) 返回的結(jié)果從相應(yīng)結(jié)點(diǎn)獲得Web對象,然后本地緩存中存儲此對象的一份拷貝, 并發(fā)布相應(yīng)的索引信息到相應(yīng)的路徑宿主節(jié)點(diǎn)和宿主節(jié)點(diǎn)。
⑨ 發(fā)送Web對象到瀏覽器。
有益效果
①本發(fā)明的快速數(shù)據(jù)定位方法,由于使用了基于路徑劃分的數(shù)據(jù)定位機(jī)制,減少了相似路徑的查詢跳數(shù),比采用洪泛搜索和基于用戶興趣聚類的搜索效率
均有極大的提高,比Squirrel的單目錄機(jī)制(即Hash (URL)方式)有更高的數(shù) 據(jù)定位(查詢)性能。
② 由于keyl路徑宿主節(jié)點(diǎn)作為所有與其相似度大于等于1的路徑起始位 置,其相似路徑關(guān)系存放在其鄰近的位置區(qū)域,即使其中某節(jié)點(diǎn)退出或失效時, 系統(tǒng)的健壯性和有效性仍然會保持。
③ 在查詢過程中,如果節(jié)點(diǎn)的路徑宿主節(jié)點(diǎn)表中存有請求路徑的宿主節(jié)點(diǎn) 信息,會直接轉(zhuǎn)發(fā)到此路徑宿主節(jié)點(diǎn)開始查詢,查詢不再經(jīng)過中間節(jié)點(diǎn),可進(jìn) 一步減少查詢跳數(shù),提高數(shù)據(jù)定位的效率。
④ 對結(jié)構(gòu)化瀏覽器緩存應(yīng)用系統(tǒng),隨著共享緩存大小的增長,命中率也隨 之增長;當(dāng)節(jié)點(diǎn)緩存大小在100M緩存大小時,系統(tǒng)命中率可接近于無限緩存的 代理模型。
本發(fā)明可廣泛應(yīng)用于數(shù)據(jù)存放在本地的結(jié)構(gòu)化對等網(wǎng)絡(luò)應(yīng)用系統(tǒng)中,以數(shù) 據(jù)對象路徑的ID標(biāo)識作為輸入,可在其[Keyl路徑宿主節(jié)點(diǎn),HOME路徑宿主 節(jié)點(diǎn)]區(qū)間的相似節(jié)點(diǎn)內(nèi),快速穩(wěn)定地定位出包含該數(shù)據(jù)位置的分布式目錄所 在的節(jié)點(diǎn)位置,從而在數(shù)據(jù)只能存放在本地的對等網(wǎng)絡(luò)應(yīng)用系統(tǒng)中,做到高效 的數(shù)據(jù)定位。
圖1為本發(fā)明的整體框架設(shè)計流程圖2為本發(fā)明實施例中的數(shù)據(jù)定位方法舉例說明圖。
具體實施例方式
根據(jù)上述技術(shù)方案,下面結(jié)合附圖和實施例對本發(fā)明進(jìn)行詳細(xì)說明。 步驟一、設(shè)計路徑劃分的方法 以北京理工大學(xué)校園網(wǎng)的兩條鏈接路徑為例 PATHl=www. bit. edu. cn/news/filel PATH2二www. bit. edu. cn/tongzhi/file2
根據(jù)本發(fā)明中的數(shù)據(jù)路徑相似度定義,PATH1和PATH2路徑相似度為1。 下面針對PATHl=ww. bit. edu.cn/news/filel路經(jīng),詳細(xì)描述本發(fā)明路徑 劃分的方法。
當(dāng)r二l時,可具體描述如下一個32位的路《5鍵"f直ID為(hash(麗.bit. edu. cn/news/f ilel)&ffffffff) 當(dāng)1^2時,可具體描述如下
若一個32位的路徑鍵值ID劃分成2部分,其大小分別是16和16;
貝UID 為(hash(麗.bit. edu. cn)&ffff0000) (hash(news/filel)&ffff0000)。這里,
(hash(www. bit. edu. cn)&ffff0000)記為keyl。 當(dāng)r二3時,可具體描述如下
若一個32位的路徑鍵值ID劃分成3部分,其大小分別是16, 8, 8;
則ID為(hash(麗.bit. edu. cn)&ffff0000) (hash(news)&ff000000) (hash(filel)&ff000000)。 這里,我們把(hash(麗.bit. edu. cn)&ffff0000) 記為keyl , (hash (www, bit. edu. cn)&ffff0000) (hash (news)&ff000000)記為key2,依此類 推。顯然,與其具有大于等于1相似度的路徑索引信息存儲在 [(hash(www. bit. edu. cn)&ffff0000) , (hash (www. bit. edu. cn)&fff fffff)] 區(qū) 間。
當(dāng)r4時,可具體描述如下
若一個32位的路徑鍵值ID劃分成4部分,其大小分別是16, 8, 4, 4;
貝U ID 為 (hash(麗.bit. edu. cn)&ffff0000) (hash(news)&ff000000) (hash(filel)&f0000000) (hash(雨.bit. edu. cn/news/f ilei) &f0000000)。
這里,key補(bǔ)=(hash (www. bit. edu. cn/news/filei)&f0000000)。 步驟二、建立基于路徑劃分的多分布式目錄
在基于本地存儲的結(jié)構(gòu)化對等網(wǎng)絡(luò)應(yīng)用系統(tǒng)中,系統(tǒng)中的所有節(jié)點(diǎn)的所有
索引表集合組成系統(tǒng)完整的分布式索引表。
其中,每個節(jié)點(diǎn)Nodei需要維護(hù)一個路徑宿主索引表listl、 一個宿主索引 表list2和一個本地路徑宿主節(jié)點(diǎn)表list3。
在路徑宿主索引表listl中,每一行包括一個具體路徑PATHj、數(shù)據(jù)對象的 最后訪問時間tj和多個路徑相似的宿主節(jié)點(diǎn)表等;
宿主索引表list2,包含了 listl的表項,當(dāng)此節(jié)點(diǎn)恰好就是數(shù)據(jù)路徑的 HOME路徑宿主節(jié)點(diǎn)時,該節(jié)點(diǎn)的宿主索引表記錄此路徑索引關(guān)系;當(dāng)此節(jié)點(diǎn)不 是數(shù)據(jù)路徑的HOME路徑宿主節(jié)點(diǎn)時,該節(jié)點(diǎn)的宿主索引表不作記錄。
本地路徑宿主節(jié)點(diǎn)表list3,主要維護(hù)與本節(jié)點(diǎn)最近頻繁訪問的相似路徑宿主節(jié)點(diǎn)信息。
對每一數(shù)據(jù)路徑,在其[Keyl路徑宿主節(jié)點(diǎn),HOME路徑宿主節(jié)點(diǎn)]區(qū)間的相 似鄰近節(jié)點(diǎn)上,存在著多個它的分布式索引目錄的信息,如Keyl路徑宿主節(jié)點(diǎn)、 Key2路徑宿主節(jié)點(diǎn)等,并實時維護(hù)與更新。
基于數(shù)據(jù)路徑劃分的多分布式目錄表的建立過程,有以下三種情況 情況l:網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量沒有變化
第(1)步用戶在節(jié)點(diǎn)A對本地共享資源進(jìn)行創(chuàng)建或更新;
第(2)步更新節(jié)點(diǎn)A發(fā)布相應(yīng)的路徑索引到相應(yīng)的路徑宿主節(jié)點(diǎn)和HOME
宿主節(jié)點(diǎn)上。
第(3)步當(dāng)一個節(jié)點(diǎn)B獲得數(shù)據(jù)對象后,它向査詢到的路徑宿主節(jié)點(diǎn)與H0ME 宿主節(jié)點(diǎn)發(fā)布信息,告知這些節(jié)點(diǎn)其有此對象,路徑宿主節(jié)點(diǎn)及HOME宿主節(jié)點(diǎn) 相應(yīng)地更新它們的路徑宿主索引表、宿主索引表和本地路徑宿主節(jié)點(diǎn)表。
第(4)步每個節(jié)點(diǎn)根據(jù)自身最近訪問的對象,計算其路徑的相似度,并在 其路徑宿主索引表中記錄最近訪問頻繁的多個路徑相似的宿主節(jié)點(diǎn)。
第(5)步在經(jīng)過一段時間后,路徑宿主節(jié)點(diǎn)之間以及宿主節(jié)點(diǎn)上的索引信
息可能不同步,這不會影響系統(tǒng)的査詢性能,因為數(shù)據(jù)對象的所有路徑宿主節(jié) 點(diǎn)上有整個的索引信息,節(jié)點(diǎn)只要依次査找到各個路徑宿主節(jié)點(diǎn)就能獲知索引
信息。為同步信息,Keyi(i:1,2,……,r)路徑宿主結(jié)點(diǎn)在經(jīng)過一段時間后,主 動與其它路徑宿主節(jié)點(diǎn)和宿主節(jié)點(diǎn)聯(lián)系并同步它們之間相應(yīng)的索引信息。
情況2:網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量增加
當(dāng)一個新節(jié)點(diǎn)C加入網(wǎng)絡(luò)時,首先做個標(biāo)記,指示相應(yīng)對象的索引信息在 其后繼節(jié)點(diǎn)D上,這樣經(jīng)過這個加入節(jié)點(diǎn)C的信息就可以轉(zhuǎn)發(fā)到其后繼D,直至 所有的索引信息已經(jīng)復(fù)制到此C節(jié)點(diǎn)后,取消這個標(biāo)記。
情況3:網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量減少
當(dāng)一個節(jié)點(diǎn)E失效或退出前,此節(jié)點(diǎn)將復(fù)制其路徑索引信息到其后繼F,在 這個E節(jié)點(diǎn)失效后,只需重新查找到新的路徑宿主節(jié)點(diǎn)即可。如果其后繼F同 時失效,須重新建立這些索引信息。
步驟三、快速數(shù)據(jù)定位的方法(l)本地資源共享系統(tǒng)的數(shù)據(jù)快速定位方法,步驟如下
① 用戶節(jié)點(diǎn)n (如圖2)發(fā)出一個數(shù)據(jù)查詢請求;
② 請求送到本地代理,本地代理分析該請求,并查詢本地是否存儲有請求 對象。如對象在本地命中(如圖2中a),則不需要查詢,轉(zhuǎn)到步驟⑧;
③ 如果本地沒有請求對象,本地代理轉(zhuǎn)發(fā)請求到本地路徑服務(wù);
④ 本地路徑服務(wù)査看路徑宿主節(jié)點(diǎn)表,檢査是否有與請求相似的路徑,如 果有,則直接轉(zhuǎn)到其所對應(yīng)的路徑宿主節(jié)點(diǎn),這個路徑宿主節(jié)點(diǎn)檢查其
索引表,如果存在索引,則返回一個代理節(jié)點(diǎn)(如圖2中c-cl),否則轉(zhuǎn) ⑤繼續(xù)查詢下一個路徑宿主節(jié)點(diǎn)直到找到宿主節(jié)點(diǎn)(如圖2中,c-c2-c3)。 如果沒有與請求相似的路徑,則路徑服務(wù)發(fā)送査詢到下層對等網(wǎng)絡(luò)模塊, 查詢keyl路徑宿主節(jié)點(diǎn);
⑤ 此時根據(jù)路徑計算對象的Keyl ID并發(fā)送給下層Chord去査詢對象的Keyl 宿主節(jié)點(diǎn),通過查詢,Chord將找到這個對象的Keyl宿主節(jié)點(diǎn),然后Keyl 宿主節(jié)點(diǎn)檢查其路徑索引表和宿主索引表內(nèi)是否有被請求路徑的索引, 如果索引存在,則這個路徑宿主節(jié)點(diǎn)返回一個請求對象所在的節(jié)點(diǎn)(我 們稱這個節(jié)點(diǎn)為相應(yīng)路徑對象的代理節(jié)點(diǎn))的地址到源節(jié)點(diǎn)n (如圖2中 b-bl)。如果索引不存在,計算Key2 ID并發(fā)送到Keyl宿主節(jié)點(diǎn),Chord 從Keyl宿主節(jié)點(diǎn)開始繼續(xù)査詢,同樣通過查詢,將找到Key2宿主節(jié)點(diǎn), Key2宿主節(jié)點(diǎn)同樣檢查其上的索引表信息,如果有相應(yīng)的索引信息,則 返回一個代理節(jié)點(diǎn)信息到源節(jié)點(diǎn),否則繼續(xù)査詢下一個路徑宿主節(jié)點(diǎn), 依次類推直到某個路徑宿主節(jié)點(diǎn)上有被請求路徑的索引信息,或找到被 請求路徑的宿主節(jié)點(diǎn)(如圖2中b-b2-b3)。如果路徑的宿主節(jié)點(diǎn)的索引 表中也沒有被請求對象的索引,則請求發(fā)送到源服務(wù)器(如圖2中al)。 在這個查詢過程中,每一個路徑宿主節(jié)點(diǎn)都將返回其本身地址信息到源 節(jié)點(diǎn)n。
如果找到,路徑宿主節(jié)點(diǎn)把査詢到的索引信息返回到發(fā)起查詢請求節(jié)點(diǎn) 的本地路徑服務(wù);如果返回結(jié)果中包含有請求的信息,則該路徑服務(wù)對
其路徑宿主節(jié)點(diǎn)表發(fā)起更新操作。
⑥ 轉(zhuǎn)發(fā)該返回信息到本地代理;
⑦ 如果返回是Nu11,本地代理轉(zhuǎn)到步驟⑧,否則根據(jù)返回結(jié)果從相應(yīng)節(jié)點(diǎn) 獲得對象,然后在本地存儲此對象的一份拷貝,并發(fā)布相應(yīng)的索引信息 到相應(yīng)的路徑宿主節(jié)點(diǎn)和HOME路徑宿主節(jié)點(diǎn);
⑧ 本次操作結(jié)束。(2)結(jié)構(gòu)化瀏覽器緩存系統(tǒng)的數(shù)據(jù)快速定位方法,步驟如下
① 當(dāng)一個節(jié)點(diǎn)n的用戶瀏覽器發(fā)出一個URL請求時,這個節(jié)點(diǎn)首先檢査該
對象是否需要通過下層路由機(jī)制進(jìn)行查詢獲得(如果對象在本地命中(如
圖2中a)或者對象是不可緩存的(如圖2中al),則不需要査詢,否則 需要查詢),如果該請求是不可緩存的,則直接轉(zhuǎn)發(fā)到源服務(wù)器;
② 本地代理查詢本地緩存中是否有請求的對象。如果有則轉(zhuǎn)到步驟⑨;
③ 如果本地緩存中沒有請求的對象,本地代理轉(zhuǎn)發(fā)請求到URL路徑服務(wù);
④ URL路徑服務(wù)查看路徑宿主節(jié)點(diǎn)表中是否有與請求URL相似的URL路徑;
如果有,則直接轉(zhuǎn)到此其所對應(yīng)的路徑宿主節(jié)點(diǎn),這個路徑宿主節(jié)點(diǎn)檢 查其索引表,如果存在索引,則返回一個代理節(jié)點(diǎn)(如圖2中c-cl),否
則轉(zhuǎn)⑤繼續(xù)査詢下一個路徑宿主節(jié)點(diǎn)直到找到宿主節(jié)點(diǎn)(如圖2中, c_c2_c3)。
如果沒有與請求URL相似的URL路徑,則URL路徑服務(wù)發(fā)送查詢到下層 對等網(wǎng)絡(luò)模塊,查詢URL的keyl路徑宿主節(jié)點(diǎn);
⑤ 此時根據(jù)URL計算對象的Keyl ID并發(fā)送給下層Chord去查詢對象的Keyl 宿主節(jié)點(diǎn),通過查詢,Chord將找到這個對象的Keyl宿主節(jié)點(diǎn),然后Keyl 宿主節(jié)點(diǎn)檢查其路徑索引表和宿主索引表內(nèi)是否有被請求URL的索引, 如果索引存在,則這個路徑宿主節(jié)點(diǎn)返回一個請求對象所在的節(jié)點(diǎn)(我 們稱這個節(jié)點(diǎn)為相應(yīng)URL對象的代理節(jié)點(diǎn))的地址到源節(jié)點(diǎn)n (如圖2中 b-bl)。如果索引不存在,計算Key2 ID并發(fā)送到Keyl宿主節(jié)點(diǎn),Chord 從Keyl宿主節(jié)點(diǎn)開始繼續(xù)查詢,同樣通過査詢,將找到Key2宿主節(jié)點(diǎn), Key2宿主節(jié)點(diǎn)同樣檢查其上的索引表信息,如果有相應(yīng)的索引信息,則 返回一個代理節(jié)點(diǎn)信息到源節(jié)點(diǎn),否則繼續(xù)査詢下一個路徑宿主節(jié)點(diǎn), 依次類推直到某個路徑宿主節(jié)點(diǎn)上有被請求URL的索引信息,或找到被 請求URL的宿主節(jié)點(diǎn)(如圖2中b-b2-b3)。如果URL的宿主節(jié)點(diǎn)的索引 表中也沒有被請求對象的索引,則請求發(fā)送到源服務(wù)器(如圖2中al)。 在這個查詢過程中,每一個路徑宿主節(jié)點(diǎn)都將返回其本身地址信息到源 節(jié)點(diǎn)n。
⑥ 路徑宿主節(jié)點(diǎn)或宿主節(jié)點(diǎn)把查詢到的索引信息返回到發(fā)起査詢請求的節(jié) 點(diǎn)的URL路徑服務(wù);此時如果返回的結(jié)果包含有請求URL的路徑宿主節(jié) 點(diǎn),則URL路徑服務(wù)對路徑宿主節(jié)點(diǎn)表進(jìn)行更新。
⑦ 轉(zhuǎn)發(fā)這個返回信息到本地代理;⑧ 如果返回的是Nu11,本地代理通過源服務(wù)器上獲取Web對象,否則根據(jù) 返回的結(jié)果從相應(yīng)結(jié)點(diǎn)獲得Web對象,然后本地緩存中存儲此對象的一 份拷貝,并發(fā)布相應(yīng)的索引信息到相應(yīng)的路徑宿主節(jié)點(diǎn)和宿主節(jié)點(diǎn)。
⑨ 發(fā)送Web對象到瀏覽器。
權(quán)利要求
1. 一種基于路徑劃分與多分布目錄的快速數(shù)據(jù)定位方法,其特征在于具體實現(xiàn)步驟如下步驟一、設(shè)計路徑劃分的方法首先,給出相關(guān)概念的定義;其次,設(shè)計具體數(shù)據(jù)路徑劃分的方法;步驟二、建立基于路徑劃分的多分布式目錄在步驟一的數(shù)據(jù)路徑劃分和計算路徑相似度的基礎(chǔ)上,建立基于數(shù)據(jù)路徑劃分的多分布式目錄表;首先,引入HOME路徑宿主節(jié)點(diǎn)和keyi路徑宿主節(jié)點(diǎn)的語義;其次,確定結(jié)構(gòu)化對等網(wǎng)絡(luò)應(yīng)用系統(tǒng)的每個節(jié)點(diǎn)包括的功能;最后,設(shè)計基于數(shù)據(jù)路徑劃分的多分布式目錄表的建立過程;步驟三、設(shè)計數(shù)據(jù)快速定位的方法經(jīng)過步驟一和步驟二,在完成路徑劃分并建立了多分布目錄的基礎(chǔ)上,提出一種快速數(shù)據(jù)定位的方法;首先,給出相關(guān)概念的定義;其次,設(shè)計基于路徑劃分與多分布目錄的快速數(shù)據(jù)定位方法為(1)本地資源共享系統(tǒng)的數(shù)據(jù)快速定位方法;(2)結(jié)構(gòu)化瀏覽器緩存系統(tǒng)的數(shù)據(jù)快速定位方法。
2. 根據(jù)權(quán)利要求1所述的一種基于路徑劃分與多分布目錄的快 速數(shù)據(jù)定位方法,其特征在于步驟一中的設(shè)計路徑劃分的方法的相關(guān) 概念的定義為給定基于本地存放的結(jié)構(gòu)化對等網(wǎng)絡(luò)應(yīng)用系統(tǒng)中的任意兩個數(shù) 據(jù)路徑PATH1和PATH2,其中,PATH1= sl/pl/p2…/pi/…/pn/FILEl; PATH2二s2/ql/q2…/qj/…/qm/FILE2;這里,sl和s2均是對等節(jié)點(diǎn)或服務(wù)器的唯一標(biāo)識;pi和qj均是目錄信息,i是1到n的正整數(shù),j是1到 m的正整數(shù); ' FILE1和FILE2均是文件標(biāo)識符; 定義1.數(shù)據(jù)路徑特征所有這些sl、 s2、 pi、 qj、 FILE1、 FILE2符號,均是數(shù)據(jù)路徑特征;其中i是l到n的正整數(shù),j是l到m的正整數(shù); 定義2.數(shù)據(jù)路徑相似度任意兩個數(shù)據(jù)路徑PATH1和PATH2的相似度是從數(shù)據(jù)路徑左端 第一個數(shù)據(jù)路徑特征起,連續(xù)相同的數(shù)據(jù)路徑特征的個數(shù)。
3.根據(jù)權(quán)利要求1所述的一種基于路徑劃分與多分布目錄的快 速數(shù)據(jù)定位方法,其特征在于步驟一中的設(shè)計路徑劃分的方法為把數(shù)據(jù)路徑的鍵值ID劃分成r個部分,這里r是一個正整數(shù); 其具體步驟為步驟l、首先確定Keyi(i4,2,……,r)的位數(shù),用bit(Keyi)來 表示;然后按照數(shù)據(jù)路徑特征順序計算第一個數(shù)據(jù)路徑特征的哈希 值,并從高位到低位的順序取bit(keyl)位作為keyl的值,再計算 第二個數(shù)據(jù)路徑特征的哈希值取bit(key2)位作為key2的值,以此 類推,最后,哈希路徑的其余部分,并取bit(keyr)位作為keyr的值;步驟2、如果數(shù)據(jù)路徑特征的數(shù)目小于r,在按第(l)步處理完所 有數(shù)據(jù)路徑特征后,還須哈希整個路徑,并取其高位,記為key補(bǔ), 補(bǔ)齊ID的空余部分;這樣其數(shù)據(jù)路徑鍵值ID= keylkey2…keymkey 補(bǔ),這里,m〈r;步驟3、經(jīng)過第(l)步的計算,得到keyl, key2 ,…,keyr,則 一個數(shù)據(jù)路徑鍵值ID就是keyl, key2,…,keyr的順序連接 keylkey2…keyr ;或者經(jīng)過第(2)步的計算,得到keyl , key2 ,…,keym, key補(bǔ),則一個數(shù)據(jù)路徑鍵值ID就是keyl, key2,…,keym, key補(bǔ)的順序連接keylkey2…keymkey補(bǔ);其中, keyl , key2,…,keyr, keym, key補(bǔ)的位數(shù)分別是bit (keyl), bit(key2),…,bit (keyr) , bit(keym), bit (key補(bǔ))。
4.根據(jù)權(quán)利要求1所述的一種基于路徑劃分與多分布目錄的快 速數(shù)據(jù)定位方法,其特征在于步驟二中的建立基于路徑劃分的多分布 式目錄的相關(guān)概念的定義為-定義3. HOME路徑宿主節(jié)點(diǎn)把存儲路徑的鍵值ID= Keylkey2…keyr-lkeyr的節(jié)點(diǎn)記作其 HOME路徑宿主節(jié)點(diǎn);定義4.keyl路徑宿主節(jié)點(diǎn)把存儲keyl路徑的節(jié)點(diǎn)記作keyl路徑宿主節(jié)點(diǎn),它作為所有 與其相似度大于等于1的路徑查詢起始位置;keyl路徑索引存儲在 keyl所有的路徑宿主結(jié)點(diǎn)和相應(yīng)的HOME路徑宿主結(jié)點(diǎn);定義5. keyr-1路徑宿主節(jié)點(diǎn)把存儲Keylkey2…keyr-1路徑信息的節(jié)點(diǎn)記作keyr-1路徑宿 主節(jié)點(diǎn),這里r是指數(shù)據(jù)路徑鍵值ID劃分的數(shù)目。
5. 根據(jù)權(quán)利要求1所述的一種基于路徑劃分與多分布目錄的快 速數(shù)據(jù)定位方法,其特征在于步驟二中的結(jié)構(gòu)化對等網(wǎng)絡(luò)應(yīng)用系統(tǒng)的 每個節(jié)點(diǎn)包括以下功能(1) 每個節(jié)點(diǎn)維護(hù)本地的存儲對象;(2) 每個節(jié)點(diǎn)主要維護(hù)三個表 一個路徑宿主索引表、 一個宿主 索引表和一個本地路徑宿主節(jié)點(diǎn)表;其中,在路徑宿主索引表中,每 一行包括一個數(shù)據(jù)路徑、數(shù)據(jù)對象的最后訪問時間和一個含有多個相 似路徑的宿主節(jié)點(diǎn)表等;宿主索引表也包含上述表項,當(dāng)此節(jié)點(diǎn)恰好 就是數(shù)據(jù)路徑的HOME路徑宿主節(jié)點(diǎn)時,該節(jié)點(diǎn)的宿主索引表記錄此 路徑索引關(guān)系;當(dāng)此節(jié)點(diǎn)不是數(shù)據(jù)路徑的HOME路徑宿主節(jié)點(diǎn)時,該 節(jié)點(diǎn)的宿主索引表不作記錄;本地路徑宿主節(jié)點(diǎn)表存儲和更新與本節(jié) 點(diǎn)最近頻繁訪問的相似路徑宿主節(jié)點(diǎn)信息。
6. 根據(jù)權(quán)利要求1所述的一種基于路徑劃分與多分布目錄的快 速數(shù)據(jù)定位方法,其特征在于步驟二中的設(shè)計基于數(shù)據(jù)路徑劃分的多 分布式目錄表的建立過程為情況l、網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量沒有變化步驟l、用戶對本地共享資源進(jìn)行創(chuàng)建或更新;步驟2、更新節(jié)點(diǎn)發(fā)布發(fā)布相應(yīng)的路徑索引到相應(yīng)的路徑宿主節(jié) 點(diǎn)和HOME宿主節(jié)點(diǎn)上;步驟3、當(dāng)一個節(jié)點(diǎn)獲得數(shù)據(jù)對象后,它向査詢到的路徑宿主節(jié) 點(diǎn)與HOME宿主節(jié)點(diǎn)發(fā)布信息,告知這些節(jié)點(diǎn)其有此對象,路徑宿主 節(jié)點(diǎn)及HOME宿主節(jié)點(diǎn)相應(yīng)地更新它們的路徑宿主索引表、宿主索引 表和本地路徑宿主節(jié)點(diǎn)表;步驟4、每個節(jié)點(diǎn)根據(jù)自身最近訪問的對象,計算其路徑的相似 度,并在其路徑宿主索引表中記錄最近訪問頻繁的多個路徑相似的宿主節(jié)點(diǎn);步驟5、在經(jīng)過一段時間后,路徑宿主節(jié)點(diǎn)之間以及宿主節(jié)點(diǎn)上 的索引信息可能不同步,這不會影響系統(tǒng)的査詢性能,因為數(shù)據(jù)對象 的所有路徑宿主節(jié)點(diǎn)上有整個的索引信息,節(jié)點(diǎn)只要依次查找到各個 路徑宿主節(jié)點(diǎn)就能獲知索引信息;為同步信息,Keyi(i二1,2,……,r) 路徑宿主結(jié)點(diǎn)在經(jīng)過一段時間后,主動與其它路徑宿主節(jié)點(diǎn)和宿主節(jié) 點(diǎn)聯(lián)系并同步它們之間相應(yīng)的索引信息;情況2:網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量增加當(dāng)一個新節(jié)點(diǎn)加入網(wǎng)絡(luò)時,首先做個標(biāo)記,指示相應(yīng)對象的索引 信息在其后繼節(jié)點(diǎn)上,這樣經(jīng)過這個加入節(jié)點(diǎn)的信息就可以轉(zhuǎn)發(fā)到其 后繼,直至所有的索引信息已經(jīng)復(fù)制到此節(jié)點(diǎn)后,取消這個標(biāo)記;情況3:網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量減少當(dāng)一個節(jié)點(diǎn)失效或退出前,此節(jié)點(diǎn)復(fù)制其路徑索引信息到其后 繼,在這個節(jié)點(diǎn)失效后,只需重新查找到新的路徑宿主節(jié)點(diǎn)即可;如 果其后繼同時失效,須重新建立這些索引信息。
7. 根據(jù)權(quán)利要求1所述的一種基于路徑劃分與多分布目錄的快 速數(shù)據(jù)定位方法,其特征在于步驟三中的設(shè)計數(shù)據(jù)快速定位的方法的 相關(guān)概念為定義6.本地代理每個節(jié)點(diǎn)由一個本地代理來操作本地的共享存儲資源; 定義7.本地路徑服務(wù)本地路徑服務(wù)通過底層對等網(wǎng)絡(luò)平臺為系統(tǒng)提供查詢請求,以及 返回査詢的結(jié)果到本地代理;同時根據(jù)路徑服務(wù)返回的路徑宿主節(jié)點(diǎn) 和HOME宿主節(jié)點(diǎn)信息,發(fā)布相應(yīng)數(shù)據(jù)對象的索引信息到相應(yīng)的節(jié)點(diǎn)。
8. 根據(jù)權(quán)利要求1所述的一種基于路徑劃分與多分布目錄的快 速數(shù)據(jù)定位方法,其特征在于步驟三中的本地資源共享系統(tǒng)的數(shù)據(jù)快 速定位方法的步驟為步驟l、用戶發(fā)出一個數(shù)據(jù)查詢請求;步驟2、請求送到本地代理,本地代理分析該請求,并査詢本地 是否存儲有請求對象;如有則轉(zhuǎn)到步驟8;步驟3、如果本地沒有請求對象,本地代理轉(zhuǎn)發(fā)請求到本地路徑服務(wù);步驟4、本地路徑服務(wù)查看路徑宿主節(jié)點(diǎn)表,檢查是否有與請求 相似的路徑,如果有,則直接轉(zhuǎn)到其所對應(yīng)的路徑宿主節(jié)點(diǎn);否則發(fā) 送查詢到下層的結(jié)構(gòu)化對等網(wǎng)絡(luò)模塊,查詢keyl路徑宿主節(jié)點(diǎn);步驟5、如果找到相應(yīng)的keyl路徑宿主節(jié)點(diǎn),查詢其路徑宿主 索引表和宿主索引表,看是否存在與請求相應(yīng)的索引,如果沒有找到, 則繼續(xù)查詢下一個路徑宿主節(jié)點(diǎn);如果找到,路徑宿主節(jié)點(diǎn)把査詢到 的索引信息返回到發(fā)起査詢請求節(jié)點(diǎn)的本地路徑服務(wù);如果返回結(jié)果 中包含有請求的信息,則該路徑服務(wù)對其路徑宿主節(jié)點(diǎn)表發(fā)起更新操 作;步驟6、轉(zhuǎn)發(fā)該返回信息到本地代理;步驟7、如果返回是Null,本地代理轉(zhuǎn)到步驟8,否則根據(jù)返回 結(jié)果從相應(yīng)節(jié)點(diǎn)獲得對象,然后在本地存儲此對象的一份拷貝,并發(fā) 布相應(yīng)的索引信息到相應(yīng)的路徑宿主節(jié)點(diǎn)和HOME路徑宿主節(jié)點(diǎn);步驟8、本次操作結(jié)束。
9.根據(jù)權(quán)利要求1所述的一種基于路徑劃分與多分布目錄的快 速數(shù)據(jù)定位方法,其特征在于步驟三中的結(jié)構(gòu)化瀏覽器緩存系統(tǒng)的數(shù) 據(jù)快速定位方法的步驟為步驟l、用戶瀏覽器發(fā)出一個URL請求后,送到本地代理,本地代理分析該請求,如果該請求是不可緩存的,則直接轉(zhuǎn)發(fā)到源服務(wù)器;步驟2、本地代理查詢本地緩存中是否有請求的對象;如果有則 轉(zhuǎn)到步驟9、步驟3、如果本地緩存中沒有請求的對象,本地代理轉(zhuǎn)發(fā)請求到 URL路徑服務(wù);步驟4、 URL路徑服務(wù)查看路徑宿主節(jié)點(diǎn)表中是否有與請求URL 相似的URL路徑;如果有,則直接轉(zhuǎn)到此其所對應(yīng)的路徑宿主節(jié)點(diǎn); 如果沒有,則URL路徑服務(wù)發(fā)送査詢到下層對等網(wǎng)絡(luò)模塊,查詢URL 的keyl路徑宿主節(jié)點(diǎn);步驟5、通過查找找到相應(yīng)的路徑宿主節(jié)點(diǎn);路徑宿主節(jié)點(diǎn)或宿 主節(jié)點(diǎn)查詢其路徑宿主索引表和宿主索引表,看是否存在請求URL相 應(yīng)的索引,如果此時是路徑宿主節(jié)點(diǎn)且沒有找到請求URL的索引,則通過下層對等網(wǎng)絡(luò)模塊,繼續(xù)査詢下一個路徑宿主節(jié)點(diǎn)或宿主節(jié)點(diǎn); 步驟6、路徑宿主節(jié)點(diǎn)或宿主節(jié)點(diǎn)把查詢到的索引信息返回到發(fā) 起査詢請求的節(jié)點(diǎn)的URL路徑服務(wù);此時如果返回的結(jié)果包含有請求 URL的路徑宿主節(jié)點(diǎn),則URL路徑服務(wù)對路徑宿主節(jié)點(diǎn)表進(jìn)行更新; 步驟7、轉(zhuǎn)發(fā)這個返回信息到本地代理;步驟8、如果返回的是Null,本地代理通過源服務(wù)器上獲取Web 對象,否則根據(jù)返回的結(jié)果從相應(yīng)結(jié)點(diǎn)獲得Web對象,然后本地緩存 中存儲此對象的一份拷貝,并發(fā)布相應(yīng)的索引信息到相應(yīng)的路徑宿主 節(jié)點(diǎn)和宿主節(jié)點(diǎn);步驟9、發(fā)送Web對象到瀏覽器。
全文摘要
本發(fā)明涉及一種基于路徑劃分與多分布目錄的快速數(shù)據(jù)定位方法,屬于計算機(jī)應(yīng)用技術(shù)領(lǐng)域。本發(fā)明針對數(shù)據(jù)只能存放在本地節(jié)點(diǎn)的結(jié)構(gòu)化對等網(wǎng)絡(luò)應(yīng)用系統(tǒng),引入數(shù)據(jù)路徑的劃分、數(shù)據(jù)路徑相似度及多分布式目錄等機(jī)制,解決了基于結(jié)構(gòu)化對等網(wǎng)絡(luò)的Squirrel系統(tǒng)存在的數(shù)據(jù)定位的效率低以及有效性、穩(wěn)定性和健壯性差的問題。本發(fā)明可廣泛應(yīng)用于數(shù)據(jù)存放在本地的結(jié)構(gòu)化對等網(wǎng)絡(luò)應(yīng)用系統(tǒng)中,以數(shù)據(jù)對象路徑的ID標(biāo)識作為輸入,在其[Key1路徑宿主節(jié)點(diǎn),HOME路徑宿主節(jié)點(diǎn)]區(qū)間的相似節(jié)點(diǎn)內(nèi),快速穩(wěn)定地定位出包含該數(shù)據(jù)位置的分布式目錄所在的節(jié)點(diǎn)位置,做到高效的數(shù)據(jù)定位。
文檔編號H04L12/56GK101447937SQ20081022703
公開日2009年6月3日 申請日期2009年2月27日 優(yōu)先權(quán)日2009年2月27日
發(fā)明者付引霞, 任小金, 古志民, 楊明花, 程慧芳 申請人:北京理工大學(xué)