Welcome to the repository for the Distributed Key-Value In-Memory Storage project. This project is developed as a course work for the MTDS class. More detailed description will be added soon.
This repository contains a distributed key-value in-memory storage system, designed to provide efficient and scalable data storage solutions. The system is built using Python and leverages the power of distributed computing to handle large volumes of data with minimal latency.
- Olha Mishchuk
- Oleksandr Horovyi
For detailed information about the project's design and implementation, please refer to the Design Document.
- Install python 3.10 from https://python.org or use pipenv
- Install poetry from the official website
- Change your working directory to one of the three desired poetry projects:
cd clientcd mastercd slave
- Execute
poetry installcommand to install all dependencies
Optionally you may omit steps above, if you have docker and
docker-compose installed. Simply run docker-compose up to
start the project
- For the
masterservice:cd masterpoetry run python server.pyto launch master/coordinator servicepoetry run pytestto run tests
- For the
slaveservice :cd slavepoetry run python slave/edge_node.pyto launch slave servicepoetry run pytestto run tests
- To work with client code:
cd client- Now you may create python scripts using client library
- Or you may run tests via
poetry run pytest
from client.database_client import DatabaseClient
db = DatabaseClient("http://localhost:5000")
db.set("test_key", "test_value")
# Prints "test_value", even on any other machines
print(db.get("test_key"))