Skip to content

An easy to understand implementation of Raft algorithm

License

Notifications You must be signed in to change notification settings

summer-boythink/raft_go

Folders and files

NameName
Last commit message
Last commit date
Mar 19, 2024
Mar 17, 2024
Aug 18, 2024
Mar 19, 2024
Mar 19, 2024
Mar 18, 2024
Sep 4, 2024
Sep 4, 2024
Mar 19, 2024
Mar 19, 2024
Mar 19, 2024
Mar 19, 2024
Mar 19, 2024

Repository files navigation

raft_go

This is a simple KV database based on Raft algorithm,this implementation is very easy to understand

Usage

build

make

start-server

# node1 [leader]
./build/server --local http://127.0.0.1:8080 --peer http://127.0.0.1:8081 --peer http://127.0.0.1:8082

# node2
./build/server --local http://127.0.0.1:8081 --peer http://127.0.0.1:8082 --peer http://127.0.0.1:8080

# node3
./build/server --local http://127.0.0.1:8082 --peer http://127.0.0.1:8081 --peer http://127.0.0.1:8080

start-client

# set key
./build/client set key1 val1 -a http://127.0.0.1:8080

# get key
./build/client get key1 -a http://127.0.0.1:8081

# rm key
./build/client rm key1 -a http://127.0.0.1:8080

Future plan

  1. I will change the MemStorage method to store the log on disk
  2. I'm going to use LSM trees and other, more advanced data structures
  3. Add tests