Skip to content

Hoobie/raft-key-value-store

Repository files navigation

##This is a project prepared for Distributed Systems Engineering Class on AGH University of Technology Only for educational purposes.

Travis CI: ![Travis CI] (https://api.travis-ci.org/Hoobie/raft-key-value-store.svg)

How to run

With Gradle tasks

Running specified servers

./gradlew runServer1 &

./gradlew runServer2 &

./gradlew runServer3 &

Running one of specified clients

./gradlew runSetClient

or

./gradlew runGetClient

or

./gradlew runRemoveClient

Modifying behavior

Modyfing servers (changing addresses or ports)

You can modify bahavior of server tasks by entering /server/build.gradle and modifying run arguments (variable args in each task).

Warning: Arguments for each task have to be consistent! First argument is the address and port of the given server and consequitive ones are addresses/ports of latter servers.

Modifying client (changing key or value)

You can modify key or value you want to set/get/remove from key value store by entering /client/build.gradle and modifying run arguments (variable args in each task). First argument is the action to commit (don't change it as you have three different tasks for each action). Second argument is the key in key value store you want to take action on. Third argument is value connected to that action.

Warning: When applying GET or REMOVE action you don't specify value as you don't change it.

References

https://raft.github.io/

http://thesecretlivesofdata.com/raft/

About

Example implementation of Raft consensus algorithm

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages