官方课程安排与资源索引:
大佬的中文文档与翻译链接:
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
关于实验的环境配置见这里:./drafts/lab00.md