Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dhruvp-8/arancia
A distributed KV Store written in Go and Python based on 2PC protocol with consistent hashing.
https://github.com/dhruvp-8/arancia
celery consistent-hashing firebase flask golang leveldb proxy-server python3 rabbitmq saltstack vagrant
Last synced: 7 days ago
JSON representation
A distributed KV Store written in Go and Python based on 2PC protocol with consistent hashing.
- Host: GitHub
- URL: https://github.com/dhruvp-8/arancia
- Owner: dhruvp-8
- License: mit
- Created: 2019-07-10T00:37:13.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T05:52:54.000Z (about 2 years ago)
- Last Synced: 2024-11-13T13:09:44.439Z (about 1 month ago)
- Topics: celery, consistent-hashing, firebase, flask, golang, leveldb, proxy-server, python3, rabbitmq, saltstack, vagrant
- Language: Go
- Homepage:
- Size: 341 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Arancia - Distributed Key Value Store
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.
### Architecture
![Alt text](./AranciaDB.jpg "AranciaDB Architecture")### Prerequisites
What things you need to install to run the software and how to install them
```
Vagrant
```
[Download vagrant for macOS](https://releases.hashicorp.com/vagrant/2.2.5/vagrant_2.2.5_x86_64.dmg)```
virtualbox 5.2.30
```
[Download virtualbox for macOS](https://download.virtualbox.org/virtualbox/5.2.30/VirtualBox-5.2.30-130521-OSX.dmg)### Installing
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
```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
```Similarly, install all the prerequisites.
## Running the tests
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
Performance Benchmarking tool was created with a support from RocksDB OpenSource Foundations
## Deployment
Not Deployed.
## Versioning
I use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/dhruvp-8).
## Authors
* **Dhruv Patel** - *Initial work* - [dhruvp-8](https://github.com/dhruvp-8)
## License
## Acknowledgments