- 🏓课程资料
- 🏸本仓库资源
- 🎾课程索引
- LEC 1: Introduction
- LEC 2: RPC and Threads
- LEC 3: GFS
- LEC 4: Primary-Backup Replication
- LEC 5: Go, Threads, and Raft, video, code samples
- LEC 6: Fault Tolerance: Raft (1)
- LEC 7: Fault Tolerance: Raft (2)
- LEC 8: Zookeeper
- LEC 9: More Replication, CRAQ
- LEC 10: Cloud Replicated DB, Aurora
- LEC 11: Cache Consistency: Frangipani
- LEC 12: Distributed Transactions
- LEC 13: Spanner
- LEC 14: Optimistic Concurrency Control
- LEC 15: Big Data: Spark
- LEC 16: Cache Consistency: Memcached at Facebook
- LEC 17: Causal Consistency, COPS
- LEC 18: Fork Consistency, Certificate Transparency
- LEC 19: Peer-to-peer: Bitcoin
- LEC 20: Blockstack
- LEC 21: Project demos
- 🥏Lab 笔记索引
官方课程安排与资源索引:
大佬的中文文档与翻译链接:
B 站视频:
官方视频:
- 资源比如课堂资料、作业要求在docs/html/和docs/lec/中
- 实验说明:6.824 Lab 1_ MapReduce.html
- LEC 1: Introduction, video
- Preparation: Read MapReduce (2004)
- Assigned: Lab 1: MapReduce
本节课的笔记:./drafts/lec01.md
- 分布式系统的驱动力和挑战 Drivens and Challenges
- 课程结构(Course Structure)
- 分布式系统的抽象和实现工具 Abstraction and Implementation
- 分布式系统评判维度
- MapReduce
- LEC 2: RPC and Threads, crawler.go, kv.go, video
- Preparation: Do Online Go tutorial (FAQ)
我在 Go tutorial 把 Go 基本了解了,笔记放在 back-end-notes 中了:
课就不听了,把两个程序看懂似乎才是重点(课上也讲这两个代码)。语言这个东西还是知道思想和原理,然后便用边查最好。
在 ./lec/crawler.go 中,举了串行爬取、锁实现并行爬取、通道并行爬取三个例子,有这些要点:
- 在
lock后立即defer unlock让程序不易出错,读起来也更美观 sync.WaitGroup的经典使用:有任务我就先wg.Add(1),每个任务开始时defer wg.done(1)master-worked模式配合channel的经典使用
在 ./lec/kv.go 中,主要是对 net/rpc 做了经典实现。
- LEC 3: GFS, video
- Preparation: Read GFS (2003) (FAQ)
- Assigned: Lab 2: Raft
本节课的笔记:./drafts/lec03.md
- LEC 4: Primary-Backup Replication, video
- Preparation: Read Fault-Tolerant Virtual Machines (2010) (FAQ)
本节课的笔记:./drafts/lec04.md
- LEC 5: Go, Threads, and Raft, video, code samples
- Preparation: Read The Go Memory Model
本节课的笔记:./drafts/lec05.md
- LEC 6: Fault Tolerance: Raft (1), video
- Preparation: Read Raft (extended) (2014), to end of Section 5 (FAQ)
本节课的笔记:./drafts/lec06.md
- LEC 7: Fault Tolerance: Raft (2), video
- Preparation: Read Raft (extended) (2014), Section 7 to end (but not Section 6) (FAQ)
本节课的笔记:./drafts/lec07.md
- LEC 8: Zookeeper, video
- Preparation: Read ZooKeeper (2010) (FAQ) (Question)
本节课的笔记:./drafts/lec08.md
- LEC 9: More Replication, CRAQ, video
- Preparation: Read CRAQ (2009) (FAQ)
- Assigned: Lab 3: KV Raft
本节课程的笔记:./drafts/lec09.md
- LEC 10: Cloud Replicated DB, Aurora, video
- Preparation: Read Aurora (2017) (FAQ)
本节课的笔记:./drafts/lec10.md
- LEC 11: Cache Consistency: Frangipani, video
- Preparation: Read Frangipani (FAQ)
本节课的笔记:./drafts/lec11.md
- LEC 12: Distributed Transactions, video
- Preparation: Read 6.033 Chapter 9, just 9.1.5, 9.1.6, 9.5.2, 9.5.3, 9.6.3 (FAQ)
- Assigned: Lab 4: Sharded KV
本节课的笔记:./drafts/lec12.md
- LEC 13: Spanner, video
- Preparation: Read Spanner (2012) (FAQ)
本节课的笔记:./drafts/lec13.md
- LEC 14: Optimistic Concurrency Control, video
- Preparation: Read FaRM (2015) (FAQ)
本节课的笔记:./drafts/lec14.md
- LEC 15: Big Data: Spark, video
- Preparation: Read Spark (2012) (FAQ)
本节课的笔记:./drafts/lec15.md
- LEC 16: Cache Consistency: Memcached at Facebook, video
- Preparation: Read Memcached at Facebook (2013) (FAQ)
本节课的笔记:./drafts/lec16.md
- LEC 17: Causal Consistency, COPS, video
- Preparation: Read COPS (2011)
本节课的笔记:./drafts/lec17.md
- LEC 18: Fork Consistency, Certificate Transparency, video
- Preparation: Read Certificate Transparency, Also This, And This, but skip the Tiles sections and the appendices. (FAQ)
本节课的笔记:./drafts/lec18.md
- LEC 19: Peer-to-peer: Bitcoin, video
- Preparation: Read Bitcoin (2008), and summary (FAQ)
本节课的笔记:./drafts/lec19.md
- LEC 20: Blockstack, video
- Preparation: Read BlockStack (2017) (FAQ)
本节课的笔记:./drafts/lec20.md
- Preparation: Read AnalogicFS experience paper (FAQ)
- 这里额外记录下当年的考试内容:Q1, Q2
本节课的笔记:./drafts/lec21.md
关于实验的环境配置见这里:./drafts/lab00.md
- 2A 实现 Leader 选举
- 2B 实现日志状态同步
- 2C 持久化
- 架构与要求:线性强一致性
- 3A: 基于 raft 的 k/v 服务
- 3B: 基于日志压缩的快照