MIT6.824 分布式系统课程总结

2019 年 6 月 16 日
 wuYin

课程目标

从 MapReduce 计算模型入门,到实现 Raft 一致性算法,并进一步构建容错的分布式 kvDB

课程结构

6.824 是 MIT 开设的分布式系统课程,主页:https://pdos.csail.mit.edu/6.824/schedule.html,课程共计 22 节,每堂课都有 lecture 讲义、Paper 阅读及 FAQ 答疑。

课程有 4 个 Lab 实验:

每个 Lab 的环境代码都有注释提示,都有写好的单元测试,目标是每个测试跑 go test -race -count 多次都能 pass

课程难点

论文阅读

MR、Raft 等 lab 相关的论文要反复阅读,尤其是 Raft 论文的图 2,一定要把每个细节理解透彻。

调试代码

坑真的非常多。所以写代码前认真阅读 Lecture 并思考,参考其中的 Hint 提示,阅读课程对 Raft 结构的解析。此外,课程助教写的 Students' Guide to Raft 值得参考。

课程笔记

目前我只完成前三个 Lab,工作之余耗时近三个月。实验遇到的坑记录在了博客,希望有所帮助:

自己也想在分布式存储方面多折腾,感兴趣的同学可以一起交流,共同进步:aW1hZ2VzLnlpbnppZ2UuY29tL21lLmpwZWc=

13988 次点击
所在节点    分享创造
18 条回复
xiaoyaocmx
2019 年 6 月 16 日
这个课貌似需要相关的先修知识?讲义怎么打开是 txt ……
wuYin
2019 年 6 月 16 日
@xiaoyaocmx 掌握 Go 基础语法,了解 IPC 通信。讲义和 FAQ 都是纯文本,重在内容~
jiezhi
2019 年 6 月 16 日
收藏先,明天起来有空看看
abelce
2019 年 6 月 16 日
我以前也学过 但是后来链接失效了,今天终于又看到了
wisej
2019 年 6 月 16 日
棒~两个月前完成了 LAB1,然后就搁置了
0044200420
2019 年 6 月 16 日
lab 2b 我卡了 1 个月。。
wuYin
2019 年 6 月 16 日
@0044200420 Lab2C 网络延迟会导致 RPC 请求乱序,论文里没明说。忽视了这点让我卡了两星期……好在看了助教的文章得到指点,其实课程 QA 也有提到,认真阅读讲义才是~
wuYin
2019 年 6 月 16 日
@wisej lab2 和 lab3 都挺有意思,做完收获挺大的,加油~
leon0318
2019 年 6 月 17 日
很棒~希望 v2 多一些这样的帖子
wuYin
2019 年 6 月 17 日
@leonme 希望有所帮助~
auxox
2019 年 6 月 17 日
赞~
wuYin
2019 年 6 月 17 日
@auxox 多谢鼓励~
petelin
2019 年 6 月 18 日
感觉很不错 我是自己学的 raft 可以入坑系统在学下 多谢
wuYin
2019 年 6 月 18 日
@petelin 赞~ 做 lab 卡住了可参考助教的博客,记录了大部分学生都会犯的错:

https://thesquareplanet.com/blog/students-guide-to-raft
forever139
2019 年 6 月 19 日
正想学习下这个方向,赞一个👍 。
wlgq2
2019 年 11 月 19 日
吐槽下,我卡在 RPC 请求乱序,私以为不太合理,合理的网络程序,同一个 socket 总是唯一线程访问,只要写如 TCP 缓存数据没有交叠,TCP 只会延时,不会乱序。
jackgoudan
2020 年 12 月 18 日
lz,请问可以给一份源码吗? raft 实现部分有些地方做不来,思路不清晰。想参考下怎么写的
luckykev1n
2021 年 1 月 28 日
看了下 2020 年的 MIT6.824 ,LAB1 没有要求倒排索引和 merge 所有 reduce 的结果,给学生减压了哈哈哈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/574537

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX