分散式網路是否可靠?

banq發表於2013-06-26
來自The network is reliable一文闡述當前發生在業界的一場有關分散式系統是否可靠的討論。

正方觀點是網路是可靠的,沒有必要那麼專注於失敗恢復設計,而另外一方認為網路分割槽應該儘可能少,它引起的問題比預期要多。
這場討論將從根本上影響分散式資料庫、佇列、應用程式的走向。到底誰是正確的?

最大問題是缺乏證據,目前我們所知道的分散式網路基本來自技術人員喝啤酒時的飯後茶餘的談資,大部分來自猜測和傳言,不真實。

下面蒐集來自各大著名網路中心的資料:
一隊來自加拿大多倫多大學和微軟研究院的研究:有關在一些微軟的資料中心網路出現故障的行為 。 他們發現,平均每天5.2個裝置和40.8個連線數的故障率,平均修復時間約5分鐘(一個星期)。 雖然研究人員注意到,相關的鏈路故障和通訊分割槽是具有挑戰性的,他們估計每次故障平均丟包59,000包。 也許更擔心的是他們發現,網路冗餘只能提高43%的流量,網路冗餘並不能消除許多常見的網路故障。

在美國加州大學,聖迭戈和惠普實驗室的研究人員之間的一項聯合研究投票,有關惠普的管理網路的網路故障的原因和嚴重程度: “連線問題”相關的投票佔11.4%的支援票(14%為最高優先順序),最高優先順序的時間為2小時45分鐘,平均時間為4小時18分鐘。

谷歌小胖是谷歌的分散式鎖管理器,在700天中超過61天停運,。 九次停運大於30秒,四次是網路維護,兩次是由於“可疑的網路連線問題造成的。”

.....

原文還列舉了亞馬遜和雅虎和GitHub的大型網路問題,總結出分散式系統是很難的。

然後詳細研究了PostgreSQL, Redis, MongoDB 和 Riak等有關分割槽冗餘方面技術細節,有興趣者可檢視原文。


相關文章