第二節(jié)點的部分路徑,所述部分路徑包括所述第一節(jié)點; 和 (2)所述第二節(jié)點的標識符;并且 (b)在附加的節(jié)點存儲庫處操作附加的處理器以: (i) 確定存儲在所述附加的節(jié)點存儲庫處的節(jié)點是否直接連接至所述部分路徑中的所 述第二節(jié)點和最后節(jié)點二者; (ii) 如果存儲在所述附加的節(jié)點存儲庫處的給定節(jié)點直接連接至所述部分路徑中的 所述第二節(jié)點和所述最后節(jié)點二者,則向所述搜索控制器傳送所請求的所述搜索的結(jié)果; (iii) 在所述一個或多個操作參數(shù)中的一個操作參數(shù)被觸發(fā)的情況下調(diào)節(jié)所請求的所 述搜索;以及 (iv) 如果沒有存儲在所述附加的節(jié)點存儲庫處的節(jié)點直接連接至所述部分路徑中的 所述第二節(jié)點和最后節(jié)點二者,則: (1) 向所述部分路徑添加存儲在所述附加的節(jié)點存儲庫處的、直接連接至所述部分路 徑的所述最后節(jié)點的至少一個節(jié)點; (2) 將所述搜索請求重新轉(zhuǎn)發(fā)至存儲有直接連接至所述至少一個節(jié)點的其它節(jié)點的一 個或多個附加的節(jié)點存儲庫;并且 (3) 重復(b)。8. 根據(jù)權(quán)利要求7所述的方法,其中: 轉(zhuǎn)發(fā)的所述搜索請求進一步包括標識時間段的存活時間參數(shù); 所述存活時間參數(shù)在從所述搜索控制器接收到所述搜索請求之后經(jīng)過所述時間段時 被觸發(fā);并且 所述存活時間參數(shù)的觸發(fā)使得所述搜索請求終止。9. 根據(jù)權(quán)利要求7或8所述的方法,其中: 轉(zhuǎn)發(fā)的所述搜索請求進一步包括標識跳數(shù)的最大跳計數(shù)參數(shù); 所述最大跳計數(shù)參數(shù)在所述部分路徑的長度與所述跳數(shù)相匹配時被觸發(fā);以及 所述最大跳計數(shù)參數(shù)的觸發(fā)使得所述搜索請求終止。10. 根據(jù)權(quán)利要求7至9中任一項所述的方法,其中所述搜索請求尋求對從所述第一節(jié) 點到所述第二節(jié)點的最短路徑的標識。11. 根據(jù)權(quán)利要求7至9中任一項所述的方法,其中所述搜索請求尋求對所述第一節(jié)點 和所述第二節(jié)點之間的路徑長度的標識。12. 根據(jù)權(quán)利要求7至11中任一項所述的方法,進一步包括在接收到所述搜索請求之 前在所述節(jié)點存儲庫中的每個節(jié)點存儲庫處: 存儲所述分布式圖的節(jié)點的子集,每個所存儲的節(jié)點包括: 直接連接至所存儲的節(jié)點的一個或多個其它節(jié)點的標識符;和 所存儲的所述節(jié)點的一個或多個屬性。13. 根據(jù)權(quán)利要求7至12中任一項所述的方法,其中在所述分布式圖包括連接一個節(jié) 點與另一節(jié)點的單條邊的情況下所述一個節(jié)點直接連接至所述另一節(jié)點。14. 根據(jù)權(quán)利要求7至12中任一項所述的方法,其中在單個節(jié)點存儲庫存儲有具有定 義一個節(jié)點和另一節(jié)點之間的路徑的邊的節(jié)點的集合的情況下所述一個節(jié)點直接連接至 所述另一節(jié)點。15. -種存儲有指令的非瞬態(tài)計算機可讀介質(zhì),所述指令在被處理器執(zhí)行時,使得所述 處理器執(zhí)行一種搜索由節(jié)點所分片的分布式圖的方法,所述方法包括: (a) 在存儲有所述分布式圖的第一節(jié)點的第一節(jié)點存儲庫處: (i) 從搜索控制器接收有關(guān)所述第一節(jié)點和第二節(jié)點的搜索請求; (ii) 確定所述第一節(jié)點是否直接連接至所述第二節(jié)點;并且 (iii) 如果所述第一節(jié)點未直接連接至所述第二節(jié)點,則將所述搜索請求轉(zhuǎn)發(fā)至存儲 有直接連接至所述第一節(jié)點的其它節(jié)點的一個或多個附加的節(jié)點存儲庫,轉(zhuǎn)發(fā)的所述搜索 請求包括: (1) 從所述第一節(jié)點到所述第二節(jié)點的部分路徑,所述部分路徑包括所述第一節(jié)點; 和 (2) 所述第二節(jié)點的標識符;并且 (b) 在附加的節(jié)點存儲庫處: (i) 確定存儲在所述附加的節(jié)點存儲庫處的節(jié)點是否直接連接至所述部分路徑中的所 述第二節(jié)點和最后節(jié)點二者; (ii) 如果存儲在所述附加的節(jié)點存儲庫處的給定節(jié)點直接連接至所述部分路徑中的 所述第二節(jié)點和所述最后節(jié)點二者,則向所述搜索控制器傳輸所請求的所述搜索的結(jié)果; (iii) 在所述一個或多個操作參數(shù)中的一個操作參數(shù)被觸發(fā)的情況下調(diào)節(jié)所請求的所 述搜索;以及 (iv) 如果沒有存儲在所述附加的節(jié)點存儲庫處的節(jié)點直接連接至所述部分路徑中的 所述第二節(jié)點和最后節(jié)點二者,則: (1) 向所述部分路徑添加存儲在所述附加的節(jié)點存儲庫處的、直接連接至所述部分路 徑的所述最后節(jié)點的至少一個節(jié)點; (2) 將所述搜索請求重新轉(zhuǎn)發(fā)至存儲有直接連接至所述至少一個節(jié)點的其它節(jié)點的一 個或多個附加的節(jié)點存儲庫;并且 (3) 重復(b)。16. -種用于搜索由節(jié)點所分片的分布式圖的系統(tǒng),包括: 控制器,所述控制器接收有關(guān)所述分布式圖的查詢;以及 多個節(jié)點存儲庫,每個節(jié)點存儲庫包括: 存儲裝置,所述存儲裝置包含所述分布式圖的多個節(jié)點; 一個或多個處理器;以及 存儲有指令的存儲器,所述指令在被所述一個或多個處理器執(zhí)行時,使得所述節(jié)點存 儲庫: 接收標識第一節(jié)點和第二節(jié)點的搜索請求; 搜索所述多個節(jié)點以搜尋所述第一節(jié)點和所述第二節(jié)點之間的直接連接; 如果所述多個節(jié)點包括所述第一節(jié)點和所述第二節(jié)點之間的直接連接,則向所述控制 器報告所述直接連接;并且 向一個或多個其它節(jié)點存儲庫直接傳播所述搜索結(jié)果。17. 根據(jù)權(quán)利要求16所述的系統(tǒng),其中所述存儲裝置進一步包括: 針對所述多個節(jié)點中的每個節(jié)點的一條或多條將所述節(jié)點連接至一個其它節(jié)點的邊。18. 根據(jù)權(quán)利要求16或17所述的系統(tǒng),其中所述存儲裝置進一步包括: 針對所述多個節(jié)點中的每個節(jié)點的一個或多個屬性。19. 根據(jù)權(quán)利要求16至18中任一項所述的系統(tǒng),其中: 所述搜索請求包括標識時間段的存活時間參數(shù); 所述存活時間參數(shù)在由所述控制器發(fā)出所述搜索請求之后經(jīng)過所述時間段時被觸發(fā); 并且 所述存活時間參數(shù)的觸發(fā)使得所述搜索終止。20. 根據(jù)權(quán)利要求16至19中任一項所述的系統(tǒng),其中: 所述搜索請求包括標識跳數(shù)的最大跳計數(shù)參數(shù); 所述最大跳計數(shù)參數(shù)在第一直接連接的長度滿足或超過所述跳數(shù)時被觸發(fā);并且 所述最大跳計數(shù)參數(shù)的觸發(fā)使得所述第一直接連接被丟棄。21. -種用于搜索由節(jié)點所分片的分布式圖的裝置,所述裝置包括: 一個或多個存儲有所述分布式圖的節(jié)點的節(jié)點存儲庫; 一個或多個處理器;以及 存儲有指令的存儲器,所述指令在被所述一個或多個處理器所執(zhí)行時,使得所述裝 置: 發(fā)出有關(guān)所述分布式圖的第一節(jié)點和第二節(jié)點的搜索請求;并且 在接收到所述搜索請求的每個節(jié)點存儲庫處: 搜索到所述第二節(jié)點的直接連接;并且 如果沒有在所述節(jié)點存儲庫處標識出到所述第二節(jié)點的直接連接,則: 延長所述第一節(jié)點和所述第二節(jié)點之間的部分路徑;以及 向至少一個其他節(jié)點存儲庫直接傳播所述搜索請求。22. 根據(jù)權(quán)利要求21所述的裝置,其中: 所述搜索請求包括標識時間段的存活時間參數(shù); 所述存活時間參數(shù)在由所述控制器發(fā)出所述搜索請求之后經(jīng)過所述時間段時被觸發(fā); 并且 所述存活時間參數(shù)的觸發(fā)使得所述搜索終止。23. 根據(jù)權(quán)利要求21或22所述的裝置,其中: 所述搜索請求包括標識跳數(shù)的最大跳計數(shù)參數(shù); 所述最大跳計數(shù)參數(shù)在第一直接連接滿足或超過所述跳數(shù)時被觸發(fā);并且 所述最大跳計數(shù)參數(shù)的觸發(fā)使得所述第一直接連接被丟棄。
【專利摘要】本發(fā)明的實施方式涉及用于搜索分布式節(jié)點分片圖的系統(tǒng)和方法。提供了一種用于搜索由節(jié)點所分片的分布式圖的系統(tǒng)、裝置和方法??刂破鹘邮毡WC或要求在起始節(jié)點處開始的寬度優(yōu)先搜索的查詢。該控制器向維護該起始節(jié)點的第一數(shù)據(jù)服務(wù)器發(fā)出搜索請求,其具有其它標準的標識符(例如,目的地節(jié)點)并且具有任何可應(yīng)用執(zhí)行參數(shù),該執(zhí)行參數(shù)可以使得該搜索提早結(jié)束或者可以使得一些結(jié)果被刪減。如果該第一數(shù)據(jù)服務(wù)器無法解析該請求,則其將該搜索傳播至存儲其它節(jié)點(例如,直接連接至該起始節(jié)點的節(jié)點)的一個或多個其它數(shù)據(jù)服務(wù)器,并且轉(zhuǎn)發(fā)該執(zhí)行參數(shù)以及其可能已經(jīng)生成的任意部分結(jié)果(例如,部分路徑)。那些數(shù)據(jù)服務(wù)器將對該搜索請求進行處理,向控制器返回響應(yīng)結(jié)果,和/或進一步傳播該請求。
【IPC分類】G06F17/30
【公開號】CN105022772
【申請?zhí)枴緾N201510104754
【發(fā)明人】A·尼加姆, 趙成柱
【申請人】鄰客音公司
【公開日】2015年11月4日
【申請日】2015年3月10日
【公告號】EP2937797A1, US20150302063, WO2015163955A1