Lecture 1:Introduction
爲什麼需要分佈式系統?
- 並行,多機能提供解決問題效率
- 容錯,多機器可以有效降低系統出錯概率,當一臺機器宕機後,另一臺機器依舊能工作
- 解除物理限制,分佈在多地的機器能相互通信
- 安全性與隔離性,
lab
- MapReduce
- Raft協議
- K/V server
- shared K/V service
Performance --Scalability可拓展性。意思就是如果從一臺機器變成兩臺機器,系統的性能(吞吐量)能提高一倍,就是高可拓展性。
Fault Tolerance容錯性。容錯性可從Availability可提供性,Recoverability恢復性來體現,常用的手段就是非易失存儲、複製副本等方法
Consistency一致性。 可以分成強一致性和弱一致性,強一致性保證分佈式節點之間一定要數據保持一致(需要一致保持節點通信,很消耗性能),而弱一致性則不用時刻保持(因爲爲了保證數據安全,常常把數據副本放在相差很遠的兩個地方,通信延遲很大,對於一致性要求不高的數據,所以不用時刻保持一致,如一天同步一次之類的)。
MapReduce
Lecture 2:RPC and Threads
Thread,第一點,併發的基礎,是操作系統調度的基本單位,第二點,在多核時代,線程的概念尤爲重要,其可能提供真正的並行能力,第三點,提供方便性,