Skip to content

A Fault-tolerant, Sharded Key/Value Service based on Raft.

Notifications You must be signed in to change notification settings

bxiiiiii/6.824-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

6.824: Distributed System

It will present abstractions and implementation techniques for engineering distributed systems. Major topics include fault tolerance, replication, and consistency. Much of the class consists of studying and discussing case studies of distributed systems.

Course 2022

Labs

Lab 1: MapReduce

构建一个 MapReduce 系统,参考 MapReduce 论文相关内容

Lab 2: Raft

参考 Raft 论文实现相关算法

主要难点在于理解并复现 Raft 算法

  • Part 2A: 实现 leader 选举
  • Part 2B: 实现日志复制
  • Part 2C: 实现持久化服务
  • Part 2D: 实现日志压缩(快照)

Lab 3: Fault-tolerant Key/Value Service

基于 Lab2 实现的 Raft, 构建一个容错的 kv 存储服务, 理解线性一致性

主要难点在于如何处理配合 Raft 实现读写的线性一致性

  • Part 3A: 实现没有快照的存储服务
  • Part 3B: 实现带快照的存储服务

Lab4: Sharded Key/Value Service

基于 Lab2 实现的 Raft, 构建一个分片容错的kv存储服务,理解分片提升系统性能

主要难点在于如何处理分片的动态配置变化导致集群之间分片数据的迁移

  • Part 4A: 实现分片控制器,用来协调 raft 集群和分片之间的关系
  • Part 4B: 实现分片服务器

Lab 结构

overview

About

A Fault-tolerant, Sharded Key/Value Service based on Raft.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published