Skip to content

A resilient, replicated key-value storage system implemented in Python, featuring active replication and cluster orchestration. Developed for the Distributed Systems course at UFSCar.

Notifications You must be signed in to change notification settings

PedroVFSantos/distributed-key-value

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Distributed Key-Value Store

Overview

A resilient and replicated key-value storage system designed to ensure data consistency and availability across a decentralized cluster. This project was developed as part of the Distributed Systems curriculum at the Federal University of São Carlos (UFSCar).

Core Concepts

  • Consistency: Implements an active replication protocol where the receiving node acts as a coordinator to synchronize data across all peers.
  • Communication: High-performance Remote Procedure Calls (RPC) using gRPC and Protocol Buffers.
  • Fault Tolerance: Distributed architecture designed to maintain data integrity across multiple nodes.
  • Orchestration: Fully containerized environment for simulating real-world network isolation.

Tech Stack

  • Language: Python 3.x
  • Middleware: gRPC, Protocol Buffers
  • Infrastructure: Docker, Docker Compose

Project Structure

  • /proto: Service definitions and message structures.
  • /src/node: Server-side logic, storage implementation, and replication protocols.
  • /src/client: Client implementation for system interaction and testing.
  • /docker: Container orchestration and network configuration.

Setup and Execution

  1. Clone the repository.
  2. Ensure Docker and Docker Compose are installed.
  3. Start the cluster:
    docker-compose up --build
  4. Run the test client:
    python src/client/main.py

Academic Context

Developed for the Distributed Systems (Sistemas Distribuídos) course.

  • Department of Computing (DC)
  • Federal University of São Carlos (UFSCar)

About

A resilient, replicated key-value storage system implemented in Python, featuring active replication and cluster orchestration. Developed for the Distributed Systems course at UFSCar.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages