A Chinese version of MIT 6.824 (distributed system)
See MIT6.824-2018 for details.
之前的项目(MIT6.284-2017-Chinese)由于个人原因(懒狗一条,外加毕业和工作的事)虎头蛇尾地扔在了一边。最近突然翻出来一看,觉得自己写的真的很shi。现在重开一坑,直接从 lab2 开始写吧。这次保证要保质保量完成咕咕。
还是先总结下之前的失败点:
- 较多的 race condition 没有妥善处理
- 代码不够优美,主循环的 select 中,忙询 raft 状态,并在 Leader 的处理逻辑中 sleep。
避免 race condition 是非常关键的要求,因为如果没有通过 go test -race
测试的代码有几率导致某些 test case 失败。而这要求较好的 raft 结构设计。
- Lab1: mapreduce 请移步上一个项目
- Lab2: Raft
- Lab3: KV Raft