Design a Distributed Storage System

Problem

Design a distributed object/block storage system for enterprise data centers.

Requirements

Functional:

  • Store and retrieve large objects/blocks
  • Replication for durability
  • Scale-out capacity
  • Self-healing on disk/node failure

Non-functional:

  • Petabyte scale
  • 11 9s durability target
  • High throughput

Discussion points

  1. Data placement (consistent hashing) and replication
  2. Metadata service and consistency
  3. Erasure coding vs replication trade-off
  4. Failure detection and re-replication
  5. Read/write path and caching
added …
LeaderboardSalaryAccount