Pastry是由微軟倫敦康橋軟體研究所所提出的點對點搜尋演算法,Pastry點對點系統與Chord 點對點系統都是利用環狀邏輯拓樸架構來設計的點對點網路架構。
Pastry 系統也是利用兩個不同的雜湊函數將節點IP 與檔案轉換成128-bit的節點代碼與檔案代碼,而每個節點也有路由表(routing table)來記錄節點的代碼與檔案代碼間對應關係的資料,如下圖所示。為了達到快速搜尋的目的,Pastry 系統節點的路由表將所記錄的節點分為Leaf set、Routing table 以及Neighborhood set 三個部分。
其中,Leaf set 所記錄的為與節點所相鄰的節點代碼,而Neighborhood set 所儲存的資訊為相近的節點代碼。當需要搜尋檔案時,每個節點會先搜尋比對是否在Leaf set 或是Neighborhood 內。而Routing table 所記錄的資訊為與節點代碼有相同前置碼(prefix)的節點。下圖所示的節點路由表為節點代碼10233102 的路由表。
當Pastry 在做檔案搜尋時,會先判斷所要尋找的節點是否在Leaf set 或是Neighborhood set 中。如果存在則可以馬上找到檔案存在的節點。如果沒有在Leaf set 或是Neighborhood set 中,則透過Routing table中的前置碼,找出最接近的的節點,再從所找出最接近的節點繼續搜尋。
沒有留言:
張貼留言