文章目录
- 概述
- 什么是分布式系统
- 为什么需要分布式系统
- 分布式系统的难点
- 分布式系统的设计目标
- 分布式系统中的核心问题
- 课堂问题
-
- MapReduce
-
- What will likely limit the performance?
- How does detailed design reduce effect of slow network?
- How does MR get good load balance?
- What about fault tolerance?
- What if the master gives two workers the same Map() task?
- What if the coordinator gives two workers the same Reduce() task?
- For what applications doesn't MapReduce work well?
概述
本文记录了MIT 6.284 Lec1的课程内容,以及相关的课后问答。
什么是分布式系统
- multiple cooperating computers(多计算机协作)
- storage for big web sites, MapReduce, peer-to-peer sharing(大规模数据存储和计算)
- lots of critical infrastructure is distributed(系统的基础设施也是基于分布式的)
为什么需要分布式系统
- increase capacity via parallelism
- tolerate faults via replication
- place computing physically close to external entities
- achieve security via isolation
分布式系统在性能、容错性、安全性方面相较与单机系统都有质的提升。
分布式系统的难点
- many concurrent parts, complex interactions
- must cope with partial failure
- tricky to realize performance potential
分布式系统包含类大量的并发控制和复杂的交互逻辑,相比于单机系统而言,其开发成本大大提升。对于单机系统来说,一台机器出现异常的概率可能很小,但是在分布式系统成千上万的集群中,复杂的网络环境等不利因素被无限放大,几乎每时每刻都会有节