• 请不要在回答技术问题时复制粘贴 AI 生成的内容
TheCure
V2EX  ›  程序员

MIT 的分布式 lab 可能是我工作以来写过最难的代码

  •  
  •   TheCure · Dec 12, 2018 · 6192 views
    This topic created in 2883 days ago, the information mentioned may be changed or developed.

    在国内某一线工作了两年多了, 本 crud 程序员好像从来没写过这么困难的代码 平时的业务哪有这么复杂和难以调试啊捂脸

    保守估计花了大概 60 个小时, 做完了的话对分布式系统的理解应该会比其他多数程序员要深刻

    课程中整理了一些笔记,里面都是我觉得最容易出错和困难的地方

    https://zhuanlan.zhihu.com/sideshow

    安利下这个课程 MIT 6.824, 写的很爽, 教学质量真的很高.主要包括如下内容

    • 实现 Raft, 包括以下内容, 除了集群节点变更, 都需要实现

      1. 选主
      2. 数据备份与恢复能力
      3. 快照与日志压缩
      4. 并发安全
      5. Fault tolerance
      6. 网络分区
      7. 少数派故障可用性
    • 基于 Raft,实现线性一致性 K/V 服务, K/V 服务同时支持上述 Lab2 的所有特性

    • 实现一个动态扩展的强一致 K/V 服务, 能够动态增加删除节点,尽可能快速提供服务 /垃圾回收,同时保证 Lab2 的所有特性


    最后, 有没有人要招 Go/Python 程序员? 🙋

    19 replies  •  2019-06-14 10:32:22 +08:00
    pc10201
    pc10201
    Dec 12, 2018
    1
    在一线大厂还找工作?
    TheCure
    TheCure
    OP
    Dec 12, 2018
    2
    @pc10201 很奇怪么..
    ppyybb
    ppyybb
    Dec 13, 2018 via iPhone
    3
    和 6.828 哪个难?
    工作需要准备开始学 go,一边准备刷 6.824 。
    tourist2018
    tourist2018
    Dec 13, 2018
    4
    LZ 应该挺强的
    hwding
    hwding
    Dec 13, 2018 via iPhone
    5
    2333 毕设就准备做这个,我是在完全按照 paper 的协议描述做,没想到还有课程,马克。
    TheCure
    TheCure
    OP
    Dec 13, 2018
    6
    @ppyybb 看起来比 6.828 难, 我看 quora 上说最难的课程就是高级算法和分布式的课程
    sununiq
    sununiq
    Dec 13, 2018
    7
    借楼问楼主个问题,最近也在刷 6,824,但是项目导入 golang 中之后,执行测试用例一直报:
    .\master_rpc.go:48: debug call has arguments but no formatting directives
    换成命令行的去执行:
    go test -run Sequential,也同样的报这个错误
    放狗搜了下,没有搜到靠谱的回复,请问楼主有没有碰到过
    TheCure
    TheCure
    OP
    Dec 13, 2018
    8
    @hwding 嗯 你可以按照 lab 做, 好处是 lab 的测试比较充分, 自己可能想不到这么多测试用例
    TheCure
    TheCure
    OP
    Dec 13, 2018
    9
    @sununiq 开 debug 进去看下, 是不是调用 rpc 时的参数传的有问题
    TheCure
    TheCure
    OP
    Dec 13, 2018
    10
    为什么这么多人收藏- - 但是都不回复
    ArianX
    ArianX
    Dec 13, 2018 via Android
    11
    6.824 对分布式萌新友不友好呀
    TheCure
    TheCure
    OP
    Dec 13, 2018
    12
    @ArianX 系统编程经验够的话 看完论文直接开撸
    MichaelZhou16
    MichaelZhou16
    Dec 14, 2018
    13
    写的 raft 吗,那是真的大神。。我们研究生的课程只要自己写 raft 选主就算过了。。
    TheCure
    TheCure
    OP
    Dec 14, 2018
    14
    @MichaelZhou16 没有工业化里的多组, batch 这些优化, 能实现论文里描述的特性, 并且线性一致就好. 除了 raft, 后面的动态伸缩的强一致 kv 服务器写起来也很有挑战...
    sununiq
    sununiq
    Dec 14, 2018
    15
    @callofmx 没法 debug,sequential 那块代码单独抠出来没问题,运行 distributed 那块就报错,运行那个最后一起跑的脚本也报错,醉了。。。就是 shedule 那块验证不了
    sununiq
    sununiq
    Dec 14, 2018
    16
    感觉是 go 版本的问题,我用的 go1.12 版本,问下楼主用的什么版本,我再试下
    TheCure
    TheCure
    OP
    Dec 15, 2018 via iPhone
    17
    @sununiq 和你一样,不过更换版本可能没效果哦,不是排查思路的一部分
    razertory
    razertory
    May 10, 2019
    18
    刚写完 Lab1 的 MR 和 Lab2 的 leader election。。感觉是有点复杂
    wqj
    wqj
    Jun 14, 2019
    19
    好难啊
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2948 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 12:06 · PVG 20:06 · LAX 04:06 · JFK 07:06
    ♥ Do have faith in what you're doing.