2007-03-16

Distributed System Challenges

(晚上被案主以及老友騷擾,原本想閒散的晚上就這樣沒了。睡覺前於心不安(尤其是看到 blog 的 comment... [炸]),於是打開課本隨手翻翻。看到第一章的這個環節,覺得有必要寫個籠統的亂譯 + 筆記。

那就來開打吧... \囧/

分散式系統的挑戰:
  • 異質性(Heterogeneity)
  • 公開性(Openness)
  • 安全性(Security)
  • 拓展性(Scalability)
  • 錯誤控制(Failure handling)
  • 同步(Concurrency)
  • (Transparency)
異質性的環節在於:要允許不同規格的硬體規格、OS、網路結構(當然,如果舉 Internet 為例子,最終還是得靠 TCP/IP 家族的 protocol 來溝通。這指的是比 IP 更低層的網路),甚至不同的 PL 以及不一致的 pr 實做,都能夠一起運作的很快樂。解決之道應該還是 Layer, Liar 的方式,然後要大家在某一層一致的遵守某個 spec,或是轉換成某個 spec。

開放性,其實對我來說,就是異質性的反向講法。所以跳過。

安全性... 應該不是這本書的重點(都可以另外寫好幾本書了 XD),只是觀念的話,也跳過。

拓展性,這裡提到了幾個關於這點的挑戰:
  • 控制實體資源的成本:「表面上添機器就能解決問題,實際上不然」說得好,不過實情還是等到第八章再說 \囧/
  • 控制效能的流失:最後一句說「如果一個系統要有拓展性,那麼效能的流失必須小於 O(log(n))」,這... 好像怪怪的...
  • 防止軟體資源用盡:舉 IPv4,實在是很好卻也很對不起當年 designer 的例子。以前江老師說:「要是當年 IP 是台灣人設計的,那大概五年之後就把 ip address 用光得改版了,2^32 次方已經算是天文數字了啊......」
  • 避免效能瓶頸
錯誤控制,好像沒啥值得特別一提的:錯誤的偵測、掩飾、容忍、修復... 幾乎跟 deadlock 一樣(廢話,deadlock 也算是一種在 OS 上出現的錯誤啊...),真希望看到一些新的招數 XD。另外 Masking Failures 的第二項不就是 Redundancy 嗎?是作者畫蛇添足 or 是我理解錯誤?

同步問題... 跳過。

我放棄把 Transparency 翻譯成中文。對我來說,transparency 也還是 Layer, Liar 的另一種講法(啊不就是用的人不用真正知道些什麼,還是可以用得很快樂 \囧/)。而這本書似乎是想要以此作為前頭六項的終極目標 or 總結。嗯... 這樣子是也還不錯啦... 不過當看完異質性的部份,應該就能了解 transparency 了,不是嗎? [抓頭ing]

好了,終於看完第一章了,從 03.12 寫到現在,還真 xx 的沒效率。

下面是縮寫區:
CORBA = Common Object Request Broker Architecture(課本 p.17 少了 A 的全文)
RMI = Remote Method Invocation
RFC = Requests For Comments