推薦幾篇工業(yè)界分布式系統(tǒng)設(shè)計的論文。
1. Google 經(jīng)典的“三駕馬車”
The Google File System (2003) MapReduce: Simplified Data Processing on Large Clusters (2004) Bigtable: A Distributed Storage System for Structured Data (2006)
最早發(fā)表的 GFS 論文(2003)到現(xiàn)在(2019)已經(jīng) 16 年了。這三篇論文可以說是工業(yè)界、開源界分布式系統(tǒng)的啟蒙者。之后的 Hadoop 系列開源軟件 HDFS、MapReduce、Hbase 都是參考這三篇論文設(shè)計的。
2. Amazon 的 Dynamo (高可用、最終一致的分布式 KV)
Dynamo: Amazon’s Highly Available Key-value Store (2007)
和 Bigtable 差不多同一時期,Amazon 發(fā)表了 Dynamo 這篇論文。個人覺得這篇論文非常經(jīng)典,絕對值得一讀。從 Dynamo 和后來的 Aurora,可以看出 Amazon 做出來的東西都非常有自己的特色。
3. Google 的 Percolator 和 Megastore
Large-scale Incremental Processing Using Distributed Transactions and Notifications (2010) Megastore: Providing Scalable, Highly Available Storage for Interactive Services (2011)
通過這兩篇論文,看看 Google 內(nèi)部是如何在 Bigtable 上“打補丁”,直到后來 Spanner 的出現(xiàn)。
4. Google 的 Spanner 和 F1 。
Spanner: Google’s Globally-Distributed Database (2012) F1: A Distributed SQL Database That Scales (2013) Online, Asynchronous Schema Change in F1 (2013)
最開始的時候,Spanner 和 F1 分工合作: Spanner 專注存儲層,是一個高可用的分布式 KV并且支持分布式事務(wù); F1 則專注計算層,是一個分布式 SQL 引擎。
Spanner: Becoming a SQL System (2017)
后來,Spanner 開始自己實現(xiàn) SQL 層。(感覺是要替代掉 F1。)
F1 Query: Declarative Querying at Scale (2018)
F1 為了不讓自己被干掉,將自己重新定位成 Google 內(nèi)部統(tǒng)一的查詢引擎,包括 OLTP 和 OLAP。底層數(shù)據(jù)源也不只是適配 Spanner。
Spanner 和 F1 論文的發(fā)布,開啟了 NewSQL 世界的大門。個人感覺這 21 世紀以來到現(xiàn)在,Google 幾乎成了是工業(yè)界分布式系統(tǒng)的“風向標”……著名的兩個開源 NewSQL,TiDB 和 CockroachDB 都是 inspire by Spanner 和 F1。
5. Amazon 的 Aurora
Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases (2017) Amazon Aurora: On Avoiding Distributed Consensus for I/Os, Commits, and Membership Changes (2018)
Aurora 也是一個非常經(jīng)典的存儲系統(tǒng)——設(shè)計的目標是云原生數(shù)據(jù)庫。
浙公網(wǎng)安備 33010602011771號