educative.io

Regarding the Synchronization Service

You’ve mentioned the following under:
c. Synchronization Service
“The Synchronization Service should be designed to transmit less data between clients and the Cloud Storage to achieve a better response time. To meet this design goal, the Synchronization Service can employ a differencing algorithm to reduce the amount of data that needs to be synchronized. Instead of transmitting entire files from clients to the server or vice versa, we can just transmit the difference between two versions of a file. Therefore, only the part of the file that has been changed is transmitted. This also decreases bandwidth consumption and cloud data storage for the end-user. As described above, we will be dividing our files into 4MB chunks and will be transferring modified chunks only”

However from the preceding diagram, you’ve shown the Synchronization service to be handling only ‘Control Flow’. So where’s the question of transmitting ‘Entire Files’? Isn’t the Synchronization Service dealing only with the metadata? Are you by chance referring to the Chunker?


Course: https://www.educative.io/courses/grokking-the-system-design-interview
Lesson: Designing Dropbox - Grokking the System Design Interview