This repository contains a distributed key-value store using the Raft Consensus Algorithm. Three different Raft implementations are supported.
- github.com/relab/rkv
- Common code.
- github.com/relab/rkv/scripts
- Ansible playbooks for experimental evaluation.
- github.com/relab/rkv/cmd/rkvd
- Key-value store server.
- github.com/relab/rkv/cmd/rkvctl
- key-value store client.
- github.com/relab/rkv/cmd/{getleaderid,postprocess,printboltdb}
- Various utility programs.
You might not need to execute all the steps but this should work if you are starting from scratch on Ubuntu 16.10.
# You need at least Go and Git.
apt install -y golang-go git
# If you have not set up your Go environtment; this is the minimal required.
cat <<EOF >> ~/.profile
export GOPATH=~/go
export PATH=\$PATH:\$GOPATH/bin
EOF
## Make sure $GOPATH is set and $GOPATH/bin is in $PATH.
source ~/.profile
# Alternatively (but won't be permanent).
## export GOPATH=~/go
## export PATH=$PATH:$GOPATH/bin
# If the repository is private you need to create an SSH key and add it at
# github.com/settings/keys. and make sure it's in your ~/.ssh folder.
git config --global url."git@github.com:".insteadOf "https://github.com/"
# Get the source.
go get github.com/relab/rkv
# Install the binaries.
make install
# Running tests.
make test
# Removing the binaries.
make clean