国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于查詢統(tǒng)計(jì)的p2p系統(tǒng)導(dǎo)向搜索方法

      文檔序號:6587016閱讀:278來源:國知局
      專利名稱:一種基于查詢統(tǒng)計(jì)的p2p系統(tǒng)導(dǎo)向搜索方法
      技術(shù)領(lǐng)域
      本發(fā)明設(shè)計(jì)一種通用于P2P網(wǎng)絡(luò)的查詢增強(qiáng)方法,該方法獨(dú)立于底層拓?fù)浣Y(jié)構(gòu), 利用歷史査詢統(tǒng)計(jì)和語義分析結(jié)果將每次查詢請求引導(dǎo)到最可能提供相應(yīng)信息的結(jié) 點(diǎn)上進(jìn)行。它的使用有效減少查詢的網(wǎng)絡(luò)開銷,提高查詢成功率,降低通信延遲,并 且?guī)缀醪辉黾宇~外的維護(hù)開銷。
      背景技術(shù)
      到目前為止已經(jīng)有很多經(jīng)典的查詢方法,比如混合式P2P網(wǎng)絡(luò)下,基于服務(wù)器的 查詢方式;無結(jié)構(gòu)P2P網(wǎng)絡(luò)下的洪泛方式、隨機(jī)走方式、擴(kuò)展環(huán)方式,超結(jié)點(diǎn)方式, 等等;結(jié)構(gòu)化P2P模型下基于DHT的數(shù)值臨近方式、位置臨近方式、逐位匹配方式, 等等。但是我們發(fā)現(xiàn)在實(shí)際應(yīng)用中各種模型由于自身的缺陷而受到限制,而無結(jié)構(gòu) P2P網(wǎng)絡(luò)憑借拓?fù)浣Y(jié)構(gòu)簡單、容錯(cuò)性強(qiáng)等優(yōu)點(diǎn)成為目前主流的P2P實(shí)用系統(tǒng),但是無 結(jié)構(gòu)對等網(wǎng)絡(luò)自身的一些缺點(diǎn)限制了其更好的擴(kuò)展與運(yùn)行,其中最大的問題就是數(shù)據(jù) 查詢成功率與査詢開銷的矛盾。傳統(tǒng)的洪泛式査詢帶來的網(wǎng)絡(luò)開銷過大,而低開銷的 隨機(jī)走、擴(kuò)展環(huán)等査詢方式又無法保證査詢的成功率。
      基于以上的觀察,本發(fā)明提出一種通用于P2P網(wǎng)絡(luò)的查詢增強(qiáng)方法,它基于歷史 査詢統(tǒng)計(jì)和語義分析信息的結(jié)果,把每次查詢引導(dǎo)到更有效率的結(jié)點(diǎn)進(jìn)行查詢,這樣 可以盡量避免使用底層網(wǎng)絡(luò)的查詢方法,可以有效的提高查詢成功率,降低査詢實(shí)驗(yàn), 緩解網(wǎng)絡(luò)負(fù)載,也能進(jìn)一步提高網(wǎng)絡(luò)的容錯(cuò)性、健壯性。

      發(fā)明內(nèi)容
      本發(fā)明目的是提出一種通用于P2P網(wǎng)絡(luò)的査詢的增強(qiáng)方法,該方法獨(dú)立于底層 拓?fù)浣Y(jié)構(gòu),利用歷史查詢統(tǒng)計(jì)和語義分析結(jié)果將每次查詢請求引導(dǎo)到最可能提供相應(yīng) 信息的結(jié)點(diǎn)上進(jìn)行。為了實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案是
      (1) 建立統(tǒng)計(jì)導(dǎo)向表(Statistics Guided Table,簡稱SGT),基于對歷史査詢統(tǒng)計(jì) 和語義分析結(jié)果,建立雙層結(jié)構(gòu)的"統(tǒng)計(jì)導(dǎo)向表"。上層表項(xiàng)只保留最新查詢的歷史 記錄,按照查詢的時(shí)間排序;下層表項(xiàng)保存響應(yīng)本次查詢或者響應(yīng)過相似查詢的結(jié)點(diǎn) 信息(包括IP, Port等)和有利因子(如可用帶寬、時(shí)延、響應(yīng)次數(shù)等功能評價(jià)的 指標(biāo))。
      (2) 利用統(tǒng)計(jì)導(dǎo)向表査詢文件, 一旦結(jié)點(diǎn)建立統(tǒng)計(jì)導(dǎo)向表后,可以按照本次查詢 與統(tǒng)計(jì)導(dǎo)向表SGT歷史查詢的語義相關(guān)性大小,首先有效的利用統(tǒng)計(jì)導(dǎo)向表SGT內(nèi) 的信息進(jìn)行査詢; 一旦SGT保存的歷史記錄與本次査詢相關(guān)性不大,或者使用SGT 無法獲得所需結(jié)果,會自動(dòng)啟用底層?xùn)嗽儾呗浴5谝淮翁岢鰱嗽冋埱髸r(shí)只能使用底層結(jié)構(gòu) 的査詢策略,得到響應(yīng)消息后創(chuàng)建SGT,
      (3) 自適應(yīng)的更新統(tǒng)計(jì)導(dǎo)向表,包括主動(dòng)更新和被動(dòng)更新兩種方法。被動(dòng)方式發(fā) 生在結(jié)點(diǎn)轉(zhuǎn)發(fā)查詢請求后,使用捎帶更新(piggybacking)的方式,這種方式不會增 加額外開銷。主動(dòng)更新發(fā)生在成功查詢后,首先源結(jié)點(diǎn)(查詢發(fā)起者)會利用得到的 回復(fù)消息更新自己的SGT,然后主動(dòng)把自己SGT中與本次査詢相關(guān)的結(jié)點(diǎn)信息發(fā)給 目標(biāo)結(jié)點(diǎn),讓目標(biāo)結(jié)點(diǎn)利用這些信息更新它的SGT。
      SGT更新方式,對結(jié)點(diǎn)進(jìn)行潛在的聚類,如果當(dāng)前的SGT與本次查詢相關(guān)性不 大,直接啟用底層查詢方法,假設(shè)通過某結(jié)點(diǎn)獲得該資源,這時(shí)需要替換掉SGT最 早的查詢的相關(guān)信息,計(jì)算相似度后發(fā)現(xiàn)兩項(xiàng)的結(jié)點(diǎn)查詢時(shí)很相似,于是合并兩項(xiàng)的 結(jié)點(diǎn)信息;在未命中的情況下,使用底層查詢方式,假設(shè)結(jié)點(diǎn)R、 S響應(yīng)該請求,與前一次類似,建立新的査詢表項(xiàng),將最早表項(xiàng)與最相似的查詢合并。
      本發(fā)明與現(xiàn)有技術(shù)相比,其有益效果是,本發(fā)明提出一種通用于P2P網(wǎng)絡(luò)的查詢
      增強(qiáng)方法,它基于歷史查詢統(tǒng)計(jì)和語義分析信息的結(jié)果,把每次査詢引導(dǎo)到更有效率 的結(jié)點(diǎn)進(jìn)行査詢,這樣可以盡量避免使用底層網(wǎng)絡(luò)的查詢方法。該方法獨(dú)立于底層拓
      撲結(jié)構(gòu),在無結(jié)構(gòu)P2P網(wǎng)絡(luò)和結(jié)構(gòu)化P2P網(wǎng)絡(luò)都能夠使用。在維護(hù)SGT開銷很小的 前提下,可以有效的提高網(wǎng)絡(luò)整體性能,比如提高査詢成功率、緩解網(wǎng)絡(luò)負(fù)載、降 低查詢時(shí)延等等,也能提高系統(tǒng)的健壯性、容錯(cuò)性。


      圖l是本發(fā)明統(tǒng)計(jì)導(dǎo)向表的結(jié)構(gòu) 圖2是本發(fā)明SGT的主動(dòng)更新示意圖
      圖3是本發(fā)明利用SGT多次迭代查詢的性能對比圖,其中(a)成功率、(b)平 均時(shí)延、(c)平均消息數(shù)
      圖4是本發(fā)明維護(hù)SGT的開銷
      圖5是本發(fā)明結(jié)點(diǎn)動(dòng)態(tài)變化時(shí)系統(tǒng)的成功率的變化
      具體實(shí)施例方式
      本發(fā)明可分為3個(gè)階段建立統(tǒng)計(jì)導(dǎo)向表、利用統(tǒng)計(jì)導(dǎo)向表查詢的算法、自適應(yīng) 更新統(tǒng)計(jì)導(dǎo)向表的算法。
      最后會提供部分模擬實(shí)驗(yàn)結(jié)果。 階段l:建立統(tǒng)計(jì)導(dǎo)向表
      為了下面文章和算法敘述的方便,首先給出一些符號的意義,如表1所示。
      表l符號表符號意乂
      尺SGT第一層,保存歷史査詢的次數(shù)
      〃SGT第二層,與査詢相關(guān)的結(jié)點(diǎn)數(shù)
      查詢時(shí),選擇相關(guān)的歷史査詢的個(gè)數(shù)
      査詢時(shí),選擇相關(guān)的結(jié)點(diǎn)個(gè)數(shù)
      在歷史査詢信息中,第/項(xiàng)査詢記錄
      本次査詢《和0,次的相似度;
      査詢相似度l萄值,衡量是否使用SGT
      更新相似度閾值,衡量是否合并SGT
      SOT—/;o戸査詢時(shí),利用SGT迭代査詢的次數(shù)
      本文基于兩個(gè)合理的假設(shè)(1)川戶共享資源時(shí),很大可能會共享相關(guān)的資源。(2)用戶在 相對集中時(shí)間內(nèi)請求資源,帶有一定的偏好。第一個(gè)假設(shè)與文獻(xiàn)[18中描述的興趣局部現(xiàn)象類似。 第二個(gè)假設(shè)是對用戶行為分析的結(jié)果,用戶在相對集中的時(shí)間內(nèi)請求網(wǎng)絡(luò)資源會有比較明確的目
      的性?;诖耍疚囊胍环N基于歷史杳詢統(tǒng)計(jì)和語義分析的統(tǒng)計(jì)導(dǎo)向表(Statistics Guided Table, 簡稱SGT),如圖1所示。SGT分為2層,上層表項(xiàng)只保留最新《次查詢的歷史記錄(圖中《=3), 按照查詢的時(shí)間排序;下層每一個(gè)表項(xiàng)都對應(yīng)的保存一組M項(xiàng)的記錄(圖中^/=2),記錄響應(yīng)本 次査詢或者響應(yīng)過相似查詢的結(jié)點(diǎn)信息(包括IP, Port等)和有利因子(如可用帶寬、時(shí)延、 響應(yīng)次數(shù)等)??梢钥闯錾蠈颖眄?xiàng)相當(dāng)?shù)讓咏Y(jié)點(diǎn)信息的目錄或者分類標(biāo)準(zhǔn)。從下面的介紹的查詢 策略和更新策略中可以體現(xiàn)這種結(jié)構(gòu)的優(yōu)勢。
      在計(jì)算語義相似度的方面,在信息檢索領(lǐng)域涌現(xiàn)出很多技術(shù),這里我們啟發(fā)性的選擇比較流 行的向量空間模型(vector space model, VSM)和潛在語義索引(latent semantic indexing, LSI) 技術(shù)128。即將查詢條件轉(zhuǎn)化為向量表示。在計(jì)算兩次杏詢的相似程度時(shí)候,我們轉(zhuǎn)化為計(jì)算它們
      的向量的余弦值,利用如下公式<formula>formula see original document page 6</formula>
      其中4是查詢q的向量。 階段2:利用統(tǒng)計(jì)導(dǎo)向表查詢的算法
      當(dāng)結(jié)點(diǎn)初次進(jìn)入P2P網(wǎng)絡(luò)時(shí)沒有任何歷史査詢記錄,第一次提出査詢請求時(shí)只能使用底層結(jié) 構(gòu)的査詢策略,得到響應(yīng)消息后創(chuàng)建SGT,之后按照算法1來進(jìn)行査詢。 算法l SGT的査詢算法
      <formula>formula see original document page 6</formula>
      1. 從SGT中最相關(guān)的&個(gè)歷史記錄下,選出有 利因子最大的A^個(gè)結(jié)點(diǎn)發(fā)送齊詢請求;
      2. 等待一段時(shí)間,收集冋復(fù)消息 if有結(jié)點(diǎn)響應(yīng) //SGT命中情況
      建立連接,獲取資源; else 〃SGT脫耙情況
      啟用底層?xùn)嗽兎椒ǎ?else 〃SGT與査詢相關(guān)性不高
      直接啟用底層?xùn)嗽兎椒ǎ?可以看出這種搜索方法是一種松散的增強(qiáng)方法,而SGT對系統(tǒng)貢獻(xiàn)的大小取決于SGT的命中 率,在模擬實(shí)驗(yàn)中顯示SGT命中率很高,尤其是在利用SGT迭代多次(SGr—被設(shè)置成2、 3、 4)時(shí)。算法1描述的是SGr—to戸為1時(shí)使用SGT査詢的過程,多次迭代SGT的方法與之類似。 階段3:自適應(yīng)更新統(tǒng)計(jì)—導(dǎo)向表的算法
      為了提高SGT的命中率并降低維護(hù)SGT的開銷,我們使用主動(dòng)、被動(dòng)相結(jié)合的更新方式。被 動(dòng)方式發(fā)生在結(jié)點(diǎn)轉(zhuǎn)發(fā)查詢請求后,使用捎帶更新(piggybacking)的方式,這種方式不會增加額 外開銷。主動(dòng)更新發(fā)生在成功査詢后,首先源結(jié)點(diǎn)(查詢發(fā)起者)會利用得到的回復(fù)消息更新自 己的SGT,然后主動(dòng)把自己SGT中與本次杳詢相關(guān)的結(jié)點(diǎn)信息發(fā)給目標(biāo)結(jié)點(diǎn),讓目標(biāo)結(jié)點(diǎn)利用 這些信息更新它的SGT,這樣目標(biāo)結(jié)點(diǎn)會了解更多這類文件的信息,這也是一種激勵(lì)政策(分享 的資源越多,自己獲得相關(guān)資源的可能性越大),另一方面,這種主動(dòng)更新使得SGT可以得到更 遠(yuǎn)處相關(guān)結(jié)點(diǎn)的信息,擴(kuò)大自己覆蓋范圍,提高SGT命中率。維護(hù)開銷僅在這個(gè)時(shí)候產(chǎn)生,不過 這個(gè)開銷很小,因?yàn)槭菃未螁蜗虻?。利用這種被動(dòng)和主動(dòng)方式相結(jié)合的方式可以很好的提高SGT 的使用效率。
      下面的算法是被動(dòng)和主動(dòng)更新SGT的方法,值得注意的是被動(dòng)更新僅僅發(fā)生在SGT的第二層, 只需要按照有利因子排序,添加或者替換掉指向某個(gè)歷史杏詢的結(jié)點(diǎn);而主動(dòng)更新時(shí),SGT兩層 都要進(jìn)行變化,首先需耍合并(或者刪除)第一層中的歷史査詢信息,然后合并(或者替換)相 關(guān)歷史査詢的結(jié)點(diǎn)信息。
      算法2 SGT的被動(dòng)更新算法
      〃中間結(jié)點(diǎn)轉(zhuǎn)發(fā)査詢q后進(jìn)行
      I .找出與查詢《最相似的査詢2 ,設(shè)最大相似度為S/wmax II. if57w薩2 4
      把査詢^的源結(jié)點(diǎn)信息整合到0^ 所指向的結(jié)點(diǎn)列表中, else
      忽略本次查詢《信息算法3 SGT的主動(dòng)更新算法 〃源結(jié)點(diǎn)成功獲得資源后進(jìn)行
      I. 更新自己的SGT
      if結(jié)果是使用SGT獲得的
      1. 用本次查詢《替換最相似的査詢內(nèi)容2
      2. 合并響應(yīng)本次査詢的結(jié)點(diǎn)與原來g^^指向的結(jié)點(diǎn)信息,
      3. 重新按時(shí)間順序?qū)GT中上層的歷史査詢信息排序; else
      .找出與最早查詢2/最相似度歷史杏詢0^,相似度為&>^
      if &' 7臓> rM 合并2/和& 相關(guān)的結(jié)點(diǎn)
      2. 刪除込的査詢信息和結(jié)點(diǎn)信息
      3. 用本次査詢條件《和響應(yīng)結(jié)點(diǎn)信息,創(chuàng)建新表項(xiàng)。按時(shí)間順序 加入到原有導(dǎo)向表中
      II. 通知目的結(jié)點(diǎn)更新它的SGT
      1. 將與本次査詢最相關(guān)的A^個(gè)結(jié)點(diǎn)信息,發(fā)送給目的結(jié)點(diǎn);
      2. 目的結(jié)點(diǎn)按照被動(dòng)更新的方式更新它的SGT
      這種SGT更新方式可以對結(jié)點(diǎn)興趣進(jìn)行潛在的聚類,如圖2所示。假設(shè)源結(jié)點(diǎn)X當(dāng)前的SGT 如圖2(a)所示,然后開始杳詢"屯影",此時(shí)它的SGT與本次杏詢相關(guān)性不火,H接啟用底層 査詢方法,假設(shè)通過結(jié)點(diǎn)F獲得該資源,這時(shí)需耍替換掉SGT最早的査詢的相關(guān)信息,計(jì)算相似 度后發(fā)現(xiàn)"女歌手l"與"女歌手3"很相似,于是合并兩項(xiàng)的結(jié)點(diǎn)信息,如圖2(b);假設(shè)這之 后結(jié)點(diǎn)X繼續(xù)查詢"電影2",因?yàn)镾GT有相似杳詢,所以首先使用SGT,在未命中的情況下, 被迫使用底層?xùn)嗽兎绞?,假設(shè)結(jié)點(diǎn)R、 S響應(yīng)該請求,與前一次類似,建立新的表項(xiàng)"電影2", 將最早表項(xiàng)與最相似的查詢合并,如圖2(c)所示;然后,結(jié)點(diǎn)X繼續(xù)査找"書籍1",因?yàn)閷?dǎo)向表 內(nèi)容不相關(guān),直接通過底層方法獲得資源后,更新SGT會試圖將最早歷史查詢合并到后面表項(xiàng), 但是因?yàn)榕c其它査詢相關(guān)性不高,于是直接刪除該項(xiàng),創(chuàng)建新的表項(xiàng)加入SGT,如圖2(d)所示。
      從圖2可以看出,這種替換策略還可以按時(shí)間優(yōu)先原則來調(diào)整聚類的粒度,離現(xiàn)在時(shí)間越接 近的歷史査詢信息越豐富,這是"統(tǒng)計(jì)導(dǎo)向表"的另一個(gè)優(yōu)勢。 模擬實(shí)驗(yàn)結(jié)果
      圖3是利用SGT迭代多次査詢時(shí),系統(tǒng)各方面性能的情況,依然從査詢成功率、査詢時(shí)延、 系統(tǒng)負(fù)載這幾方面分析。用SGr—/rap表示迭代杳詢的次數(shù),SGr—to;w= 1是圖3討論過的情況。 從圖5中可以看出多次使用SGT可以進(jìn)一步提高系統(tǒng)的性能,如圖3(a),當(dāng)《 r—Ao/w=3或4 B寸, 奔詢成功率比Gnutella增加近270%,使得查詢成功率從0.088%提高32%。圖3(b)顯示隨著迭代 SGT的次數(shù)增加,杳詢時(shí)延會進(jìn)一步降低到78%;但是從圖3(c)可以看出當(dāng)SGr—力0戸=4時(shí),系 統(tǒng)運(yùn)行一段時(shí)間后負(fù)載會隨著杏詢次數(shù)增加而增加。原岡在于當(dāng)使用SGT迭代齊詢次數(shù)過多,會 導(dǎo)致過多的結(jié)點(diǎn)參與到査詢中,產(chǎn)生類似洪泛的效果。所以并不是使用SGT迭代的次數(shù)越多對系 統(tǒng)性能改善的作用越大。綜合從這幾張圖中可以看出SGrj70p5=3對系統(tǒng)的整體改善達(dá)到最優(yōu), 此時(shí)杳詢成功率比Gnutella提高了近270%;平均時(shí)延降低近78%,而系統(tǒng)負(fù)載也會降低近32%。
      圖4描述的是維護(hù)SGT所需的開銷。我們分別模擬了 SGr—to戸為1、 2、 3時(shí)維護(hù)SGT消息 數(shù)占整體消息數(shù)的比例情況。實(shí)際上維護(hù)SGT的開銷是非常小的,還不到0.04%。這和我們在設(shè) 計(jì)SGT算法的目標(biāo)相一致。
      圖5是在是在動(dòng)態(tài)環(huán)境下利用SGT迭代査詢1次、2次、3次時(shí)與Gnutella在査詢成功率方 面的對比。實(shí)驗(yàn)過程中,首先在系統(tǒng)運(yùn)行穩(wěn)定情況下依次讓10%、 30%、 50%的結(jié)點(diǎn)崩潰,分別執(zhí)行10000次査詢;接著讓崩潰的結(jié)點(diǎn)重新加入系統(tǒng),再分別執(zhí)行10000次査詢。從圖中可以看 出SGT的使用對系統(tǒng)健壯性、容錯(cuò)性能有所提高,在50%結(jié)點(diǎn)崩潰時(shí),Gnutella的查詢成功率已 經(jīng)下降到1%以下;使用SGT后(在SGrj2op^3時(shí))査詢成功率可以保證在11%左右,仍然比 穩(wěn)定狀態(tài)下的Gnutella要高近20%。從圖中我們也可以看出,當(dāng)崩潰的結(jié)點(diǎn)重新加入系統(tǒng)后,SGT 的使用可以幫助系統(tǒng)很快恢復(fù)到之前的穩(wěn)定狀態(tài)。II通知目的結(jié)點(diǎn)更新它的SGT
      1. 將與本次査詢最相關(guān)的Mq個(gè)結(jié)點(diǎn)信息,發(fā)送給目的結(jié)點(diǎn);
      2. 目的結(jié)點(diǎn)按照被動(dòng)更新的方式更新它的SGT 這種SGT更新方式可以對結(jié)點(diǎn)興趣進(jìn)行潛在的聚類,如圖2所示。假設(shè)源結(jié)點(diǎn)X當(dāng)前的
      SGT如圖2(a)所示,然后開始査詢"電影l(fā)",此時(shí)它的SGT與本次査詢相關(guān)性不大,直接啟 用底層?xùn)嗽兎椒?,假設(shè)通過結(jié)點(diǎn)F獲得該資源,這時(shí)需要替換掉SGT最早的査詢的相關(guān)信息, 計(jì)算相似度后發(fā)現(xiàn)"女歌手l"與"女歌手3"很相似,于是合并兩項(xiàng)的結(jié)點(diǎn)信息,如圖 2(b);假設(shè)這之后結(jié)點(diǎn)X繼續(xù)査詢"電影2",因?yàn)镾GT有相似査詢,所以首先使用SGT,在未 命中的情況下,被迫使用底層?xùn)嗽兎绞剑僭O(shè)結(jié)點(diǎn)R、 S響應(yīng)該請求,與前一次類似,建立新 的表項(xiàng)"電影2",將最早表項(xiàng)與最相似的査詢合并,如圖2(c)所示;然后,結(jié)點(diǎn)X繼續(xù)査找 "書籍l",因?yàn)閷?dǎo)向表內(nèi)容不相關(guān),直接通過底層方法獲得資源后,更新SGT會試圖將最早 歷史査詢合并到后面表項(xiàng),但是因?yàn)榕c其它査詢相關(guān)性不高,于是直接刪除該項(xiàng),創(chuàng)建新的 表項(xiàng)加入SGT,如圖2(d)所示。
      從圖2可以看出,這種替換策略還可以按時(shí)間優(yōu)先原則來調(diào)整聚類的粒度,離現(xiàn)在時(shí)間 越接近的歷史査詢信息越豐富,這是"統(tǒng)計(jì)導(dǎo)向表"的另一個(gè)優(yōu)勢。 模擬實(shí)驗(yàn)結(jié)果
      圖3是利用SGT迭代多次査詢時(shí),系統(tǒng)各方面性能的情況,依然從査詢成功率、査詢時(shí) 延、系統(tǒng)負(fù)載這幾方面分析。用SGT—hops表示迭代査詢的次數(shù),SGT—hops = l是圖3討論過 的情況。從圖5中可以看出多次使用SGT可以進(jìn)一步提高系統(tǒng)的性能,如圖3(a),當(dāng) SGT—hops二3或4時(shí),査詢成功率比Gnutella增加近270。/。,使得査詢成功率從O. 088%提高32%。 圖3 (b)顯示隨著迭代SGT的次數(shù)增加,査詢時(shí)延會進(jìn)一步降低到78%;但是從圖3 (c)可以看出 當(dāng)SGT—hop^4時(shí),系統(tǒng)運(yùn)行一段時(shí)間后負(fù)載會隨著査詢次數(shù)增加而增加。原因在于當(dāng)使用 SGT迭代査詢次數(shù)過多,會導(dǎo)致過多的結(jié)點(diǎn)參與到査詢中,產(chǎn)生類似洪泛的效果。所以并不 是使用SGT迭代的次數(shù)越多對系統(tǒng)性能改善的作用越大。綜合從這幾張圖中可以看出 SGT—hops二3對系統(tǒng)的整體改善達(dá)到最優(yōu),此時(shí)査詢成功率比Gnutella提高了近270。/。;平均時(shí) 延降低近78%,而系統(tǒng)負(fù)載也會降低近32%。
      圖4描述的是維護(hù)SGT所需的開銷。我們分別模擬了SGT—hops為l、 2、 3時(shí)維護(hù)SGT消息 數(shù)占整體消息數(shù)的比例情況。實(shí)際上維護(hù)SGT的開銷是非常小的,還不到0.04%。這和我們在 設(shè)計(jì)SGT算法的目標(biāo)相一致。
      圖5是在是在動(dòng)態(tài)環(huán)境下利用SGT迭代査詢1次、2次、3次時(shí)與Gnutella在査詢成功率方面的對比。實(shí)驗(yàn)過程中,首先在系統(tǒng)運(yùn)行穩(wěn)定情況下依次讓10%、 30%、 50%的結(jié)點(diǎn)崩潰,分 別執(zhí)行10000次査詢;接著讓崩潰的結(jié)點(diǎn)重新加入系統(tǒng),再分別執(zhí)行10000次査詢。從圖中可 以看出SGT的使用對系統(tǒng)健壯性、容錯(cuò)性能有所提高,在50%結(jié)點(diǎn)崩漬時(shí),Gnutella的査詢成 功率已經(jīng)下降到1%以下;使用SGT后(在SGT—hops二3時(shí))査詢成功率可以保證在11%左右,仍 然比穩(wěn)定狀態(tài)下的Gnute 11 a要高近20%。從圖中我們也可以看出,當(dāng)崩漬的結(jié)點(diǎn)重新加入系 統(tǒng)后,SGT的使用可以幫助系統(tǒng)很快恢復(fù)到之前的穩(wěn)定狀態(tài)。
      權(quán)利要求
      1、一種基于查詢統(tǒng)計(jì)的P2P系統(tǒng)導(dǎo)向搜索方法,其特征是步驟是(1)建立統(tǒng)計(jì)導(dǎo)向表(SGT),基于對歷史查詢統(tǒng)計(jì)和語義分析結(jié)果,建立雙層結(jié)構(gòu)的“統(tǒng)計(jì)導(dǎo)向表”;上層表項(xiàng)只保留最新查詢的歷史記錄,按照查詢的時(shí)間排序;下層表項(xiàng)保存響應(yīng)本次查詢或者響應(yīng)過相似查詢的IP、Port結(jié)點(diǎn)信息和可用帶寬、時(shí)延、響應(yīng)次數(shù)等有利因子;(2)利用統(tǒng)計(jì)導(dǎo)向表查詢文件,一旦結(jié)點(diǎn)建立統(tǒng)計(jì)導(dǎo)向表后,按照本次查詢與SGT歷史查詢的語義相關(guān)性大小,有效的利用SGT內(nèi)的信息進(jìn)行查詢;一旦SGT保存的歷史記錄與本次查詢相關(guān)性不大,或者使用SGT無法獲得所需結(jié)果,會自動(dòng)啟用底層查詢策略,第一次提出查詢請求時(shí)只能使用底層結(jié)構(gòu)的查詢策略,得到響應(yīng)消息后創(chuàng)建SGT;(3)自適應(yīng)的更新統(tǒng)計(jì)導(dǎo)向表,包括主動(dòng)更新和被動(dòng)更新兩種方法。被動(dòng)方式發(fā)生在結(jié)點(diǎn)轉(zhuǎn)發(fā)查詢請求后,使用捎帶更新(piggybacking)的方式,這種方式不會增加額外開銷;主動(dòng)更新發(fā)生在成功查詢后,首先查詢發(fā)起者即源結(jié)點(diǎn)會利用得到的回復(fù)消息更新自己的SGT,然后主動(dòng)把自己SGT中與本次查詢相關(guān)的結(jié)點(diǎn)信息發(fā)給目標(biāo)結(jié)點(diǎn),讓目標(biāo)結(jié)點(diǎn)利用這些信息更新它的SGT。
      2、 根據(jù)權(quán)利要求1所述的一種基于查詢統(tǒng)計(jì)的P2P系統(tǒng)導(dǎo)向搜索方法,其特征 是基于對歷史查詢統(tǒng)計(jì)和語義分析的結(jié)果建立"統(tǒng)計(jì)導(dǎo)向表"(Statistics Guided Table, 簡稱SGT)。 SGT可以對用戶的興趣進(jìn)行潛在聚類,并在更新的表項(xiàng)的時(shí)候,盡量收 集與用戶興趣最相關(guān)的結(jié)點(diǎn)信息。這樣在查詢的時(shí)候可以充分利用"統(tǒng)計(jì)導(dǎo)向表"記 錄的結(jié)果,更有快、更準(zhǔn)確的找到相應(yīng)的資源,并有效減少查詢引進(jìn)的開銷
      3、 根據(jù)權(quán)利要求1所述的一種基于査詢統(tǒng)計(jì)的P2P系統(tǒng)導(dǎo)向搜索方法,其特征 是該方法是一種通用與P2P網(wǎng)絡(luò)的查詢方法,它獨(dú)立于底層覆蓋網(wǎng)絡(luò),相當(dāng)于一種 查詢的增強(qiáng)方法,也就是說當(dāng)SGT無法滿足査詢要求時(shí),系統(tǒng)會自動(dòng)啟用底層的查 詢方式,如無結(jié)構(gòu)網(wǎng)絡(luò)下的洪泛査詢方法,結(jié)構(gòu)化網(wǎng)絡(luò)下的基于DHT的查詢方法, 等等。這種增強(qiáng)方法的采用,可以進(jìn)一步提高原有系統(tǒng)的査詢成功率,降低查詢時(shí)延, 有效緩解網(wǎng)絡(luò)負(fù)載,也能一定程度上提高系統(tǒng)的健壯性、容錯(cuò)性。
      4、 根據(jù)權(quán)利要求1所述的一種基于查詢統(tǒng)計(jì)的P2P系統(tǒng)導(dǎo)向搜索方法,其特征 是在設(shè)計(jì)更新統(tǒng)計(jì)導(dǎo)線表的算法時(shí),傾向于不增加過多的額外開銷的前提下,盡量 使得SGT記錄更多有用的信息,所以更新SGT時(shí)采用主動(dòng)、被動(dòng)兩種方式。被動(dòng)更 新是一種捎帶更新方式(piggybacking),這時(shí)候完全不引進(jìn)額外的開銷。而主動(dòng)更新 SGT時(shí),可以對按照用戶的潛在興趣,有選擇的替換結(jié)點(diǎn)信息,并且在主動(dòng)更新的時(shí) 候,會主動(dòng)通知目的結(jié)點(diǎn)利用自己的SGT更新它的SGT,這也是一種激勵(lì)政策(分 享的資源越多,自己獲得相關(guān)資源的可能性越大),另一方面,這種主動(dòng)更新使得SGT 獲得更遠(yuǎn)處相關(guān)結(jié)點(diǎn)的信息,擴(kuò)大覆蓋范圍,是的SGT的使用更有效率。
      5、 根據(jù)權(quán)利要求4所述的一種基于查詢統(tǒng)計(jì)的P2P系統(tǒng)導(dǎo)向搜索方法,其特征 是SGT更新方式,對結(jié)點(diǎn)進(jìn)行潛在的聚類,如果當(dāng)前的SGT與本次査詢相關(guān)性不 大,直接啟用底層查詢方法,假設(shè)通過某結(jié)點(diǎn)獲得該資源,這時(shí)需要替換掉SGT最 早的查詢的相關(guān)信息,計(jì)算相似度后發(fā)現(xiàn)兩項(xiàng)的結(jié)點(diǎn)査詢時(shí)很相似,于是合并兩項(xiàng)的 結(jié)點(diǎn)信息;在未命中的情況下,使用底層查詢方式,假設(shè)結(jié)點(diǎn)R、 S響應(yīng)該請求,與 前一次類似,建立新的査詢表項(xiàng),將最早表項(xiàng)與最相似的查詢合并。,也能一定程度上提高系統(tǒng)的健壯性、容錯(cuò)性。4.根據(jù)權(quán)利要求1所述的一種基于査詢統(tǒng)計(jì)的P2P系統(tǒng)導(dǎo)向搜索方法 ,其特征是在設(shè)計(jì)更新統(tǒng)計(jì)導(dǎo)線表的算法時(shí),傾向于不增加過多的額外開銷的前提下,盡 量使得SGT記錄更多有用的信息,所以更新SGT時(shí)采用主動(dòng)、被動(dòng)兩種方式。被動(dòng)更新是一種 捎帶更新方式(piggybacking),這時(shí)候完全不引進(jìn)額外的開銷。而主動(dòng)更新SGT時(shí),可以 對按照用戶的潛在興趣,有選擇的替換結(jié)點(diǎn)信息,并且在主動(dòng)更新的時(shí)候,會主動(dòng)通知目的 結(jié)點(diǎn)利用自己的SGT更新它的SGT,這也是一種激勵(lì)政策(分享的資源越多,自己獲得相關(guān)資 源的可能性越大),另一方面,這種主動(dòng)更新使得SGT獲得更遠(yuǎn)處相關(guān)結(jié)點(diǎn)的信息,擴(kuò)大覆 蓋范圍,是的SGT的使用更有效率。5.根據(jù)權(quán)利要求4所述的一種基于査詢統(tǒng)計(jì)的P2P系統(tǒng)導(dǎo)向搜索方法 ,其特征是SGT更新方式,對結(jié)點(diǎn)進(jìn)行潛在的聚類,如果當(dāng)前的SGT與本次査詢相關(guān)性不大 ,直接啟用底層?xùn)嗽兎椒?,假設(shè)通過某結(jié)點(diǎn)獲得該資源,這時(shí)需要替換掉SGT最早的査詢的 相關(guān)信息,計(jì)算相似度后發(fā)現(xiàn)兩項(xiàng)的結(jié)點(diǎn)査詢時(shí)很相似,于是合并兩項(xiàng)的結(jié)點(diǎn)信息;在未命 中的情況下,使用底層?xùn)嗽兎绞剑僭O(shè)結(jié)點(diǎn)R、 S響應(yīng)該請求,與前一次類似,建立新的査詢 表項(xiàng),將最早表項(xiàng)與最相似的査詢合并。
      全文摘要
      本發(fā)明公開了一種基于查詢統(tǒng)計(jì)的P2P系統(tǒng)導(dǎo)向搜索方法,其步驟如下(1)建立統(tǒng)計(jì)導(dǎo)向表SGT。基于對歷史查詢統(tǒng)計(jì)和語義分析結(jié)果,建立雙層結(jié)構(gòu)的“統(tǒng)計(jì)導(dǎo)向表”。上層表項(xiàng)只保留最新查詢的歷史記錄,按照查詢的時(shí)間排序;下層表項(xiàng)保存響應(yīng)本次查詢或者響應(yīng)過相似查詢的結(jié)點(diǎn)信息和有利因子。(2)利用統(tǒng)計(jì)導(dǎo)向表查詢文件。結(jié)點(diǎn)建立統(tǒng)計(jì)導(dǎo)向表后,按照本次查詢與SGT歷史查詢的語義相關(guān)性大小,利用SGT內(nèi)的信息進(jìn)行查詢;如SGT保存的歷史記錄與本次查詢相關(guān)性不大,自動(dòng)啟用底層查詢策略。(3)自適應(yīng)的更新統(tǒng)計(jì)導(dǎo)向表。包括主動(dòng)和被動(dòng)更新兩種方法,被動(dòng)方式發(fā)生在結(jié)點(diǎn)轉(zhuǎn)發(fā)查詢請求后。
      文檔編號G06F17/30GK101685470SQ20091030228
      公開日2010年3月31日 申請日期2009年5月14日 優(yōu)先權(quán)日2009年5月14日
      發(fā)明者于南南, 陳貴海 申請人:南京大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1