推荐几篇工业界分布式系统设计的论文.
1. Google 经典的 "三驾马车"
- The Google File System (2003)
- MapReduce: Simplified Data Processing on Large Clusters (2004)
- Bigtable: A Distributed Storage System for Structured Data (2006)
最早发表的 GFS 论文 (2003) 到现在 (2019) 已经 16 年了. 这三篇论文可以说是工业界, 开源界分布式系统的启蒙者. 之后的 Hadoop 系列开源软件 HDFS,MapReduce,Hbase 都是参考这三篇论文设计的.
2. Amazon 的 Dynamo (高可用, 最终一致的分布式 KV)
Dynamo: Amazon's Highly Available Key-value Store (2007)
和 Bigtable 差不多同一时期, Amazon 发表了 Dynamo 这篇论文. 个人觉得这篇论文非常经典, 绝对值得一读. 从 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 内部是如何在 Bigtable 上 "打补丁", 直到后来 Spanner 的出现.
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 并且支持分布式事务;
F1 则专注计算层, 是一个分布式 SQL 引擎.
Spanner: Becoming a SQL System (2017)
后来, Spanner 开始自己实现 SQL 层.(感觉是要替代掉 F1.)
F1 Query: Declarative Querying at Scale (2018)
F1 为了不让自己被干掉, 将自己重新定位成 Google 内部统一的查询引擎, 包括 OLTP 和 OLAP. 底层数据源也不只是适配 Spanner.
Spanner 和 F1 论文的发布, 开启了 NewSQL 世界的大门. 个人感觉这 21 世纪以来到现在, Google 几乎成了是工业界分布式系统的 "风向标"...... 著名的两个开源 NewSQL,TiDB https://github.com/pingcap/tidb 和 CockroachDB https://github.com/cockroachdb/cockroach 都是 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) https://1drv.ms/b/s!As90tzptTSB3g3kUDUVDwqm9rmAM
Aurora 也是一个非常经典的存储系统 -- 设计的目标是云原生数据库.
来源: http://www.jianshu.com/p/1b9ba08e4b6c