Fallacies of distributed computing
在Hbase的官方文檔中發現這篇《分佈式開發的謬論》文章的連接 ,看了一下覺的都講到了每一個分佈式項目可能會遇到的痛點,很贊。php
「分佈式計算是很難的,作一個分佈式系統須要不少軟硬件和網絡的技能。你的集羣能夠會由於各式各樣的錯誤發生故障。好比HBase自己的Bug,錯誤的配置(包括操做系統),硬件的故障(網卡和磁盤甚至內存) 若是你一直在寫單機程序的話,你須要從新開始學習。」web
The fallacies are:[1] 謬論總結以下:安全
- The network is reliable.網絡是可靠的
- Latency is zero.延遲爲0
- Bandwidth is infinite.帶寬是無限的
- The network is secure.網絡是安全的
- Topology doesn't change.拓撲結構不會改變
- There is one administrator.至少有一個管理員
- Transport cost is zero.傳輸無需任何代價
- The network is homogeneous.全部的網絡都是同質的
The effects of the fallacies[edit] 謬論致使的後果
- Software applications are written with little error-handling on networking errors. During a network outage, such applications may stall or infinitely wait for an answer packet, permanently consuming memory or other resources. When the failed network becomes available, those applications may also fail to retry any stalled operations or require a (manual) restart.當網絡出現異常軟件應用會進行錯誤處理。在網絡中斷期間,這些應用程序可能會出現延遲或者阻塞等待響應包,這樣會持續的的消耗內存或其餘資源。當網絡異常恢復,這些應用程序也可能沒法重試任何停滯的操做,可能須要(手動)重啓
- Ignorance of network latency, and of the packet loss it can cause, induces application- and transport-layer developers to allow unbounded traffic, greatly increasing dropped packets and wasting bandwidth.無視網絡延遲以及由延遲引發的報文丟失,會致使應用及傳輸層開發人員容許不受控的傳輸,從而極大增長丟失的報文數目和帶寬浪費.
- Ignorance of bandwidth limits on the part of traffic senders can result in bottlenecks over frequency-multiplexed media.發送端忽視帶寬限制會致使頻率複用介質的傳輸瓶頸
- Complacency regarding network security results in being blindsided by malicious users and programs that continually adapt to security measures.[2]過分相信網絡的安全性會致使沒法覺察到惡意用戶的入侵,從而沒法及時採施
- Changes in network topology can have effects on both bandwidth and latency issues, and therefore similar problems.網絡拓撲結構的變化可能會影響帶寬和潛在的問題,或所以的相似的問題
- Multiple administrators, as with subnets for rival companies, may institute conflicting policies of which senders of network traffic must be aware in order to complete their desired paths.多個管理員,如同與競爭對手公司的子網可能互相沖突,其中網絡流量的發件人必須認識到爲了完成所需的路徑
- The "hidden" costs of building and maintaining a network or subnet are non-negligible and must consequently be noted in budgets to avoid vast shortfalls.建設和維護一個網絡的潛在成本是不容小覷的,並且還必須劃出一筆預算來預防大範圍網絡失效
- If a system assumes a homogeneous network, then it can lead to the same problems that result from the first three fallacies.若是一個系統是同質均勻的網絡,那麼它會致使一樣的問題,如同謬論一到三