MIT 6.5840 分布式系统课程笔记(一)核心概念与实验框架

77 阅读4分钟

MIT 6.5840 分布式系统课程笔记(一):核心概念与实验框架

一、课程实验概览

MIT 6.824 是一门以实践为核心的分布式系统课程,包含四个循序渐进的实验项目,逐步深入分布式系统的核心挑战与解决方案:

  1. Lab 1: MapReduce

    • 目标​:基于论文设计并实现分布式MapReduce框架,完成词频统计等任务。

    • 技术要点​:

      • Map阶段​:将输入文件分割为多个任务,通过RPC分配至Worker节点,生成中间键值对。
      • Reduce阶段​:合并中间结果,输出最终文件。
      • 容错机制​:通过Master节点监控任务状态,超时任务自动重新分配。
  2. Lab 2: Raft一致性算法

    • 目标​:实现Raft共识算法,解决多副本状态同步问题。

    • 核心机制​:

      • 领导者选举​:节点通过心跳超时触发选举,基于任期号和日志完整性投票。
      • 日志复制​:Leader节点通过AppendEntries RPC同步日志,确保多数节点提交后状态机应用。
      • 安全性​:通过任期号和日志索引防止脑裂和数据不一致。
  3. Lab 3: 容错KV存储

    • 目标​:基于Raft构建高可用的键值存储系统。

    • 实现难点​:

      • 线性一致性​:通过Raft日志保证所有操作顺序一致,客户端请求需等待日志提交后响应。
      • 快照压缩​:定期生成快照以减少日志量,支持快速恢复。
  4. Lab 4: 分片式KV服务

    • 目标​:实现数据分片(Sharding)和动态负载均衡。

    • 关键技术​:

      • 分片策略​:按Key哈希或范围划分数据,分散到不同节点组(Shard)。
      • 迁移与重平衡​:监控负载并动态迁移分片,通过配置变更协议(如Raft)协调迁移过程。
      • 多副本容灾​:每个分片组内使用Raft保证数据冗余。

二、分布式系统的核心抽象与工具

分布式系统的设计依赖于以下基础工具与抽象,以简化复杂性问题:

  1. RPC(远程过程调用)​

    • 作用​:隐藏网络通信细节,使跨节点调用像本地函数一样透明。
    • 挑战​:需处理网络延迟、丢包和重试等异常场景。
  2. 线程与并发控制

    • 优势​:利用多核资源,结构化处理并发任务(如并行处理Map/Reduce任务)。
    • 同步机制​:锁(Mutex)、条件变量(Condition Variables)避免竞态条件。
  3. 非易失存储(Non-volatile Storage)​

    • 应用场景​:持久化日志和快照,确保故障后状态可恢复。
    • 性能优化​:批量写入与异步刷盘(如Raft的日志持久化策略)。

三、可扩展性(Scalability)的设计哲学

分布式系统的扩展性体现为通过增加资源线性提升性能,但需解决瓶颈转移问题:

  1. 水平扩展(Horizontal Scaling)​

    • 策略​:通过添加无状态服务节点(如Web服务器)分流请求。
    • 瓶颈转移​:当数据库成为瓶颈时,需引入分库分表或缓存(如Redis)。
  2. 垂直扩展(Vertical Scaling)​

    • 局限性​:单机硬件提升存在天花板(如CPU核数、内存容量)。
  3. 分片与负载均衡

    • 分片​:按数据特征(如Key哈希)划分存储,分散压力。
    • 负载均衡器​:动态分配请求至健康节点,避免单点过载。

四、可用性与容错机制

分布式系统需在故障频发的环境中保持服务连续性,关键技术包括:

  1. 多副本冗余(Replication)​

    • 主从复制​:写操作由主节点同步至从节点,故障时切换主节点。
    • 多主复制​:允许写入多个节点,需解决冲突(如Last-Write-Wins)。
  2. 故障检测与恢复

    • 心跳机制​:定期检测节点存活状态,超时触发故障转移。
    • 日志重放​:通过持久化日志重建故障节点状态(如Raft的日志复制)。
  3. 非易失存储的应用

    • 日志与快照​:定期保存系统状态,支持快速恢复。
    • 权衡​:减少磁盘I/O次数以提升性能(如批量提交日志)。

五、一致性的权衡与模型

一致性模型定义了分布式系统中数据访问的语义,需在性能与正确性间权衡:

  1. 强一致性(Strong Consistency)​

    • 特点​:所有读操作返回最新写入值,如线性一致性(Linearizability)。
    • 代价​:高延迟(需等待多数节点确认)。
    • 适用场景​:金融交易、分布式锁等。
  2. 弱一致性(Weak Consistency)​

    • 最终一致性(Eventual Consistency)​​:无新写入时,副本终将收敛。
    • 因果一致性(Causal Consistency)​​:保证因果关系的操作顺序。
    • 适用场景​:社交媒体、评论系统等高吞吐场景。
  3. CAP定理的启示

    • 定理内容​:分布式系统无法同时满足一致性(C)、可用性(A)、分区容错性(P)。

    • 设计选择​:

      • CP系统​:优先一致性(如ZooKeeper)。
      • AP系统​:优先可用性(如Cassandra)。