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

在这里插入图片描述

映射到代码上:

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

相关推荐

  1. 【Pytorch简介】1.Introduction 简介

    2024-03-30 15:34:01       52 阅读
  2. 1.Introduction to Spring Web MVC framework

    2024-03-30 15:34:01       31 阅读
  3. Chapter 1 - 3. Introduction to Congestion in Storage Networks

    2024-03-30 15:34:01       41 阅读
  4. Chapter 1 - 2. Introduction to Congestion in Storage Networks

    2024-03-30 15:34:01       40 阅读
  5. Chapter 1-11. Introduction to Congestion in Storage Networks

    2024-03-30 15:34:01       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-30 15:34:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-30 15:34:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-30 15:34:01       82 阅读
  4. Python语言-面向对象

    2024-03-30 15:34:01       91 阅读

热门阅读

  1. HBase报错:Master is initializing

    2024-03-30 15:34:01       37 阅读
  2. Leetcode 167. 两数之和 II - 输入有序数组

    2024-03-30 15:34:01       39 阅读
  3. 跟我学C++中级篇——委托构造和继承构造

    2024-03-30 15:34:01       37 阅读
  4. 前端网页之间传递参数

    2024-03-30 15:34:01       39 阅读
  5. BGP实训

    BGP实训

    2024-03-30 15:34:01      36 阅读
  6. redis(15):高效存储Bitmap

    2024-03-30 15:34:01       40 阅读
  7. Android 中 调试和减少内存错误

    2024-03-30 15:34:01       37 阅读
  8. MongoDB聚合运算符:$lastN

    2024-03-30 15:34:01       37 阅读
  9. Superset二次开发之 配置Redis(docker版本)

    2024-03-30 15:34:01       44 阅读