雜湊式複本位置服務
3.4 在雜湊式複本位置服務下的Chord協定影響 .1 資料的搜尋
原本資料的搜尋是依據查找指向表的方式來做搜尋,方向為順時針的方向搜尋而次 數最大為𝑙𝑜𝑔2𝑁,而雜湊式複本位置服務下則是在搜尋之前新增了複本金鑰的判斷。
圖 19 基於 Chord 協定在雜湊式複本位置服務下的資料搜尋
如圖19以搜尋K54的正本、r = 2為例,在搜尋之前會運算複本金鑰得知為RK22,再 去判斷K54跟RK22哪一個以N8為起點順時針來看距離最近,由此可知RK22為距離最近
由N18得知RK22位於N32,最後在N32上找到RK22複本取得K54的資料。
用此方法可以減少跳躍的次數,假設複本加正本的數目為r,總點數為N,那麼Chord 環將被分成r個部分,因此每個部分含有 𝑁𝑟 個點,所以我們每次使用指向表最多只需跳 躍𝑙𝑜𝑔2( 𝑁𝑟 ),平均跳躍步數大約為:
1
2 𝑙𝑜𝑔2( 𝑁𝑟 ) (3.3)
3.4.2 點的新增
圖 20 基於 Chord 協定在雜湊式複本位置服務下的點的新增
在原本Chord協定之下。以新增前一個點為例,點的新增只需移動部分正本至新的 點上;而在Globus複本位置服務下,如果在後x個點有複本,那就需要通知第x個點移除 部分複本,同理如果在前y個點有複本,就需要通知第y個點移除部分複本(章節2);而在 雜湊式複本位置服務下,只需移動正本與複本,移動複本的條件與正本一致,檢查哪些 金鑰位於新的點的儲存資料的索引值範圍內,而其他的點則不受資料變動的影響。
如圖20新增N4,所以N8裡複本金鑰在RK2到RK4範圍裡的資料將會移動,因此複本
RK4跟RK2將會移動到N4,原本N8裡的RK4跟RK2將會刪除,保持資料儲存的正確性,
而N1裡的資料將不會有所變動,被影響的點僅僅為N8。
3.4.3 點的刪除
點的刪除有分成兩種,一種是經由正常程序把資料移到其他點繼續維護,然後再結 束點的運作;另外一種則是無預警的點失效,導致資料無法搬移,需要由其他點來恢復,
以下就用這一種狀況做討論。
在原本Chord協定下點的失效久等於導致資料直接遺失,因此無法做資料的維護,
為原本Chord協定的缺點之一;而在Globus複本位置服務下,當前一個點失效時,如果 在後x個點有複本,那就需要通知第x個點新增部分複本,同理如果在前y個點有複本,
就需要通知第y個點新增部分複本(章節2);而在雜湊式複本位置服務下,當有點失效時,
只需對後點新增部分複本,而且會經由維護複本函式自行恢復。
如圖21點N4刪除時,N8會接收到N56、N38維護正本K4和N51、N38維護複本RK2,
當任一點執行維護複本函式發現資料不存在時,變會自動複製一份,維持資料可靠性。
圖 21 基於 Chord 協定在雜湊式複本位置服務下的點的失效
第四章
c. 點的數量為: 640、1280、2560、5120、10240 2. 正複本相關a. 正本和複本總數: 4、8、16 3. 機率分佈
a. 點:均勻分佈
b. 各點存取:均勻分佈
使用的開發工具為 Visual Studio Ultimate 2012,作業系統為 Windows 7 64 bit,
CPU 為 Intel Core i5-3470 3.2GHz,記憶體為 24 GB 。
4.1 資料搜尋的平均跳躍數
在對等網路之下,由於點的數目龐大,因此如何快速的找到資料在哪,便是一個重 要的議題,在此小節會分析我們所提出來方法的資料搜尋速度並與之前方法做比較,討 論其優劣。