# 6.824_2023 **Repository Path**: edidada/6.824_2023 ## Basic Information - **Project Name**: 6.824_2023 - **Description**: MIT分布式基础课程 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-04-17 - **Last Updated**: 2026-03-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MIT-6.824-2023 该课程主要以分布式算法为主,比较系统地介绍分布式系统设计与实现地关键原理与技术。课程LAB主要实现基于Raft共识算法的KV-store框架,分为四个Part,目前完成Part1与Part2。 ## Part 1: MapReduce 该部分的内容是实现一个简化版的分布式MapReduce程序,主要实现Master部分以及Worker部分的关键代码。一个MapReduce集群由一个Master节点与多个Worker节点构成,为了简化实现难度LAB会通过一个Master进程与多个Worker进程模拟集群,简化了实现中传输文件的难度。Worker将会通过定时RPC与Master交互,索取Map任务或Reduce任务并且通知Master完成情况。 ![image-1](Part_1.jpg) ## Part 2:Raft 该部分主要实现Raft算法。Raft是一个状态机分片协议,通过在不同的分片机中储存自身完整状态的镜像实现容错能力。分片机制允许在部分机器异常发生的情况下保证服务的正常运作。 Raft以日志形式描述客户的请求,保证正常运作的分片机器中的日志一致。每个分片机器以日志的顺序执行客户的请求,将这些请求作用与本地的状态机上。由于正常运作的分片机器应该看到相同的日志,并且以相同的顺序执行,因此最终它们应该具备相同的状态。中途发生异常且后续重新加入的节点应该将自己的日志更新到最新的状态,Raft将采取特殊的机制保证其能正确更新日志。 ![image-1](Part_2.jpg)