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

相关推荐
国科安芯3 小时前
ASC8T245S:把 8 位并行总线稳稳“跨过“电压域的双电源收发器
网络·分布式·单片机·嵌入式硬件·fpga开发·架构
MetaLite7 小时前
Spring-Scheduled多实例重复执行怎么办-Redis分布式锁如何只让一个节点运行
redis·分布式·spring
Code知行合壹7 小时前
数据中台设计
大数据·分布式·spark
攻城有术8 小时前
专项攻克——redis分布式锁-用LUA脚本解决setNX锁不释放问题
redis·分布式·lua
会博通·代码搬运工9 小时前
双层PDF技术实现与档案数字化系统的API集成实践
数据库·人工智能·分布式·python·计算机视觉·api集成
天远Date Lab10 小时前
零信任架构实战:基于天远天远风控经营异常预警构建分布式企业合规监控网关
人工智能·分布式·架构
小白酷爱学习1 天前
鸿蒙OS的开发语言与工具链:如何驾驭全新开发生态!
分布式·华为·架构·harmonyos
BD_Marathon1 天前
Hadoop组成
大数据·hadoop·分布式
Databuff1 天前
使用Pinpoint作分布式链路跟踪系统
运维·分布式·运维开发·开源软件
传感器与混合集成电路1 天前
分布式光纤测温DTS系统:ZDTS-P2000与X1000参数对比及找漏监测应用
分布式·数据分析