adikul30 / raft

Raft is a distributed consensus algorithm.

Home Page:https://raft.github.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Project for RIT CSCI-652 Distributed Systems course

raft

  1. Install go

    https://go.dev/doc/install

  2. Terminal window 1 => Server

    By default, the code uses 3 nodes. Change N in both server and client files to experiment on using more nodes.

    git clone https://github.com/adikul30/raft

    cd raft/server/main

    to print only important logs

    go run server.go -logtostderr=true -v=1

    to print detailed logs instead

    go run server.go -logtostderr=true -v=2

    After a leader has been elected, to add new logs to raft, run the client.

  3. Terminal window 2 => Client

    cd raft/client/main

    go run client.go

References

      title={In search of an understandable consensus algorithm},
      author={Ongaro, Diego and Ousterhout, John},
      booktitle={2014 $\{$USENIX$\}$ Annual Technical Conference ($\{$USENIX$\}$$\{$ATC$\}$ 14)},
      pages={305--319},
      year={2014}
    }
  1. Excellent MIT OCW (https://pdos.csail.mit.edu/6.824/schedule.html) lectures and labs.
  2. This awesome vizualization (http://thesecretlivesofdata.com/raft/)

About

Raft is a distributed consensus algorithm.

https://raft.github.io

License:GNU Affero General Public License v3.0


Languages

Language:Go 100.0%