[發(fā)明專利]一種可擴(kuò)展的分布式查詢方法及裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201911033551.7 | 申請(qǐng)日: | 2019-10-28 |
| 公開(公告)號(hào): | CN110866046B | 公開(公告)日: | 2021-04-27 |
| 發(fā)明(設(shè)計(jì))人: | 景翔;劉佳皓;黃罡;蔡華謙 | 申請(qǐng)(專利權(quán))人: | 北京大學(xué) |
| 主分類號(hào): | G06F16/2458 | 分類號(hào): | G06F16/2458;H04L29/08 |
| 代理公司: | 北京潤(rùn)澤恒知識(shí)產(chǎn)權(quán)代理有限公司 11319 | 代理人: | 莎日娜 |
| 地址: | 100871*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 擴(kuò)展 分布式 查詢 方法 裝置 | ||
1.一種可擴(kuò)展的分布式查詢方法,其特征在于,所述方法應(yīng)用于對(duì)等計(jì)算P2P網(wǎng)絡(luò)系統(tǒng)中,所述P2P網(wǎng)絡(luò)系統(tǒng)包括多個(gè)節(jié)點(diǎn),所述節(jié)點(diǎn)中包括積極列表Active List,所述ActiveList分為活躍列表Eager List和惰性列表Lazy List;其中,所述節(jié)點(diǎn)的Eager List中存放的是在P2P網(wǎng)絡(luò)系統(tǒng)上和該節(jié)點(diǎn)建立TCP連接的節(jié)點(diǎn),用于傳遞消息;所述節(jié)點(diǎn)的Lazy List是所述Active List除Eager List中的剩余節(jié)點(diǎn),用于傳遞消息的摘要或消息的ID,用于P2P網(wǎng)絡(luò)系統(tǒng)的優(yōu)化和容錯(cuò);所述方法包括:
在所述P2P網(wǎng)絡(luò)系統(tǒng)中,第一節(jié)點(diǎn)獲得其父節(jié)點(diǎn)廣播的查詢請(qǐng)求,所述第一節(jié)點(diǎn)為所述P2P網(wǎng)絡(luò)系統(tǒng)中的任一節(jié)點(diǎn);
所述第一節(jié)點(diǎn)通過樹形維護(hù)程序?qū)⑺霾樵冋?qǐng)求廣播給自身的孩子節(jié)點(diǎn);所述孩子節(jié)點(diǎn)用于利用所述P2P網(wǎng)絡(luò)系統(tǒng)的樹形結(jié)構(gòu),將所述查詢請(qǐng)求再?gòu)V播給自身相應(yīng)的孩子節(jié)點(diǎn),自身相應(yīng)的孩子節(jié)點(diǎn)重復(fù)上述廣播步驟,直至將所述查詢請(qǐng)求廣播至該P(yáng)2P網(wǎng)絡(luò)系統(tǒng)上的所有節(jié)點(diǎn);每個(gè)節(jié)點(diǎn)在收到查詢的請(qǐng)求后,檢索本地?cái)?shù)據(jù)庫(kù),并等待其孩子節(jié)點(diǎn)的結(jié)果返回,當(dāng)收集完所有的孩子節(jié)點(diǎn)返回的數(shù)據(jù)后,做結(jié)算和去重操作,并將結(jié)果返回給其父節(jié)點(diǎn);經(jīng)過層層反饋,當(dāng)接收到用戶查詢請(qǐng)求的根節(jié)點(diǎn)收到所有孩子節(jié)點(diǎn)的返回結(jié)果時(shí),做最終的結(jié)算和去重操作,生成最終查詢結(jié)果,并將最終查詢結(jié)果返回給該用戶;
針對(duì)所述樹形維護(hù)程序,所述方法包括:
所述第一節(jié)點(diǎn)在將所述查詢請(qǐng)求廣播給自身的孩子節(jié)點(diǎn)時(shí),向自身的孩子節(jié)點(diǎn)中的第二節(jié)點(diǎn)發(fā)送IHAVE消息,所述IHAVE消息中包括消息ID;
所述第二節(jié)點(diǎn)檢查自己是否已收到與所述消息ID對(duì)應(yīng)的用于傳遞所述查詢請(qǐng)求的NORMAL消息;
如果所述第二節(jié)點(diǎn)在超時(shí)時(shí)間內(nèi)未收到與所述消息ID對(duì)應(yīng)的NORMAL消息,則執(zhí)行以下步驟:
所述第二節(jié)點(diǎn)生成用于修復(fù)所述P2P網(wǎng)絡(luò)系統(tǒng)的GRAFT消息;所述GRAFT消息包括所述消息ID和接收所述IHAVE消息的請(qǐng)求;
所述第二節(jié)點(diǎn)將所述GRAFT消息發(fā)送給所述第一節(jié)點(diǎn),并將所述第一節(jié)點(diǎn)從自身的Lazy List中移動(dòng)到Eager List中,使所述第一節(jié)點(diǎn)對(duì)所述P2P網(wǎng)絡(luò)系統(tǒng)進(jìn)行修復(fù);
如果所述第二節(jié)點(diǎn)在超時(shí)時(shí)間內(nèi)已收到與所述消息ID對(duì)應(yīng)的NORMAL消息,則執(zhí)行以下步驟:
所述第二節(jié)點(diǎn)計(jì)算IHAVE消息的接收跳數(shù)與NORMAL消息的接收跳數(shù)差;
所述第二節(jié)點(diǎn)判斷所述跳數(shù)差是否超過跳數(shù)閾值;
若所述跳數(shù)差超過跳數(shù)閾值,所述第二節(jié)點(diǎn)對(duì)所述P2P網(wǎng)絡(luò)系統(tǒng)進(jìn)行修復(fù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述P2P網(wǎng)絡(luò)系統(tǒng)包括BroadcastTree協(xié)議、MsgTransferProt協(xié)議和PartialView協(xié)議,所述BroadcastTree協(xié)議負(fù)責(zé)P2P網(wǎng)絡(luò)系統(tǒng)的維護(hù)工作;所述MsgTransferProt協(xié)議負(fù)責(zé)查詢消息的廣播和查詢結(jié)果的驗(yàn)證傳遞;所述PartialView協(xié)議負(fù)責(zé)管理每個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn),所述鄰居節(jié)點(diǎn)包括父節(jié)點(diǎn)和孩子節(jié)點(diǎn);其中,所述Active List位于P2P網(wǎng)絡(luò)系統(tǒng)的PartialView協(xié)議中,所述PartialView協(xié)議還包括消極列表Passive List,所述Passive List中存放的是隨機(jī)節(jié)點(diǎn),用于替換Active List中斷開連接的節(jié)點(diǎn),保證節(jié)點(diǎn)和所述P2P網(wǎng)絡(luò)系統(tǒng)的連接。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,每個(gè)節(jié)點(diǎn)中包括第一Map緩存、第二Map緩存以及第三Map緩存,第一Map緩存是ReceivedMsgMap,存放的是消息ID和消息的映射,用來緩存當(dāng)前已經(jīng)收到的消息,以便于響應(yīng)其他尚未收到該消息的節(jié)點(diǎn)對(duì)該消息的請(qǐng)求;
所述第二Map緩存是NotReceivedMsgMap,緩存的是消息ID和發(fā)送該消息的節(jié)點(diǎn)的映射;當(dāng)達(dá)到指定的時(shí)長(zhǎng)時(shí),仍未收到Eager List中的節(jié)點(diǎn)發(fā)送的該消息,觸發(fā)Timer定時(shí)器,用于向發(fā)送該消息的節(jié)點(diǎn)請(qǐng)求該消息,并修復(fù)所述P2P網(wǎng)絡(luò)系統(tǒng);
所述第三Map緩存是TimingCacheMsgMap,負(fù)責(zé)緩存當(dāng)前收到的消息,如果在指定的時(shí)間范圍內(nèi)收到Lazy List中的節(jié)點(diǎn)發(fā)送的消息,比較兩者的跳數(shù)來決定是否優(yōu)化所述P2P網(wǎng)絡(luò)系統(tǒng)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京大學(xué),未經(jīng)北京大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911033551.7/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 帶有前處理和后處理的數(shù)據(jù)庫(kù)復(fù)合查詢系統(tǒng)及方法
- 數(shù)據(jù)庫(kù)查詢的方法和系統(tǒng)
- 查詢系統(tǒng)、查詢終端以及查詢方法
- 交易信息查詢方法、查詢裝置及查詢系統(tǒng)
- 數(shù)據(jù)查詢與結(jié)果生成方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 在RDF數(shù)據(jù)集上進(jìn)行OPTIONAL查詢的方法及存儲(chǔ)介質(zhì)
- 一種多表關(guān)聯(lián)查詢方法、裝置及設(shè)備
- 一種基于Impala的查詢方法和裝置
- 從查詢生成子查詢
- 一種基于通用查詢語(yǔ)言的查詢方法及查詢系統(tǒng)
- 一種數(shù)據(jù)庫(kù)讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





