Skip to content

dedetheprogrammer/ssdd21-22

Repository files navigation

The Raft Consensus Algorithm

Distributed Systems University Project: "KEY/VALUE" Storage system via distributed server. Raft Consensus Algorythm in Golang. Implements:

  • Leader selection.
  • Log validation and replication.
  • State machine application.

For more information, visit the raft github repository

Execution.

Pass as many addresses as raft nodes you want and indicate which one, the current node you are trying to launch, is.

# Run it immediatly.
go run storage_srvraft.go <me> <ip/dns:port>...

Sends operation to the server indefinitely.

# Run it immediatly.
go run simple_cltraft.go <ip/dns:port>...

Implements several operations to interact with the raft server.

# Run it immediatly.
go run interactive_cltraft.go <ip/dns:port>...

It has already defined the ip, then for interacting with new addresses you must change them.

go test -v raft_integration_test.go 

Notes

  • Developed with go1.17.2 windows/amd64.
  • It can be compiled on both linux and windows.
  • This code does not have in count the backend about the connection system in which it can be builded on, it fully depends on your own design decision (ssh, local connections, Kubernetes-Docker).

About

Distributed Systems Project. Raft Consensus Algorythm - GO implementation.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages