- 分布式系统是什么:核心是通过网络使一群计算机相互通信来完成一些连贯的任务。
- 分布式系统的目的:①实现并行(提升性能)②容错 ③物理空间上的拓展 ④实现隔离(安全性)
- 分布式系统的挑战:①并发性 ②部分故障 ③性能
课程的4个labs:
1——MapReduce
2——用于容错的Raft(复制管理副本)
3——可容错的Raft键值服务器,可以被复制和容错
4——分片的kv服务器
分布式系统简介:
基础的三大抽象:存储、通信、计算
需要用到的工具:RPC、threads、锁等
相关概念
可拓展性:两倍的计算机或资源就可以获得两倍的性能或吞吐量
容错: ①可用性 ②自身可恢复性
NV storage(非易失性存储)
复制副本
最终主题——一致性问题
强一致性系统和弱一致性系统
副本应该尽可能地分开
MapReduce系统


为什么需要shuffle:shuffle是把数据从无序到有序的一个初步过程,比如map1的数据是{<a,1>, <b,2>}并保存到本地,map2的数据是{<a,1>, <c,1>}则shuffle后获得的reduce1为{<a,2>},reduce2获得{<b,2>},reduce3获得{<c,1>}。目的是把相同的的key可以提前一步放到一起。(其中为了减少reduce的压力,map也会对数据进行排序)
RPC框架(来源知乎:洪春涛)
(为了解决无法调用远程函数的问题)







