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