Grokking the System Design Interview

0% completed

Designing Dropbox

1. Why Cloud Storage?

Cloud file storage services have become very popular recently as they simplify the storage and exchange of digital resources among multiple devices. The shift from using single personal computers to using multiple devices with different platforms and operating systems such as smartphones and tablets each with portable access from various geographical locations at any time, is believed to be accountable for the huge popularity of cloud storage services. Following are some of the top benefits of such services:

.....

.....

.....

Like the course? Get enrolled and start learning!
W

WZ

· 4 years ago

Question about the message queue. Based on the text, it seems one user can have multiple clients (mobile, pc, web, etc.). And the backend needs to maintain a response queue for each of the clients. Now we have 500M users and 3 devices per user. So we are maintaining 1.5B response message queues. Isn't that quite a big scaling challenge? Also, we can we add a chapter for MQ in the system design basics section?

D

deepak.robi@gmail.com

· 4 years ago

Role of metadata servers are not clear here. In early high level design it is specified metadata servers will update the metadata in database but in later part it seems like it is defined as Synchronization server responsibility. Can you please elaborate the sequence of events between Metadata servers and Synchronization server when a file is added or modified.

N

nth learner

· 5 years ago

I think Data Deduplication section should have more detail. I think it is missing discussion about chunk management when updates or modifications are done. I do have a couple of questions about this section. Let's assume that we're keeping chunks of 4K. What happens if a file is modified in the middle due to appending a lot of text (> 1 chunk size)? What would happen in that case? Would the old chunk will replaced by 2 newly created chunks since new data cannot fit in one chunk? Assumption here is due to metadata info, the chunks that contains the data after the modification won't change at all. Or, will the client re-generate the chunks?

Show 2 replies
J

JC Denton

· 5 years ago

I am curious to learn more about how the message queue scales - If users can have multiple devices with many updates queued up for each device, the storage requirements could be quite large?

Show 1 reply
R

Rahul Khandalkar

· 3 years ago

With same idea, can someone explain how to scale 1 server to upload a 20 gb file to 20 server and then scaling up to 10000 server in same data center.

S

Sandeep Kumar

· 4 years ago

Can Memcached be used to store chunks of data? Since, it is a key-value store.

Show 1 reply
S

Surbhi Goel

· 4 years ago

Security section should be explained more. Possible breaches and solutions should be added

Show 1 reply
S

swe

· 4 years ago

how would synchronization work if separate clients make changes to the same file that affect different chunks, but the updated chunks in combination would result in a corrupted file?

Is that possible?

Show 4 replies
S

sghanish

· 2 years ago

Data Duplication for Fault Tolerance is not discussed in this system design ?

K

knowledgeshop

· 2 years ago

The final diagram has LBs for Metadata Servers but not Block Serveres. I believe its required and the diagram should be corrected.

Show 1 reply