File Storage System Design

April 01, 2023 | 1 Minute Read

Table of content:

File Hosting Service like Dropbox enables users to store their data on cloud. These servers are maintained by cloud storage providers and made available to users over a network.

Functional Requirements

  1. User should able to upload/download files
  2. System should sync files across all devices

Non-Functional Requirements

  1. System should highly reliable/scalable
  2. System should be highly available with eventual consistency

Capacity Estimation

Throughput
  • Read and Write heavy System
  • DAU : 1M users and 10 files upload/day
  • 100 uploads/sec
Storage
  • 100MB X10M -> 1000 TB/day - 1 Peta Byte/day

High Level System Design

Dropbox High Level System Design
  • Internal Metadata: Will keep track of all the files, chunks, their versions and their location in the file system
  • Chunker split the files smaller pieces called chunks. it will also be responsible for reconstructing a file from its chunks.
  • Watcher monitor the local workspace folders and notify the indexer of any file changes
  • Indexer communicate with the remote synchronization service and internal metadata DB.