Skip to content

MIT 6.824: Distributed Systems (Spring 2020)

Notifications You must be signed in to change notification settings

elayrocks/MIT6.824

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIT6.824

MIT 6.824: Distributed Systems (Spring 2020)

  • Lab 1
  • Lab 2
    • Lab 2A
    • Lab 2B
    • Lab 2C
    • Lab 2D
  • Lab 3
    • Lab 3A
    • Lab 3B
  • Lab 4
    • Lab 4A
    • Lab 4B
  • Lab 4 Challenge
    • Challenge 1: Delete & Concurrent
    • Challenge 2: Unaffected & Partial
  • 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).

About

MIT 6.824: Distributed Systems (Spring 2020)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 96.0%
  • Shell 3.2%
  • Makefile 0.8%