• 沒有找到結果。

動態環境模擬 動態環境模擬 動態環境模擬 動態環境模擬

圖 4-1:Top-down model

4.1.2 4.1.2 4.1.2

4.1.2 動態環境模擬 動態環境模擬 動態環境模擬 動態環境模擬

在動態網路環境中,節點的加入與離線會改變部分環狀結構的成員相對關係,

我們希望不管在環狀結構的建構過程或是維護階段都能保持整體結構不至於有斷 裂的情形發生。在建立環狀結構的階段,一開始加入第一個節點到系統中時,環 狀結構上的成員只有一個節點,也只有第一階層的左右指標,且皆指向自己;當 第二個節點欲加入時,根據加入演算法決定新加入的節點在環狀結構中的位置,

以插隊的方式加入到已在環狀結構上的成員中間,並且新節點設定自己第一階層 的指標指向左右兩邊的節點,同時也通知左右兩邊的節點調整第一階層的指標,

之後新節點開始建構自己的繞路表,如同第三章所描述。當節點的離線使繞路表 過時,利用定期修正每個節點的繞路表來解決因節點離線或節點非預期錯誤造成 的問題。

為了模擬動態的節點行為,我們利用實際的資料[38]來分配節點的上線時間

4 圖 4-1 來源: A. Medina, A. Lakhina, I. Matta, and J. Byers. BRITE: Universal Topology Generation from a User’s Perspective

- 44 -

(session time),當節點加入到 Donuts 時,我們就為它分配一個上線時間,當上 線時間倒數到零該節點就離線,[38]觀察實際 Napster 與 Gnutella 網路資料,發 現上線時間的累積分布函數(CDF)如圖 4-2 所示。圖 4-2 中的觀測時間是 720 分鐘,

我們令 T 代表觀測時間區間,每段上線時間則是 T 乘上對應的百分比。利用[38]

的資料我們可以計算出上線時間的機率分布函數(PDF),當一個節點加入系統中,

根據上線時間的機率分布函數得到一個機率值 δ,依照模擬器需要模擬的時間可 計算出節點停留在系統中的時間。依據圖 4-2 的累積分布函數可計算出平均上線 時間為 0.195T,在我們的模擬實驗裡,定義節點的平均上線時間為 36000 個時間 單位,模擬器裡每推進一個時間單位代表時間經過 6 秒鐘,平均上線時間則為 60 小時,模擬器可依照實驗的需求去更動模擬的總時間單位,分配的方式仍是以同 樣的機率分布函數去配置。

5

圖 4-2:CDF of system session lengths

在每一次的模擬當中,必須建立並維護一個大小為 N 的環狀結構。首先我們 讓前 100 個節點以每個時間單位加入一個節點的方式依序加入到系統中,為了讓 剛開始的基礎環狀結構保持高度完整性,在這 100 個節點的加入過程中不允許有 節點離線;待大小為 100 的基礎環狀結構完成後,開始分配每個存在系統中的節 點的上線時間,並從時間單位 100 時開始倒扣上線時間,當上線時間歸零時該節

5 圖 4-2 來源: S. Saroiu, P. K. Gummadi, S. D. Gribble, “A Measurement Study of Peer-to-Peer File Sharing Systems”

點則離線,為了保持系統的穩固性,此時必須從離線的節點當中隨機挑選一個節 點重新加入到系統中,以維持系統中節點總數的平衡;在時間單位 100 之後,每 隔兩個時間單位加入一個新節點,若我們預計 Donuts 大約是 N = 5000 的環狀結 構,在時間單位 9900 時系統保持約有 5000 個節點的狀態,圖 4-3 是模擬器整個 模擬過程的示意圖。

物件的加入緊接在環狀結構建立完成之後,模擬器會從等待加入的物件集合 當中隨機挑選一個物件加入到系統中,物件集合是來自韋伯字典的英文字串,字 串總數為 235,118,每一個英文字代表一個物件,物件之間的相對關係則依照字母 順序由 A 排列至 Z,而每一個物件經過運算會得到一個不與其他物件重複的 Key 值,

