MCPcopy Index your code
hub / github.com/Ray-Eldath/MIT6.824

github.com/Ray-Eldath/MIT6.824 @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
434 symbols 1,825 edges 48 files 138 documented · 32% updated 4y ago★ 1322 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

MIT6.824

MIT 6.824: Distributed Systems (Spring 2020)

  • [X] Lab 1
  • [X] Lab 2
    • [X] Lab 2A
    • [X] Lab 2B
    • [X] Lab 2C
    • [X] Lab 2D
  • [X] Lab 3
    • [X] Lab 3A
    • [X] Lab 3B
  • [X] Lab 4
    • [X] Lab 4A
    • [X] Lab 4B
  • [X] Lab 4 Challenge
    • [X] Challenge 1: Delete & Concurrent
    • [X] Challenge 2: Unaffected & Partial
  • [X] Optimization: LeaseRead with noop
    • Now read-only requests could be served locally since it DOES NOT need to go through Raft layer anymore ( implemented in kvraft and shardctler)

This repo is really a high quality implementation. All tests passed for at lease 1000 times, and Linearizable3B in kvraft passed for 10000 times. I finished two challenges in Lab 4 and a set of extra optimizations which are deemed hard to achieve by many (though a very small modification to test suites has been carried out). The code is well-structured and clean, leads to a well balance between maintainability and abstraction. Plus, I carefully cherry-picked and squashed commits to make them atomic, and only least required alternation is made which follows a clear logic.

I think the optimization (LeaseRead with noop) and several topics in shardkv are worth discussing, I'll write a blog post on this on my personal blog later on.

EDIT 2022/3/16: This blog post has been posted here (in Chinese Simplified).

Core symbols most depended-on inside this repo

join
called by 49
src/shardkv/config.go
one
called by 42
src/raft/config.go
Enable
called by 37
src/labrpc/labrpc.go
connect
called by 35
src/raft/config.go
randstring
called by 32
src/shardkv/config.go
disconnect
called by 29
src/raft/config.go
Query
called by 28
src/shardmaster/client.go
leave
called by 26
src/shardkv/config.go

Shape

Function 189
Method 167
Struct 69
TypeAlias 9

Languages

Go100%

Modules by API surface

src/kvraft/test_test.go33 symbols
src/kvraft/config.go30 symbols
src/labrpc/labrpc.go29 symbols
src/shardmaster/config.go24 symbols
src/porcupine/checker.go24 symbols
src/shardkv/config.go23 symbols
src/raft/config.go23 symbols
src/labrpc/test_test.go21 symbols
src/raft/test_test.go19 symbols
src/shardkv/test_test.go14 symbols
src/raft/raft.go13 symbols
src/labgob/labgob.go13 symbols

For agents

$ claude mcp add MIT6.824 \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page