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,第一点,并发的基础,是操作系统调度的基本单位,第二点,在多核时代,线程的概念尤为重要,其可能提供真正的并行能力,第三点,提供方便性,