物件的加入方法即是找到系統中負責保管此物件的節點,也就是節點的物件範圍 區間涵蓋 Key 值,則把該物件放置到此節點上,接著依照複製物件個數 γ 的參數 設定,當 γ 設為 2,物件會各複製一份到所屬節點的左右兩邊節點上。當物件開 始加入到系統中時,每個節點所負責的物件範圍區間皆相同,很明顯會有負載不 平衡的問題產生,也就是有些區間的物件會特別多,例如分配到母音字母開頭的 範圍區間,因此在加入物件的過程中,模擬器會一邊運作負載平衡演算法,鄰居 平衡演算法的參數 αNB設為 1.2、節點重排演算法的參數 αPR設為 2.0,βNB與 βPR

皆設為 20,參數的設定參考[29],模擬器以 5000 個時間單位來完成所有物件的加 入,因此在 14900 時間單位的時候所有物件加入完成。

在物件都加入完成且系統中的節點總數達到穩定狀態時,我們開始做搜尋的 實驗。為了模擬搜尋的過程,我們必須挑選某些節點發出搜尋請求,挑選的方式

圖 4-3:Event-Driven Simulator

- 46 -

可隨機挑選、也可依照地域性選擇;至於被搜尋的物件由給定的詢問檔案中挑選 目標物件,挑選的方式一樣可以隨機挑選,另外也能依照受歡迎的程度、以 Zipf 分配的方式挑選,搜尋樣式即是由發搜尋的節點與目標物件搭配而成,模擬器提 供四種搜尋樣式的選擇,後文將做詳細介紹。

N Donuts 中的節點總數 5000

L Leafset 的大小 14

P 維護基礎環狀結構的時間間隔 30 秒

F 修正繞路資訊的時間間隔 180 秒

C 快取儲存區的大小 15

αNBNB 鄰居平衡演算法需要的參數 1.2,20 αPRPR 節點重排演算法需要的參數 2.0,20

表格 4-1:System Parameters

4.2 4.2 4.2

4.2 衡量指標 衡量指標 衡量指標 衡量指標

為了衡量搜尋的效能,我們定義搜尋所花費溝通成本的測量方法。假設 d 是 計算實體網路裡兩點間最短路徑所花費的溝通成本,若存在節點 u 與 v,d(u,v) 代表 u 到 v 該花費的最小溝通成本,d 的計算結果是固定且對稱的,d(u,v)與 d(v,u) 的結果是一樣的。當環狀結構上的某一節點 S 發出搜尋請求,經過 h 次的跳躍搜 尋最終在節點 D 找到目標物件,整個過程的搜尋成本計算方式是∑du, v,又 最終將目標物件由 D 傳給 S 需要回傳成本 d(S,D),每一個單獨的搜尋花費總成本 即是搜尋成本加上回傳成本,如圖 4-4 所示。

圖 4-4:Total Search Cost

我們令每一次的搜尋實驗發出 Qn個搜尋請求,平均搜尋成本即是

Search Cost&' ( ∑,)-+ d)*u, v

Q/

,而平均回傳成本則根據快取策略的不同有兩種回傳方式:若物件回傳方式是沿 搜尋路徑傳遞,則平均回傳成本與平均搜尋成本相同;若從搜尋物件所在節點直 接回傳,稱為平均直接回傳成本,計算方式如下

Return Cost&' ( ∑,)- d)S, D

Q/

,平均總成本是兩者相加:Total Costavg = Search Costavg + Return Costavg

若想計算平均每次搜尋在實體網路的搜尋路徑長,將 Search Costavg除以實體網路 的平均連結長即可。

Physical Search Hops&' ( Search Cost&' Physical Edge Length&'

4.3 4.3 4.3

4.3 搜尋與快取的效能 搜尋與快取的效能 搜尋與快取的效能 搜尋與快取的效能

為了評估 Donuts 支援搜尋的效能,我們設計了一些實驗模擬真實的整體點對 點網路搜尋行為。在每一回合的搜尋實驗中會產生 5000 個搜尋請求,被搜尋的物 件由一固定大小為 10000 個字的字串集合中挑選,為了保證搜尋的物件一定會在 環狀結構上,這 10000 個英文字由韋伯字典 235,118 個字中隨機挑選出來,而韋 伯字典所有的英文字皆按照字母順序依序分配到對應的環狀結構節點上。

