MIT Distributed Systems 课程笔记1(Introduction)

Introduction

What is a distributed system?

  1. 多台电脑合作完成
  2. 大规模数据集运算,如:MapReduce,点对点共享
  3. 许多设施是分布式的

Why do people build distributed systems?

  1. 通过多线程并行操作,提高性能
  2. 通过生成副本,避免文件丢失
  3. 可以将计算放在离外部实体更近的地方
  4. 通过隔离增加系统的安全

外部实体:指系统以外,又和系统有联系的人或事物,它说明了数据的外部来源和去处,属于系统的外部和系统的界面。

Topic

  1. fault tolerance (容错):对应用程序隐藏这些故障,我们希望系统拥有可用性、可恢复性,如果一台服务器宕机,可以继续使用其他服务器。
  2. consistency (一致性):想要达成正确工作的系统十分困难,一致性与性能存在矛盾,服务器节点能难保证相同。
  3. performance (性能):我们想要提供一个性能可以扩展的系统,通常需要更好的设计而不仅仅是更多的计算机,数量的增多也会带来负载不均衡等问题。
  4. implementation (实现):RPC、线程、并发控制

MapReduce

函数式编程思想构建成抽象模型—Map和Reduce,隐藏系统底层细节,编程方便,不够灵活。

Example: word count
  input is thousands of text files
  
  Map(k, v)
    split v into words
    for each word w
      emit(w, "1")
      
  Reduce(k, v)
    emit(len(v))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值