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).