Software Engineering
Mini S3 - Fault-Tolerant File Storage
Distributed Object Storage System
May 2024View on GitHub
Overview
Mini S3 is a distributed object storage system that replicates the core functionality of Amazon S3. The system uses consistent hashing for data placement across nodes and implements configurable replication strategies for durability. The gRPC-based communication layer ensures efficient node-to-node data transfer.
Key Highlights
- Implemented a distributed object storage system in Java using gRPC for node to node communication, consistent hashing for data placement, and configurable replication strategies to ensure durability and horizontal scalability
- Built versioning and partition-tolerance mechanisms, modeling S3-like reliability across multiple concurrent users
- Designed and evaluated replication factor policies by simulating node outages and rebalancing events, reducing storage overhead by 13% while preserving 99.6% fault tolerance under modeled failure conditions
Technologies Used
PythonCC++JAVARRubyJavaScriptTypeScript