標籤:

分散式存儲系統演進

//未完待續

GFS: The Google File System SOSP03

eecg.toronto.edu/~ashvi

需求:要存300TB級別的數據,會被數百個clients調用. 當時的常見的磁碟是80GB的HDD,也就是說3750塊磁碟。

設計關鍵:把硬體壞當成常態,單master,64MB大塊

Google 設計 gfs 最初的目的是為了存儲海量的日誌文件以及網頁等文本信息,並且對其進行批量處理(例如配合 mapreduce 為文檔建立倒排索引,計算網頁 PageRank 等)。和結構化存儲系統相比,雖然分散式文件系統的可擴展性,吞吐率都非常好,但是幾乎無法支持隨機訪問(random access)操作,通常只能進行文件進行追加(append)操作。而這樣的限制使得非結構化存儲系統很難面對那些低延時,實時性較強的應用。

Bigtable: A Distributed Storage System for Structured Data. OSDI-06

Bigtable: A Distributed Storage System for Structured Data.

// TODO

半結構化存儲 (semi-structure storage systems)的提出便是為了解決結非構化存儲系統隨機訪問性能差的問題。NoSQL 系統既有分散式文件系統所具有的可擴展性,又有結構化存儲系統的隨機訪問能力 (例如隨機update, read 操作),系統在設計時通常選擇簡單鍵值(K-V)進行存儲,拋棄了傳統 RDBMS 里複雜 SQL 查詢以及 ACID 事務。這樣做可以換取系統最大的限度的可擴展性和靈活性。

Haystack: Finding a needle in Haystack: Facebook』s photo storage OSDI-10

usenix.org/legacy/event

需求: 260M圖片數據,20PB級數據,每秒1M查詢QPS,每個數據只會寫入一次、讀操作頻繁、從不修改、很少刪除

設計關鍵: 元信息放進內存,高吞吐量和低延遲,容錯,高性價比,簡單

替換Facebook的圖片存儲系統就像高速公路上給汽車換輪子,我們無法去追求完美的設計,這會導致實現和維護都非常耗時耗力。Haystack是一個新系統,缺乏多年的生產環境級別的測試。我們花費了很多的注意力來保持它

的簡單,所以構建和部署一個可工作的Haystack只花了幾個月而不是好幾年。

Spanner: Google』s Globally-Distributed Database OSDI-12

usenix.org/conference/o

// TODO

推薦閱讀:

TAG:分散式存儲 |