Skip to content

Implementation of the RAFT consensus protocol using AKKA actors

Notifications You must be signed in to change notification settings

Michael-Dratch/RAFT_Implementation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README

Michael Dratch
RAFT IMPLEMENTATION
5/17/23

Project Description:

This project is an implementation of the RAFT consensus protocol using the Akka actors framework.The main program simulates client requests to the consensus
group in order to observe how to the system responds to requests and to server failures.

Instructions:
The program takes 4 command line arguments:

server count: the size of the Raft group the program will create

client count: the number of clients that will make requests to the group

concurrentFailures: how many servers the the program will make fail at once
                    this can be between zero and n/2 - 1. One client will send fail messages
                     that make this number of servers fail every 5 requests sent. The frequency
                     is hardcoded to failures every 5 requests to avoid excessive program arguments.

numClientRequests: the number of requests each client will make to the Raft Group
                   requests are sent to random servers and clients stop making requests
                   after they have reached this number. This can be increased to see the
                   system run over a longer period of time.

These arguments allow you to run the program with different load and failure characteristics.

When the program starts the Servers and Clients are spawned. The clients start sending requests to random servers in
the group. The servers log these events:

-When servers time out and start elections
-When servers receive votes
-When servers get elected as leader
-When servers receive client requests
-when servers forward requests to the leader
-The leader logs when an entry is committed
-Clients log when they receive responses to their requests

Clients will log when they have received responses to all of their requests and activity will stop
Pressing enter will shut down the actor system and end the program.

About

Implementation of the RAFT consensus protocol using AKKA actors

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages