Table of contents 简介 Lecture 01 - Introduction 1.1 分布式系统的驱动力和挑战(Drivens and Challenges) 1.2 课程结构(Course Structure) 1.3 分布式系统的抽象和实现工具(Abstraction and Implementation) 1.4 可扩展性(Scalability) 1.5 可用性(Availability) 1.6 一致性(Consistency) 1.7 MapReduce基本工作方式 1.8 Map函数和Reduce函数 Lecture 03 - GFS 3.1分布式存储系统的难点(Why Hard) 3.2 错误的设计(Bad Design) 3.3 GFS的设计目标 3.4 GFS Master 节点 3.5 GFS读文件(Read File) 3.6 GFS写文件(Write File)(1) 3.7 GFS写文件(Write File)(2) 3.8 GFS的一致性 Lecture 04 - VMware FT 4.1 复制(Replication) 4.2 状态转移和复制状态机(State Transfer and Replicated State Machine) 4.3 VMware FT 工作原理 4.4 非确定性事件(Non-Deterministic Events) 4.5 输出控制(Output Rule) 4.6 重复输出(Duplicated Output) 4.7 Test-and-Set 服务 Lecture 06 - Raft1 6.1 脑裂(Split Brain) 6.2 过半票决(Majority Vote) 6.3 Raft 初探 6.4 Log 同步时序 6.5 日志(Raft Log) 6.6 应用层接口 6.7 Leader选举(Leader Election) 6.8 选举定时器(Election Timer) 6.9 可能的异常情况 Lecture 07 - Raft2 7.1 日志恢复(Log Backup) 7.2 选举约束(Election Restriction) 7.3 快速恢复(Fast Backup) 7.4 持久化(Persistence) 7.5 日志快照(Log Snapshot) 7.6 线性一致(Linearizability) Lecture 08 - Zookeeper 8.1 线性一致(Linearizability)(1) 8.2 线性一致(Linearizability)(2) 8.3 线性一致(Linearizability)(3) 8.4 Zookeeper 8.5 一致保证(Consistency Guarantees) 8.6 同步操作(sync) 8.7 就绪文件(Ready file/znode) Lecture 09 - More Replication, CRAQ 9.1 Zookeeper API 9.2 使用Zookeeper实现计数器 9.3 使用Zookeeper实现非扩展锁 9.4 使用Zookeeper实现可扩展锁 9.5 链复制(Chain Replication) 9.6 链复制的故障恢复(Fail Recover) 9.7 链复制的配置管理器(Configuration Manager) Lecture 10 - Cloud Replicated DB, Aurora 10.1 Aurora 背景历史 10.2 故障可恢复事务(Crash Recoverable Transaction) 10.3 关系型数据库(Amazon RDS) 10.4 Aurora 初探 10.5 Aurora存储服务器的容错目标(Fault-Tolerant Goals) 10.6 Quorum 复制机制(Quorum Replication) 10.7 Aurora读写存储服务器 10.8 数据分片(Protection Group) 10.9 只读数据库(Read-only Database) Lecture 11 - Cache Consistency: Frangipani 11.1 Frangipani 初探 11.2 Frangipani的挑战(Challenges) 11.3 Frangipani的锁服务(Lock Server) 11.4 缓存一致性(Cache Coherence) 11.5 原子性(Atomicity) 11.6 Frangipani Log 11.7 故障恢复(Crash Recovery) 11.8 Frangipani总结 Lecture 12 - Distributed Transaction 12.1 分布式事务初探(Distributed Transaction) 12.2 并发控制(Concurrency Control) 12.3 两阶段提交(Two-Phase Commit) 12.4 故障恢复(Crash Recovery) 12.5 总结