Back to problems
Distributed Database System Design (Partitioning & Replication)
Design a distributed database system that can store and retrieve data across multiple nodes while maintaining consistency, availability, and partition tolerance. The system should support replication, sharding, and transactions.
Constraints
Functional
Read/write, replication across nodes, sharding for scale, optional ACID transactions, configurable consistency (strong/eventual), cross-shard queries, graceful failover
Non-functional
99.99% uptime, petabytes and millions of ops/s, configurable consistency, < 10ms read/write, durability, partition tolerance
Scale
10 PB, 1000 nodes; 10M ops/s (80:20 read/write); replication factor 3; ~3.3 TB per node; ~10 GB/s = 80 Gbps
Stages ahead
1Requirement Analysis
2API Design
3High-Level Design
4HLD Extensions
5Trade-offs