Design File Storage & Sharing Service
Design a distributed file storage service like Google Drive or Dropbox.
Clarifying Questions to Ask?
-
What is the core functionality?
-
Who are the users?
-
What file sizes and types must be supported?
-
How is sharing implemented?
-
Are there access controls?
-
Is versioning required?
-
Is real-time collaboration (e.g., Google Docs) required?
Full Problem Statement
Design A File Storage & Sharing Service (like Google Drive or DropBox)
OR
Design a distributed file storage service similar to Dropbox or Google Drive with the following features:
Core Requirements:
- Users can upload, download, and delete files.
- Files are synchronized across multiple client devices (desktop, mobile).
- Support for file versioning.
- Users can share files or folders with others.
Scale Requirements:
- 500 million users.
- 100 Petabytes (PB) of total storage.
- 1 million concurrent file uploads/downloads.
- 99.99% durability and 99.9% availability.
Additional Considerations:
- How would you handle large file uploads and downloads efficiently? (e.g., chunking).
- How would you design the synchronization protocol to handle conflicts?
- How would you optimize storage costs? (e.g., deduplication).
- How would you manage file metadata vs. file content (chunks)?
PlayGround
Loading...
Loading...