This project targets on creating a distributed key-value store based on 2PC protocol with consistent hashing in order to maintain data consistency and high availability.
What things you need to install to run the software and how to install them
Vagrant
virtualbox 5.2.30
A step by step series of examples that tell you how to get a development env running
Install Vagrant using the download link
Install Virtualbox using the download link
cd deploy/
Creates the Ubuntu virtual machine using the Vagrantfile
vagrant up
SSH into the virtual machine
vagrant ssh
Folder which has symlink with local machine folder
cd /vagrant
Install the Go Library
go get github.com/elazarl/goproxy
Creates a python3 virtualenv
mkvirtualenv --python=python3 <NAME_OF_ENV>
Install the python dependencies
pip3 install -r requirements.txt
Use this command to deactivate the python virtual environment
deactivate
Use this command to activate the python virtual environment
workon <NAME_OF_ENV>
Similarly, install all the prerequisites.
Use this command from root directory to start the Go Proxy server
go run proxy.go
Use this command from /server to start the Gunicorn Server
gunicorn --bind=0.0.0.0:8000 --log-level=debug wsgi --reload
Start the Celery Worker from /server
celery -A send_email worker --loglevel=info
API Calls with documentation will be updated soon. Moreover how to use CURL or POSTMAN to send the request shall be explained.
Performance Benchmarking tool was created with a support from RocksDB OpenSource Foundations
Not Deployed.
I use SemVer for versioning. For the versions available, see the tags on this repository.
- Dhruv Patel - Initial work - dhruvp-8