Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Raft-2024

注意: 根据 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.

  • 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/26
1. Learn Golang
2. Read extended Raft paper
6/27
6/28
6/29 Break
6/30
2 7/1 1. pass Lab 2A
2. pass Lab 2B
3. try to pass Lab 2C
7/2
7/3
7/4
7/5
7/6 Break
7/7
3 7/8 1. pass Lab 2C
2. learn something about consistency
3. try Lab 3A
7/9
7/10
7/11
7/12
7/13 Break
7/14
4 7/15 1. pass Lab 3A
2. try Lab 2D & 3B (bonus)
7/16
7/17
7/18
7/19 Code Review

About

PPCA 2024 (CS1952) Raft Project Repo

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages