分散式系統 Distributed Systems_Chapter 01: Introduction_Week1筆記_part2

就Policies(政策) 或 Mechanisms(技術機制)各自實施作法比較
就Policies(政策) 
  • 我們需要對客戶端快取(client-cached)資料維持何種一致性層級?(What level of consistency)
  • 我們允許下載的程式碼執行哪些操作?(Which operations do we allow downloaded code)
  • 在面對不同頻寬時,我們會調整哪些服務品質(QoS)需求?(Which QoS requirements)
  • 我們要求通訊具備何種等級的保密性?(What level of secrecy)
就Mechanisms(技術機制)
  • Allow (dynamic) setting of caching policies
    允許(動態)設定快取政策
  • Support different levels of trust for mobile code
  • Provide adjustable Quality of Service (QoS) parameters per data stream
    針對每個資料流提供可調整的服務品質(QoS)參數
  • Offer different encryption algorithms
策略與機制越嚴格的話,我們就越需要確保適當的機制,也因此會進而導致管理上與配置上的參數會更複雜。硬編碼(Hard coding)策略通常以降低靈活性的代價來簡化管理並降低複雜性。

Scale in distributed systems (怎麼定義系統具有可擴展性?)
至少有三個面向的可擴展性需要考慮:
  1. 使用者數量與/或程序數量(Size scalability)
    系統能否隨著使用者或程序數量的增加而持續有效運作。
  2. 節點之間的最大距離(Geographical scalability)
    系統能否在節點分布於更廣泛的地理範圍時,仍維持合理的效能與一致性。
  3. 管理領域的數量(Administrative scalability)
    系統能否跨越多個獨立的管理領域(如不同組織或機構)而仍能協同運作。
需要明確說明系統在 規模、地理分布、管理領域 三個層面上如何應對挑戰。
絕大部分系統僅在「規模可擴展性(size scalability)」上有所考量,也就是隨著使用者或程序數量的增加,系統能否持續運作。
常見解法:使用多台高效能伺服器,並行且獨立地運作。(multiple powerful servers operating independently in parallel.)

當探討到Size scalability時,就需要回顧到傳統集中式解決方案在可擴展性上的根本問題。
Root causes for scalability problems with centralized solutions
  • 計算能力的限制(The computational capacity),受限於 CPU 的處理效能。
  • 儲存能力(storage capacity)的限制,包含 CPU 與磁碟之間的傳輸速率瓶頸。
  • 網路瓶頸,使用者與集中式服務之間的網路連線能力有限。

地理可擴展性(Geographical Scalability)的問題
  • 無法簡單地將系統從區域網路(LAN)擴展到廣域網路(WAN)。這是因為許多系統設計基於同步的客戶端-伺服器交互模式,即客戶端發送請求並等待伺服器回覆。
    然而,在 WAN 環境下,網路延遲可能過大,導致此種交互模式難以維持。
  • 由於廣域網路連線在本質上具有較高的不穩定性,若僅將設計於區域網路環境下的串流影音服務直接移植至廣域網路,極可能導致服務無法正常運作。
  • 缺乏多點傳播(multipoint communication)能力,因此無法直接使用簡單的廣播搜尋(search broadcast)。解決方案是開發獨立的命名服務(naming services)與目錄服務(directory services),但這些服務本身也會面臨可擴展性問題。
Problems with administrative scalability
衝突的政策:涉及使用(以及付款)、管理與安全等方面的政策往往彼此衝突。

例子:
  • 計算網格(Computational grids):在不同管理領域之間共享昂貴的資源。
  • 共享設備(Shared equipment):如何控制、管理並使用一個作為大規模共享感測器網路建構的射電望遠鏡(a shared radio telescope constructed as large-scale shared sensor network)?
例外 : Several peer-to-peer networks
在這些 P2P 系統中,是終端使用者彼此協作以維持系統運作,而非由管理實體來主導。
  • File-sharing systems (based, e.g., on BitTorrent)
  • Peer-to-peer telephony (Skype)
  • Peer-assisted audio streaming (Spotify)

Techniques for scaling(可擴展性的技術)
  • Hide communication latencies 隱藏通訊延遲
    Ex:使用非同步(asynchronous)通訊,為傳入回應設置獨立的處理程序。(但並非都適用此套模型做法)
  • Facilitate solution by moving computations to client 將計算移至客戶端來促進解決方案
  • Partition data and computations across multiple machines 
    將資料與計算分割到多台機器上
  • Replication and caching: Make copies of data available at different machines 
    複製與快取:在不同機器上提供資料副本
Scaling: The problem with replication(複製的問題)
套用複製技術本身並不困難,但有以下關鍵問題:
  • 多份副本(快取或複製)會導致不一致性。
    例如:當修改其中一份副本時,該副本就會與其他副本不同。
  • 若要在一般情況下保持所有副本一致,每次修改都需要進行全域同步(global synchronization)。
  • 全域同步(Global synchronization)會阻礙大規模(large-scale)解決方案的實現。

結論:
  • 規模可擴展性(Size scalability) 幾乎不是大問題,只需要花更多錢添購機器即可解決。
  • 管理可擴展性(Administrative scalability) 最困難,因為必須處理 非技術性問題,例如政治因素與人際協作。
  • 地理可擴展性(Geographical scalability)透過結合 分散(distribution)、複製(replication)、快取(caching) 技術,並搭配不同形式的一致性模型,可以達到可接受的解決方案。
Developing distributed systems: Pitfalls(陷阱誤區)
許多分散式系統不必要地變得複雜,原因在於早期設計錯誤,後續需要不斷修補。
常見的過於理想化且不真實的隱性錯誤前提假設(或是沒明確被意識到)如下:
  • 網路是可靠的(The network is reliable)
  • 網路是安全的(The network is secure)
  • 網路是同質的(The network is homogeneous)
  • 網路拓撲不會改變(The topology does not change)
  • 延遲為零(Latency is zero)
  • 頻寬是無限的(Bandwidth is infinite)
  • 傳輸成本為零(Transport cost is zero)
  • 只有一個管理者(There is one administrator)


留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

(2021年度)駕訓學科筆試準備題庫歸納分析_法規是非題

外貿Payment Term 付款條件(方式)常見的英文縮寫與定義