模擬器除了原先支援的隨機搜尋樣式之外,我們額外增加了地域性來源與 Zipf 目標物件的組合。模擬器隨機挑選一個正在環狀結構上的節點當作發搜尋請 求的開端,欲搜尋的物件也是以隨機的方式從 10000 個字串集合中挑選,這種搜 尋樣式稱為隨機來源-隨機物件(RSRO);若來源的選擇仍是隨機挑選,而物件的選 法依照受歡迎的程度挑選之,越受歡迎的物件被搜尋的次數就越高,此種搜

- 48 -

圖 4-5:Simulate Locality-Source by Bernoulli Model

尋樣式為隨機來源-Zipf 物件(RSZO);當搜尋來源加入地域性的考量時,我們從地 理上較相近的特定節點當中挑選發搜尋請求的來源,越近的節點被挑選到的次數 會越多,而此時不考慮物件受歡迎的程度,這種搜尋樣式是地域性來源-隨機物件 (LSRO),反之若考慮物件受歡迎的程度,則是地域性來源-Zipf 物件(LSZO)。

地域性來源的模擬方式我們選用 Bernoulli 模型,首先隨機挑選一個節點當 作地標,計算所有其他節點到此地標的實體最短距離,並以此距離當作 Bernoulli 模型的影響變量;搜尋來源會先由距離最小的節點開始嘗試挑選,若挑選失敗則 嘗試挑選距離第二小的節點,依此類推直到挑選到為止。地域性區域依序為 100、

200、300、400 個節點時,這些節點發搜尋請求的頻率如圖 4-5 所示,當地域性區 域越小時,發大量搜尋請求的節點集中在少數相近的某些節點上,例如地域性區 域為 100 時,離地標最近的前 30 個節點發出了 2580 個搜尋請求,占總搜尋請求 的一半以上;地域性區域為 400 時,前 30 個相近的節點只發 1404 個搜尋請求,

因此,當我們希望發搜尋請求的節點越集中在以鄰近性演算法建構的環狀結構上 某個區段時,地域性區域的參數應該設越小越好。

模擬物件受歡迎的程度則是採用 Zipf 模型,我們將 N 個被挑選的可能物件以 Zipf 模型去分配物件受歡迎的程度,排名第 k 的物件被搜尋的頻率如下公式定義:

0 100 200 300 400 500

0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96

frequency

node index

L100 L200 L300 L400

圖 4-6:Simulate Zipf-Object by Zipf Model

6 來源:http://en.wikipedia.org/wiki/Zipf's_law Zipf’s law can be approximated with a Zipfian distribution, one of a family of related discrete power law probability distributions.

0

0 1 2 3 4 5 6 7 8 9 1011121314151617181920212223242526272829

Frequency

- 50 -

圖 4-7:Average Cache Hit of Leafset under different locality size

圖 4-8:Average Cache Hit of Leafset under different Zipf parameter 0

4.3.1 4.3.1 4.3.1

4.3.1 系統資料結構的影響 系統資料結構的影響 系統資料結構的影響 系統資料結構的影響

Chordal Ring 與 Skip Graph 都是適合做範圍查詢的系統資料結構,在第一個 實驗裡,首先檢測兩種系統資料結構在搜尋效能上的差異。Chordal Ring 的搜尋 是使用鄰近表的繞路資訊,Skip Graph 的搜尋則是查閱快捷表,在搜尋的過程中 不做任何快取處理;我們搭配前文提到的四種搜尋樣式、群組數與加入演算法的 不同來比較搜尋成本的差異,詳細數據如圖 4-5 所示,其中地域性的節點個數我 們設定為 500 個彼此相近的節點,實驗用一實體網路結構,在 RSRO 搜尋樣式底下 我們做了九個回合,我們發現 Skip Graph 花費的搜尋成本明顯比 Chordal Ring

Chordal Ring 與 Skip Graph 都是適合做範圍查詢的系統資料結構,在第一個 實驗裡,首先檢測兩種系統資料結構在搜尋效能上的差異。Chordal Ring 的搜尋 是使用鄰近表的繞路資訊,Skip Graph 的搜尋則是查閱快捷表,在搜尋的過程中 不做任何快取處理;我們搭配前文提到的四種搜尋樣式、群組數與加入演算法的 不同來比較搜尋成本的差異,詳細數據如圖 4-5 所示,其中地域性的節點個數我 們設定為 500 個彼此相近的節點,實驗用一實體網路結構,在 RSRO 搜尋樣式底下 我們做了九個回合,我們發現 Skip Graph 花費的搜尋成本明顯比 Chordal Ring