Skip to content

Distributed in-memory database written in Python by Oleksandr Horovyi and Mishchuk Olha

Notifications You must be signed in to change notification settings

OlhaMish/distributed-in-memory-database

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Distributed Key-Value In-Memory Storage

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.

Project Overview

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.

Authors

  • Olha Mishchuk
  • Oleksandr Horovyi

Documentation

For detailed information about the project's design and implementation, please refer to the Design Document.

Features

Getting Started

Prerequisites

  1. Install python 3.10 from https://python.org or use pipenv
  2. Install poetry from the official website
  3. Change your working directory to one of the three desired poetry projects:
    • cd client
    • cd master
    • cd slave
  4. Execute poetry install command 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

How to use

  1. For the master service:
    • cd master
    • poetry run python server.py to launch master/coordinator service
    • poetry run pytest to run tests
  2. For the slave service :
    • cd slave
    • poetry run python slave/edge_node.py to launch slave service
    • poetry run pytest to run tests
  3. To work with client code:

Client library usage example:

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"))

About

Distributed in-memory database written in Python by Oleksandr Horovyi and Mishchuk Olha

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 94.1%
  • Dockerfile 5.9%