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

相关推荐
牛油果子哥q9 小时前
【Redis分布式高阶篇】Redis分布式锁底层精讲:从裸锁缺陷到Redisson源码级落地,解决超时释放、锁失效、主从漏洞、锁续约难题
数据库·redis·分布式
2601_957888569 小时前
分布式新媒体架构:短视频矩阵系统的技术痛点、算法规则与效率优化实践
分布式·架构·媒体
闪电悠米10 小时前
黑马点评-Redisson-02_reentrant_lock
java·spring boot·redis·分布式·缓存
2601_9578848410 小时前
分布式媒体矩阵系统的任务调度架构:高并发分发队列与背压控制控制实践
分布式·矩阵·媒体
Kyrie_Li12 小时前
Kafka-安装和配置(搭建环境)
分布式·kafka
逻极12 小时前
MongoDB 从入门到精通:文档数据库的灵活之道
分布式·mongodb·nosql·聚合框架
大G的笔记本12 小时前
分布式事务实战
分布式
AI浩13 小时前
梯度累积与 Micro-Batch 设计分层式精讲:有效批次、显存边界与分布式同步
开发语言·分布式·batch
l1t13 小时前
DeepSeek总结的从 DeepSeek 到 Quack:分布式 DuckDB 的梦想何时开始变得真实
数据库·分布式
钝挫力PROGRAMER13 小时前
BugFixed:etcd 单节点宕机后数据“消失”
分布式·etcd