MCPcopy Index your code
hub / github.com/YXG520/MIT6.824-6.5840

github.com/YXG520/MIT6.824-6.5840 @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
654 symbols 2,915 edges 68 files 206 documented · 31%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

MIT6.5840 (6.824) - Replication of Distributed System Course Labs

Replication of the Spring 2023 MIT6.5840 (previously known as 6.824) Distributed Systems Labs

This project involves the lab exercises from MIT's 6.824 Distributed Systems course, primarily developed in the Go programming language.

1 Project Structure

1.1 Branches

The project is divided into 9 branches, each precisely corresponding to a part of each lab in the course, named in the format Lab2A, Lab2B, etc. Each branch contains detailed documentation, including case studies of bug fixes, explanations of concepts, detailed analysis of test functions, and answers to frequently asked questions (which may come up in interviews). I believe that this step-by-step branching method will be helpful, as I was confused when referring to other people's code that included content from later labs, which was difficult to understand and riddled with bugs. Repository structure:

img.png

1.2 Usage Instructions:

To ensure the program runs without bugs, test each part at least 1000+ times; I achieved 0 bugs in 1000 tests. Then use the dstest script in each file for testing, which contains the usage rules. img_4.png

1.3 Distribution of md Documents

Here are partial screenshots of md documents from various branches:

Screenshot of Lab2A branch img_1.png

Screenshot of Lab2B branch img_2.png ...

Screenshot of Lab4B branch img_3.png

1.4 Related Resources

  1. MIT 6.824 Course Videos: MIT6.824 Distributed Systems
  2. Chinese Course Notes Link: gitBook-mit6.824 Distributed Systems Public Course Notes
  3. Course Schedule: https://pdos.csail.mit.edu/6.824/
  4. Related Papers: (1) CSDN Translation of Raft Paper (2) Spanner: Google’s Globally-Distributed Database
  5. Raft Paper Notes (Notes): https://thesquareplanet.com/blog/students-guide-to-raft/

This project is a personal interpretation and implementation of the MIT 6.824 course. If you have any questions or suggestions, feel free to raise them.

Finally, I wish every participant gains something in their journey of learning distributed systems!

1.5 Time Spent

Background: Several years of Java development experience and some C++ usage, never used Golang before Total Time Spent: 55 days

Lab2A: 10 days

Lab2B: 7 days

Lab2C: 1 day

Lab2D: 10 days

Lab3A: 5 days

Lab2B: 7 days

Lab2C: 5 days

Lab2D: 10 days

2 Disclaimer

I intended to use this project for campus recruitment, so I put a lot of effort into it. Thanks to the power of GPT-4, I was able to understand many concepts that were initially unclear to me, through the comprehensive analyses provided by GPT-4. You can refer to my blog summarizing 100 interview questions about Raft: 100 Raft Interview Questions to Tear Apart

The above content was copied from a markdown document. Please translate it into English while keeping the original format intact.

Core symbols most depended-on inside this repo

DPrintf
called by 90
src/raft/util.go
DPrintf
called by 65
src/shardkv_with_bug/util.go
one
called by 63
src/raft/config.go
SayMeL
called by 52
src/raft/raft.go
join
called by 49
src/shardkv_with_bug/config.go
join
called by 48
src/shardkv/config.go
Enable
called by 46
src/labrpc/labrpc.go
connect
called by 43
src/raft/config.go

Shape

Method 294
Function 254
Struct 95
TypeAlias 11

Languages

Go100%

Modules by API surface

src/kvraft/test_test.go38 symbols
src/raft/test_test.go30 symbols
src/kvraft/config.go30 symbols
src/raft/config.go29 symbols
src/labrpc/labrpc.go29 symbols
src/raft/raft.go27 symbols
src/shardkv/server.go24 symbols
src/shardctrler/config.go24 symbols
src/porcupine/checker.go24 symbols
src/shardkv_with_bug/config.go23 symbols
src/shardkv/config.go23 symbols
src/labrpc/test_test.go21 symbols

For agents

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

⬇ download graph artifact