分散式存儲系統演進
//未完待續
GFS: The Google File System SOSP03
http://www.eecg.toronto.edu/~ashvin/courses/ece1746/2003/reading/ghemawat-sosp03.pdf
需求:要存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
https://www.usenix.org/legacy/event/osdi10/tech/full_papers/Beaver.pdf
需求: 260M圖片數據,20PB級數據,每秒1M查詢QPS,每個數據只會寫入一次、讀操作頻繁、從不修改、很少刪除
設計關鍵: 元信息放進內存,高吞吐量和低延遲,容錯,高性價比,簡單
替換Facebook的圖片存儲系統就像高速公路上給汽車換輪子,我們無法去追求完美的設計,這會導致實現和維護都非常耗時耗力。Haystack是一個新系統,缺乏多年的生產環境級別的測試。我們花費了很多的注意力來保持它
的簡單,所以構建和部署一個可工作的Haystack只花了幾個月而不是好幾年。
Spanner: Google』s Globally-Distributed Database OSDI-12
https://www.usenix.org/conference/osdi12/technical-sessions/presentation/corbett
// TODO
推薦閱讀:
TAG:分散式存儲 |