Lecture 1 - Introduction

Lecture 1 - Introduction

MIT 6.824 Distributed Systems

1、概念预览

分布式系统需要考虑的因素:

  • Parallelism :并行性
  • Fault tolerence :容错性
  • Physicial :不同系统之间物理距离引起的通信问题
  • **Security ** :不同的计算机之间的通信安全
  • Isolated :从通信角度可能引发的孤立问题

本课程全程重点讨论并行性 和容错性,其他因素将由实例说明。

挑战:

  • Concurrency :并发问题
  • Partial failure :系统部分出错
  • Performance :性能

实现:

  • RPC :远程调用的目是试图掩盖我们正在不可靠网络上通信的事实
  • Thread :线程是一种编程技术,让我们可以驾驭多核计算机。提供了一种结构化的并发操作方式(concurrency control),简化了程序员对并发操作的视角

性能:

  • Scalability :构建分布式系统的更高目标是具有可扩展速度的提升,比如两台计算机就有两倍算力。但可扩展性不能无限增加,总会有瓶颈的。

容错:

  • Availability :可用性,一般都是建立在特定错误类型上的,继续正常服务的能力。
  • Recoverability :可恢复性,宕机之后能快速恢复。
  • Non-Volatile storage :借助非易失性存储(硬盘、闪存flash、SSD)存放一些检查点或者关于系统状态的日志,读取最新的状态并在那里工作。
  • Replication :通过复制实现容错,eg:lab 2

consistency :一致性,例如对数据库读写。一般来说先去访问主服务器(数据库),如果失败了再去访问副本服务器。一致性可以分强弱,因为强一致性需要更昂贵的通信成本。

2、MapReduce

MapReduce简介 (airekans.github.io)

MapReduce论文

单词计数中的Map函数和Reduce函数Overview

映射到代码上:

c++ 复制代码
function Map(K,V) :
	//K代表着words, V表1, K V可以都是vector
	for each word w :
		emit(w,"1");


function Reduce(K,V) :
	//K V可以都是vector
	emit(len(V))
	

从分布系统的设计者角度而言,Map必须是纯函数性的,需要考虑环境框架是如何组织的。

但从程序员的角度来看,调用就行。

TODO:读MapReduce论文、实现Lab 1

相关推荐
Q264336502322 分钟前
【有源码】基于Spark的电商客户细分与盈利洞察分析系统-面向精准营销的电商客户细分模型构建与盈利能力可视化研究
大数据·hadoop·分布式·数据挖掘·数据分析·spark·毕业设计
新思维软件2 小时前
基于无线传输的地衡系统:三节点 LoRa 组网与 MQTT 上云的分布式称重方案
分布式·stm32·单片机·嵌入式硬件·物联网·物联网开发
俊哥大数据2 小时前
Flink1.20.3 实时消费 Kafka 数据并解析入湖 Paimon1.4.2 全流程实战
分布式·flink·kafka·数据湖·paimon
宸津-代码粉碎机8 小时前
OpenAI 连夜迎战 Grok Bot 和 Muse:AI 智能体从 “会聊天” 到 “能办事”,现在入场还来得及吗
java·大数据·人工智能·分布式·python
程序猿乐锅10 小时前
【黑马点评 | 第八篇】Redisson分布式锁
java·数据库·spring boot·redis·分布式·spring·缓存
灯澜忆梦11 小时前
【RabbitMQ #7】 | 消息转换器
分布式·rabbitmq·ruby
需要82611 小时前
分布式事务:Seata AT/TCC/SAGA 的取舍与踩坑
java·spring boot·分布式·spring·spring cloud
CS创新实验室14 小时前
为什么三台机器就能选出一个“带头大哥“?——Raft 一致性算法,一次讲透
分布式·操作系统
本人手速666+16 小时前
企微开发API如何设计客户冻结状态?WeComApi 在删除、投诉和异常客户场景中的自动化边界
运维·分布式·自动化·企业微信·企微外部群开发·wecomapi·企业微信二次开发
灯澜忆梦17 小时前
【RabbitMQ #4】 | Work 任务模型
分布式·rabbitmq