Skip to content

ACMClassCourse-2022/Raft-2023

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Raft-2023

注意: 根据 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 20%
Lab 2B 30%
Lab 2C 30%
Lab 2D extra 3%
Lab 3A extra 4%
Lab 3B extra 3%
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
3 7/3
1. Learn Golang
2. Read extended Raft paper
7/4
7/5
7/6
7/7
7/8 Break
7/9
4 7/10 1. pass Lab 2A
2. try to pass Lab 2B
7/11
7/12
7/13
7/14
7/15 Break
7/16
5 7/17 1. debug your code of Lab 2B
2. pass Lab 2C (2A & 2B)
3. learn something about consistency
4. try Lab 3A (bonus)
7/18
7/19
7/20
7/21
7/22 Break
7/23
6 7/24 1. try Lab 3A (bonus)
2. try Lab 2D & 3B (bonus)
7/25
7/26
7/27
7/28 Code Review

About

PPCA 2023 (CS1952) Raft Project Pepo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •