Skip to content

ACMClassCourse-2024/Raft-2025

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Raft-2025

注意: 根据 MIT 课程要求,你的 Raft 代码仓库应为 私有(PRIVATE) 类型。

Reference

MIT 6.5840 Lab 2

MIT 6.5840 Lab 3

Introduction

Raft is a consensus algorithm for managing a replicated log. It allow a collection of machines to work as a coherent group that can survive all all non-Byzantine conditions, including network delays, partitions, and packet loss, duplication, and reordering. According to the Raft paper, it is more understandable than Paxos.

Goal

  • Learn Golang
  • Understand and implement the Raft algorithm
  • Build a key/value service on top of Raft (ACM Class)
  • Add log compaction for your Raft (bonus)

Tutorial

See Tutorial.md in doc/.

Grading

Part ACM Class
Lab 2A 15%
Lab 2B 25%
Lab 2C 25%
Lab 2D extra 5%
Lab 3A 15%
Lab 3B extra 5%
Code Review 20%

For each lab, we will run the test for $400$ times. Let $S$ be the total score of a lab and $t$ be the times you pass. (Not the final grading standard. We'll annouce the final grading standard later.)

  • For a required lab, your score of this lab will be $$\left\lceil\frac{\max\{t-200,0\}}{2}\right\rceil\times 0.01\times S.$$

  • For a bonus lab, your score of this lab will be

    $$(\max\{t-380,0\})^2\times 0.0025\times S.$$

Schedule

Week Day ACM Class
1 6/25
1. Learn Golang
2. Read extended Raft paper
6/26
6/27
6/28 Break
6/29
2 6/30 1. pass Lab 2A
2. pass Lab 2B
3. try to pass Lab 2C
7/1
7/2
7/3
7/4
7/5 Break
7/6
3 7/7 1. pass Lab 2C
2. learn something about consistency
3. try Lab 3A
7/8
7/9
7/10
7/11
7/12 Break
7/13
4 7/14 1. pass Lab 3A
2. try Lab 2D & 3B (bonus)
7/15
7/16
7/17
7/18 Code Review

About

Course project for PPCA 2025 summer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors