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

相关推荐
鬼先生_sir6 小时前
RabbitMQ 全面解析(完整版)
分布式·rabbitmq
Francek Chen9 小时前
【大数据存储与管理】分布式数据库HBase:06 HBase编程实践
大数据·数据库·hadoop·分布式·hbase
柒.梧.10 小时前
Redis架构演进:从主从到Cluster,读懂高可用与分布式核心
redis·分布式·架构
渔民小镇10 小时前
不用前端也能测试 —— 模拟客户端请求模块详解
java·服务器·前端·分布式·游戏
星辰_mya11 小时前
雪花算法:分布式世界的“身份证号”
分布式
AIminminHu12 小时前
OpenGL渲染与几何内核那点事-项目实践理论补充(一-2-(3)-当你的协同CAD服务器面临“千人同屏”时:从单机优化到分布式高并发)
运维·服务器·分布式
真上帝的左手13 小时前
12. 消息队列-RabbitMQ-高可用核心机制
分布式·rabbitmq·java-rabbitmq·mq
枫叶v.13 小时前
Kafka 怎么保证消息的顺序性
分布式·kafka
yitian_hm16 小时前
深入理解 Kafka Producer 核心源码:消息发送全链路解析
分布式·kafka·linq
Dylan~~~1 天前
深度解析Cassandra:分布式数据库的王者之路
数据库·分布式