Рет қаралды 14,860
As part of our systems design series, this week Liz kicks off a comprehensive deep dive on designing file upload and sharing systems such as Dropbox or Google Drive. She walks through how to scope down the problem by thinking about specific components and use cases, demonstrates how to use capacity estimation to inform her database design, and touch on topics such as ACID, meta servers, and iterative design.
The Challenge:
Design a system such as Dropbox or Google Docs in which a user can store their data on remote servers in the cloud. The remote servers should store files durably and securely, and these files should be accessible anywhere with an Internet connection. The users should be able to make changes to files locally and have the changes be automatically reflected in the cloud and on other clients.
Video Overview:
2:01 The challenge
2:55 How to approach system design questions
8:10 Scoping the problem
13:18 ACID requirements
21:00 Capacity estimates
23:14 Diagraming an iterative component interview
31:10 Client usage
36:06 Meta server
38:39 Block server
41:08 Not server
45:40 Iterative database deign
53:40 References
If you have any recommendations for videos you’d like to see, please comment below.
Reference Links:
* Scaling Dropbox Lecture at Stanford -
• How We've Scaled Dropbox
*Dropbox System Design Article
systemdesignprimer.com/dropbo...
*Magic Pocket - file content storage
dropbox.tech/infrastructure/i...
*Dropbox Architecture Overview
www.dropbox.com/business/trus...
Additional Resources:
* Practice hundreds of real coding challenges at coderbyte.com/
* Need more practice? Check out our channel for more videos on preparing for a coding interview / coderbytedevelopers