Design interviews / Intermediate / 5 min
Design Dropbox: chunks, dedupe and sync
Files as 4 MB chunks named by hash. Edit one slide and only one chunk moves; files the server already has upload instantly.
Start the simulation → Change the load, break a part, watch what happens. Free, no sign-up.
In short
- What it is
- Dropbox splits files into chunks named by their content hash, uploads only chunks the server lacks, and keeps a list of chunk hashes per file version.
- Why it matters
- People edit big files a little at a time on many devices, and many users store identical files.
- The trade-off
- Smaller chunks find more duplicates and send less on edits, but mean more hashes, metadata and requests.
- Say it in an interview
- "Client chunks and hashes files, asks the metadata service which hashes are missing, uploads those to block storage (S3), commits the new version, and other devices get notified to fetch the diff."
Check yourself
You change one slide in a 100 MB file. What does chunked sync upload?
Answer: Only the chunk or chunks whose hash changed. Chunks are compared by content hash; unchanged chunks are already on the server.
Why can uploading a popular file take no time at all?
Answer: The server already stores chunks with the same hashes, so only the file’s chunk list is sent. Content-addressed storage dedupes identical chunks across all users.
What does naming chunks by their hash give the server?
Answer: A way to tell instantly whether it already has that exact content. Same bytes give the same hash, so the hash is both the chunk’s id and its duplicate check.