分享一些分佈式相關課程和論文

640?wx_fmt=jpeg

這幾年工作下來,一大感受,就是分佈式系統這一塊其實沒有一個非常清晰的知識圖譜,更多的是遇到了不同的問題,給出了不同的解決方案。我覺得要打好基礎,還是要多讀讀原理性的文章,然後再結合現實中工程的項目來提升理論。


1. GFS。google三駕馬車之一,分佈式文件系統。毋庸置疑,這應該是分佈式系統領域最經典的文章,幾乎所有分佈式、存儲和大數據相關的topic都要提到它。
2. BigTable。google三駕馬車之一,經典的分佈式key/value store。我的理解這類應用爲一個簡化版的數據庫。在實現上類似於操作系統的多級頁表。
3. MapReduce。分佈式計算框架。也是google三駕馬車之一。把所有的分佈式操作抽象成Map和Reduce兩類,使得編程非常簡單。只需要實現這兩個接口就行了。這應該是最早地最有影響力的提出了分佈式計算框架,把程序員從裸寫mpi程序中解放出來。
4. Spark。分佈式計算框架。現在也是大數據時代的寵兒,應該和MapReduce是應用的最廣的兩個計算框架了。MapReduce每一輪迭代都是在硬盤上,Spark是在內存中,所以速度可能快上兩個數量級。


這裏先推薦2個入門課程,MIT 6.824講了分佈式系統相關的基礎,會佈置大量的論文閱讀,實驗部分使用golang實現了Raft協議。CMU 15-721講數據庫實現的基礎和關鍵技術,也會有大量論文閱讀


1. https://pdos.csail.mit.edu/6.824/schedule.html

2. http://15721.courses.cs.cmu.edu/spring2018


最後列一下我覺得特別不錯的幾篇文章:


1. MapReduce: Simplified Data Processing on Large Clusters
Resilient Distributed Datasets
2. The Google File System

3. Bigtable: A Distributed Storage System for Structured Data.
4. Consistency Tradeoffs in Modern Distributed Database System Design
5. Spanner: Google’s Globally-Distributed Database
6. F1: A Distributed SQL Database That Scales
7. MapReduce: A major step backwards
8. A comparison of approaches to large scale data analysis


後續針對這幾篇文章再補一下自己的讀後感。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章