MIT 6.824: Distributed Systems (Spring 2020)

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

Owner
Ray Eldath
an idiot. // know me on my blog
Ray Eldath
Similar Resources

Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

The Moby Project Moby is an open-source project created by Docker to enable and accelerate software containerization. It provides a "Lego set" of tool

Jan 2, 2023

IBus Engine for GoVarnam. An easy way to type Indian languages on GNU/Linux systems.

IBus Engine For GoVarnam An easy way to type Indian languages on GNU/Linux systems. goibus - golang implementation of libibus Thanks to sarim and haun

Feb 10, 2022

A simple tool to send binary data over a serial port. Designed for use with my retro computer systems.

Colin's Transfer Tool This is a really basic tool to transfer firmware files to my retro computer systems over a serial port. This removes the need fo

Dec 21, 2021

Ghdl - A much more convenient way to download GitHub release binaries on the command line, works on Win & Unix-like systems

ghdl Memorize ghdl as github download ghdl is a fast and simple program (and als

Oct 12, 2022

A distributed unique ID generator of using Sonyflake and encoded by Base58

Indigo About A distributed unique ID generator of using Sonyflake and encoded by Base58. ID max length is 11 characters by unsigned int64 max value. A

Nov 24, 2022

Visualize how a projects source code is distributed among its files and folders

Visualize how a projects source code is distributed among its files and folders

Source Code Visualizer Visualize the code distribution in a project. Applications Applications include: Visualizing code distribution for more educate

Jul 31, 2022

Simple distributed kv-store using ABD algorithm.

Distributed-kv-store Simple distributed kv-store using ABD algorithm. API GET /key Get value by key. 302 = found key. PUT /key Put key with value. 201

Dec 14, 2021

MIT 6.824: Distributed Systems (Spring 2020)

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

Dec 26, 2022

MIT 6.824: Distributed Systems

MIT 6.824 is a core 12-unit graduate subject with lectures, readings, programming labs, an optional project, a mid-term exam, and a final exam.

Jul 6, 2022

My solutions to labs of MIT 6.824: Distributed Systems.

MIT 6.824 Distributed Systems Labs

Dec 30, 2021

Labs, solutions and related materials from the MIT 6.824 Distributed Systems course.

Labs, solutions and related materials from the MIT 6.824 Distributed Systems course.

MIT 6.824 Distributed Systems Labs, solutions and related materials from the MIT 6.824 Distributed Systems course. Overview From the official website:

Nov 5, 2022

mit 6.824 lab

mit 6.824 lab

lab-6.824 0. How to run? go版本: 1.13+ 在高于1.11的版本中报unexpected directory layout, 但是用较低版本goLand无法调试... unexpected dir layout 原因是不支持相对路径包引入, 遇到时在import 删掉.

Dec 9, 2021

learn mit 6.824 lab

MIT6.824 lab1 MapReduce timeout: command not found - brew install coreutils panic data race - 加锁 内层变量会屏蔽外部同名变量 test1 word-count 测试基本功能 test2 indexer

Jan 5, 2022

MIT6.824 Distributed Systems

MIT6.824-Distributed-Systems My Solutions for MIT6.824

Jan 28, 2022

Labs from MIT's graduate-level Distributed Systems course

Labs from MIT's graduate-level Distributed Systems course Course website here Lab 1: MapReduce Lab 2: Raft Consensus Algorithm Lab 2A: Raft Leader Ele

Jun 20, 2022

Distributed-Services - Distributed Systems with Golang to consequently build a fully-fletched distributed service

Distributed-Services This project is essentially a result of my attempt to under

Jun 1, 2022

WeCTF 2020+ Source Code & Organizer's Writeup

WeCTF 2020+ Thank you all for participating! This README contains our writeup sketches. You can also share your writeup on CTFtime. Event Link: https:

Jul 6, 2022

Roadmap to becoming a Go developer in 2020

Roadmap to becoming a Go developer in 2020

Go Developer Roadmap Roadmap to becoming a Go developer in 2020: Below you can find a chart demonstrating the paths that you can take and the librarie

Dec 31, 2022

connect to microsoft flight simulator 2020 using golang

msfs2020-go simconnect package msfs2020-go/simconnect connects to microsoft flight simulator 2020 using golang. cross-compiles from macos/linux, no ot

Nov 23, 2022
learn mit 6.824 lab

MIT6.824 lab1 MapReduce timeout: command not found -> brew install coreutils panic data race -> 加锁 内层变量会屏蔽外部同名变量 test1 word-count 测试基本功能 test2 indexer

Jan 5, 2022
WeCTF 2020+ Source Code & Organizer's Writeup

WeCTF 2020+ Thank you all for participating! This README contains our writeup sketches. You can also share your writeup on CTFtime. Event Link: https:

Jul 6, 2022
Auto Judger for BUAA-SE-OOP Course (2021 Spring)

patpat Auto Judger for BUAA-SE-OOP Course (2021 Spring) 1. 评测机使用方法 1.1. 一些准备工作 1.1.1. 下载评测机 见 GitHub 中的 Releases,下载对应版本即可。目前提供 Windows, Linux, MacOS(I

Sep 25, 2022
An easy-to-use Map Reduce Go parallel-computing framework inspired by 2021 6.824 lab1. It supports multiple workers on a single machine right now.

MapReduce This is an easy-to-use Map Reduce Go framework inspired by 2021 6.824 lab1. Feature Multiple workers on single machine right now. Easy to pa

Dec 5, 2022
My code of the course mit6.824

MIT6.824 Lab1 Rules 最后文件需要输出nReduce个,文件名格式为mr-out-X 输出到文件的格式在mrsequential.go中 只用写worker.go/coordinator.go/rpc.go这三个文件 worker将中间文件输出到当前文件夹下,之后worker执行r

Dec 27, 2022
Implement based on course of mit_6.824 and raft paper

Mit6.824_raft implement based on course of mit_6.824 and raft paper ##Mit 6.824 ###2A leader election Implement Raft leader election and heartbeats (A

Feb 13, 2022
labs & notes on 6.824

Lab 1: MapReduce MapReduce论文 概念 MapReduce is a programming model and an associated implementation for processing and generating large data sets. Users

Mar 6, 2022
Distributed Systems 2021 -- Miniproject 3

Mini_Project3 == A Distributed Auction System == You must implement a distributed auction system using replication: a distributed component which hand

Dec 1, 2021
godesim Simulate complex systems with a simple API.

godesim Simulate complex systems with a simple API. Wrangle non-linear differential equations while writing maintainable, simple code. Why Godesim?

Jan 5, 2023
F' - A flight software and embedded systems framework

F´ (F Prime) is a component-driven framework that enables rapid development and deployment of spaceflight and other embedded software applications.

Jan 4, 2023