This project has completed lab1 and a portion of lab2
MIT 6.824 is a computer science course called “Distributed Systems” that aims to introduce the fundamental principles and techniques of designing and implementing distributed systems. The course includes several laboratory assignments, with lab1 and lab2 being the most prominent ones. Here is a brief introduction to these two labs:
Lab1: MapReduce Lab1 focuses on implementing a basic MapReduce framework. MapReduce is a distributed computing model used for processing large-scale datasets. In this lab, you will implement a simplified MapReduce library and use it to perform some tasks. Specifically, you will implement a MapReduce engine that includes basic functions such as Map, Reduce, and Shutdown. You will also tackle concurrency and fault recovery issues. By completing this lab, you will gain a deeper understanding of how MapReduce works and the design decisions involved.
Lab2: Raft Lab2 aims to implement the Raft consensus algorithm. Raft is an algorithm used for achieving replica consistency in distributed systems, known for its simplicity and ease of understanding. In this lab, you will implement a basic Raft library and use it to build a Key/Value service with multiple replicas. You will face several challenges, including implementing leader election, log replication, and state machine replication, which are the core components of the Raft algorithm. Through this lab, you will gain a deeper understanding of the Raft consensus algorithm and its application in building distributed systems.
These labs aim to provide students with hands-on experience in key techniques and principles of distributed systems and help them understand the design and functioning of distributed systems.