Distributed Storage Service

Distributed Storage Service
A Cassandra-style distributed key-value storage system implementing consistent hashing, 3-replica redundancy, dynamic node management, and persistent data storage.
Student project building a robust distributed storage service from scratch using C++, inspired by Apache Cassandra's architecture. The system provides a scalable, fault-tolerant key-value storage solution with the following key features:
Core Features
- Consistent Hashing: Implements consistent hashing algorithm for efficient key distribution and load balancing across nodes
- 3-Replica Redundancy: Automatic data replication across three nodes to ensure high availability and fault tolerance
- Dynamic Node Management: Support for adding and removing nodes dynamically without service interruption
- Key-Value Storage: Simple and efficient key-value data model for flexible data storage
- Data Persistence: Persistent storage mechanism to ensure data durability across system restarts
- Read/Write Operations: Full support for user-initiated read and write operations with consistency guarantees
Architecture
The system is designed with a distributed architecture where multiple nodes work together to store and manage data. Each key-value pair is automatically replicated to three different nodes using consistent hashing, ensuring that data remains available even if individual nodes fail. The system maintains data consistency while allowing for dynamic cluster reconfiguration.