分布式系统-RAFT(1)

在开始之前,必须指出 RAFT 不是具体的分布式系统设施,比如 GFS 和 VM-FT 就是提供具体功能的分布式设施。RAFT 是一种算法,它可以应用在具体的分布式系统中以维护容错性并保持一致性。

分布式系统-VM-FT阅读笔记

什么是 two-phase commit(两阶段提交)

两阶段提交是一种原子提交协议,用于确保分布式事务的原子性(要么全部执行,要么全部不执行)。它主要包含两个阶段:

分布式系统-GFS阅读笔记

GFS

论文首先分析了作为一个大型的分布式存储系统的特点和难题:

  1. 故障:所有分布式系统的共同特点是总有机器会发生故障,系统需要能够应对这种情况。
  2. 文件体积巨大:文件往往以 GB 的级别进行传输,因此文件系统的块大小必须重新设计。
  3. 追加写入为主:许多文件只进行追加写,而不是覆盖现有的数据。同时,读取以顺序访问为主。

由于以上特点,GFS 在设计时提出了以下假设:

分布式系统-MapReduce 阅读笔记

MapReduce 根据使用者的不同,会产生不同的视角:

  • 分布式系统的使用者:重点关注 Map&Reduce 两类函数的编写,无需关心具体的分布式框架。
  • 分布式系统的开发者:需要管理 Map&Reduce 如何分发到机器上以便降低网络传输需求,同时关注冗余和备份以便顺利且迅速的完成计算任务。

接下来,本文作为 MapReduce 论文和 Mit6.824 的阅读笔记将以分布式系统的开发者的视角分析如何构建一个 MapReduce 系统。

分布式系统-概述

分布式系统的抽象和实现工具

分布式系统无外乎考虑以下三点:

  • 存储:构建一个多副本、容错的、高性能的分布式存储实现。
  • 通信:在不可靠的且带宽有限的网络上交换数据。
  • 计算:通过尽可能并行化任务,降低延迟并提高吞吐率。

同时,分布式系统存的实现目标同样有三点: