MIT6.824分布式系统笔记

前段时间在线看完了MIT 6.824的分布式系统课程,Robert Morris教授在课程里列举了大量的工业界实现,理论结合实践,水平是真的高。学习过程中也消除了之前的很多疑惑,比如线性一致性的定义、多数投票的动机等等,有很多恍然大悟、原来如此的时刻。总之,对于能学习到这么一门课程,是由衷的感激。

本文主要针对课程中的自认为重要的点记录下来,以进一步吸收巩固所学知识。

相关资源:

  1. Youtube课程
  2. 国内搬运课程
  3. schedule

下面是笔记正文,针对课程记录。

简介(Introduction)

分布式系统的驱动力

分布式系统的挑战

分布式系统的三个抽象

分布式系统的话题

GFS

分布式存储的设计难点

设计难点循环:performance -> sharding -> fault -> tolrance -> relication -> inconsistency -> consistency -> performance

多副本设计的一个bad design

GFS设计目标

GFS架构

GFS读过程

  1. 客户端发送文件名和偏移量到master
  2. master返回对应的chunk Handle和服务器列表
  3. 客户端选择一个网络上最近的服务器读取数据,可能会读到旧数据

GFS写过程

GFS一致性

GFS缺陷

主从复制(Primary-Backup Replication)

复制(repliaction)

复制方式

VMware FT

Raft

脑裂(Split Brain)

多数投票(Majority Vote)

接口设计

leader选举

Raft日志

日志恢复

日志压缩和快照(Log compaction and snapshots)

持久化

线性一致性(Linearizable consistency)

Zookeeper

参考文献

  1. Youtube课程
  2. 国内搬运课程
  3. schedule
  4. GFS
  5. faults and fault tolerance
  6. State Transfer
  7. State Machine Replication
  8. VMware FT
  9. Single point of failure
  10. Split-Brain
  11. Network Partition
  12. Raft
  13. Quorum
  14. zookeeper

Powered by Jekyll and Theme by solid