【【MIT 6.824 Distributed Systems Spring 2020 分布式系统 中文翻译版合集】-哔哩哔哩】 https://b23.tv/UF1OM20

    GFS中文版:https://chunlife.top/2020/04/18/The-Google-File-System%E4%B8%AD%E6%96%87%E7%89%88/
    MapReduce中文版:https://chunlife.top/2020/04/18/Google-MapReduce%E4%B8%AD%E6%96%87%E7%89%88/

    如何的才能更好地学习 MIT6.824 分布式系统课程?
    https://www.zhihu.com/question/29597104

    https://www.bilibili.com/video/BV1R7411t71W?from=search&seid=12561284070306196834&spm_id_from=333.337.0.0

    lad1:https://zhuanlan.zhihu.com/p/246187333
    lad2:https://zhuanlan.zhihu.com/p/248686289

    官网:https://pdos.csail.mit.edu/6.824/schedule.html

    文档:https://mit-public-courses-cn-translatio.gitbook.io/

    • Lab1 - MapReduce (实现MapReduce)
    • Lab2 - Raft (实现Raft)
    • Lab3 - KV Raft (在Lab2的基础上实现分布式KV存储)
    • Lab4 - Sharded KV/Final project

    Lab1着重于熟悉Go语言;Lab2主要在于阅读raft论文,严格根据论文的细节实现分布式协议;Lab3需要自己设计raft论文中提及但是没有详细描述的部分;Lab4则完全需要自己设计整个sharding过程。
    关于Lab3:相比于Lab2(严格按照paper来实现,方向明确),Lab3中的k/v service和log compaction都需要自己设计,paper中并没有详细的指导,难度大了很多。重构了很多次,花了好多时间debug。实现过程中,有时对自己的设计没有把握,担心忽略了edge case,在实现细节上也走了一些弯路,浪费了挺多时间

    https://refactoringguru.cn/design-patterns/singleton/go/example
    Go 单例模式讲解和代码示例