第三章、 系統設計
3.4 TF-MDS 錯誤處理流程
3.4.1 MDS Server 錯誤處理
如下表格 1 所示,對於 MDS Server 而言,所有可能發現的斷線 組合,我們將針對當發生斷線錯誤時,FT-MDS 將如何處理這些意外 狀況,並且讓系統持續提供服務。
表格 1 MDS Server 連線錯誤表
Database Super Seeder MDS Client
MDS Server X X X
MDS Server X X O
MDS Server X O X
MDS Server X O O
MDS Server O X X
MDS Server O X O
MDS Server O O X
MDS Server O O O
3.4.1.1 MDS Server
Super Seeder 之間保持的通訊連線斷線,
將會馬上發現,等待 MDS Server 一段時間而無法恢 Super Seeder 會連線至自己所具有的
發生當機狀況,或是失去了所有的連線,如下圖
之間保持的通訊連線斷線,Super 一段時間而無法恢 會連線至自己所具有的 MDS
Server List 第二個順位的 3. 當發生 MDS Server
Server 要求 MDS Client List 連線至自己的
MDS Server 斷線後,MDS Client 再下一次向 MDS Client List 時將會發現無法連線,此時會 連線至自己的 MDS Server List 第二個順位的 MDS Server
失去連線的 MDS Server 在一段時間後,若恢復連線時,則
回復連線後處理流程如下 1. 重新啟動 MDS Server
2. 連線至資料庫,將自己之前所寫下而未清空的 以及 MDS Client
3.4.1.2 MDS Server
當 MDS Server 發生連線異常,
連線正常,如下圖
3-圖
23
處理流程如下:
MDS Server 或解除失去連線因素。
連線至資料庫,將自己之前所寫下而未清空的 Super Seeder MDS Client 資訊清除。
MDS Server 只有跟資料庫連線
發生連線異常,MDS Server 只剩下與資料庫的 -10 所示:
3-10 MDS Server 只跟資料庫連線
Super Seeder
只剩下與資料庫的
24
當發生此狀況時,處理流程如下:
1. 首先 Super Seeder 會發現無法與 MDS Server 連線。而連 線至自己的 MDS Server List 下一個順位的 MDS Server 進 行登入並且等待服務。
2. 而 MDS Server 也認為 Super Seeder 以及 MDS Client 的資 訊從資料庫中清除。
3. 接著 MDS Client 發現 MDS Server 無法連線之後,也連線 到自己的 MDS Server List 中的下一個順位 MDS Server 繼 續取得服務。
而此時的 MDS Server 會從資料庫中去取得別的可用 Super Seeder 資訊,當有新的 MDS Client 成功連線至此 MDS Server 時,
即可繼續提供服務。
3.4.1.3 MDS Server 只有跟 Super Seeder 連線
當 MDS Server 發生連線異常,MDS Server 只剩下與 Super Seeder 的連線正常,此時狀況如下圖 3-11 所示:圖 3-11
至自己的 MDS Server List 續等待提供服務。
25
11 MDS Server 只跟 Super Seeder 連線
此狀況的處理流程如下:
MDS Server 無法連線到資料庫時,由於無法取得下 載檔案的檔案簽章,無法確認此次將提供何種版本或是何種 檔案的下載服務,此時 MDS Server 將發送斷線資訊給
以及 MDS Client。
Super Seeder 收到 MDS Server 斷線訊息,則重新連線 MDS Server List 中的下一個順位 MDS Ser
續等待提供服務。
3. MDS Client
線機制,對 MDS Server List 測試而登入別的
3.4.1.4 MDS Server
當 MDS Server 發生連線異常,
Client 的連線正常,如下圖
圖 3-12
26
收到 MDS Server 的斷線訊息後,則回到重新連 MDS Server List 中的所有 MDS Server
測試而登入別的 MDS Server。
MDS Server 只有跟 MDS Client 連線
發生連線異常,MDS Server 只剩下與
,如下圖 3-12 所示:
12 MDS Server 只跟 MDS Client 連線
的斷線訊息後,則回到重新連 MDS Server 作負載
連線
只剩下與 MDS27
此狀況的處理流程如下:
1. 由於 MDS Server 發現無法與資料庫連線,並且失去與 Super Seeder 的連線,所以 MDS Server 發送斷線訊息給所有跟它 連線的 MDS Client,以確保 MDS Client 可以拿到最新的 MDS Client List 達到良好的傳輸品質。
2. Super Seeder 無法連線到 MDS Server 後,則向自己的 MDS Server List 中的下一個順位 MDS Server 進行連線並且繼續 等待提供服務。
3. MDS Client 收到 MDS Server 的斷線訊息後,則重新回到登 入狀態,向自己的 MDS Server List 中的所有 MDS Server 作負載的測試,並且登入繼續取得服務。