System Design - 4 : Distributed File System
用多台機器解決一台機器解決不了的問題
EX: QPS太大,DB儲存不夠了
Google: 多台機器組成分散式系統
Sun: 超級機器來解決這問題 --> Google 獲勝
Google 三劍客:
- GFS : 文件儲存系統
- Map-Reduce : 加速資料處理
- BigTable : NoSQL資料庫,用來溝通應用層和文件系統
文件系統 4S 分析
Scenario:
Requirements:
讀、寫的功能
大小 : 愈大愈好
可以多台機器組成的架構 (google 目前已有幾百萬台)
Service:
Client + Server 的服務
=> 該選擇哪一種的模式?
分散式 :
pros: no single-point-failure
cons: not consistent (bitcoin has)
master-slave:
pros: easy, consistent
cons: single-point-failure
就文件系統而言,用 master-slave 的好處大於分散式儲存,為就算有 single-point-failure,也可以重啟服務器,有一點點的資料流失是可以接受的。
觀念澄清:
DB 是一個應用程式,建立在儲存系統上,儲存系統可以是文件系統或是DISK。
像是 HBase(NoSQL) 是建立在 GFS上。