Cracking the Dropbox / Google Drive System Design Interview Part 1 of 2

  Рет қаралды 15,143

Coderbyte

Coderbyte

Күн бұрын

Пікірлер: 23
@ralucaioan7609
@ralucaioan7609 2 жыл бұрын
This is simply awesome. Thanks a lot!
@RakeshYadav-jc2nr
@RakeshYadav-jc2nr Жыл бұрын
Thanks a lot! This was simple, comprehensive and most helpful, as compared to others. The ref links are awesome too!
@yuhengcai5600
@yuhengcai5600 10 ай бұрын
why do we need a block service to chunk file when there is already a chunker in client side?
@rishisimply
@rishisimply 8 ай бұрын
This was immensely useful. Good that you took ideas from Stanford presentation.
@totsubo2000
@totsubo2000 2 жыл бұрын
Some questions/feedback: 1. In the diagram that shows the meta server communicating with the not server using a queue, the queue has out-arrows to both the not server *and* Metada DB. I'm pretty sure you don't want two systems processing off the same queue. When one systems pops an item of the queue, it will no longer be available for the other system to process. 2. Curious why the not server uses HTTP long polling instead of Web Sockets. I would think web sockets would be more resource efficient than long polling.
@Kamrun4U
@Kamrun4U Жыл бұрын
Thanks for sharing this video.
@pawankishorsingh
@pawankishorsingh 3 жыл бұрын
I feel at 25:17 timestamp and an many other places you are displaying "Client" inside a cloud kind of logo and server in a square box. I am ok with servers but "client" should not be drawn like this. Clients are generally user devices and hence that cloud thingy around it is not right.
@_jatin_mittal
@_jatin_mittal 9 ай бұрын
amazing video! 😇
@nehasht2
@nehasht2 2 жыл бұрын
It was really good video 😊 learnt alot
@miriyalajeevankumar5449
@miriyalajeevankumar5449 2 жыл бұрын
Great work
@8888vampire8888
@8888vampire8888 3 ай бұрын
did we forget an arrow, for feeding information, from the S3 cluster to the Queuing service? How will a new client, that just logged in, will get the actual modified chunk locally on his machine?
@bhavyabansal1143
@bhavyabansal1143 2 жыл бұрын
Thanks for the amazing video, I have a question if you can please clarify. When user lets say create a new file, I have this workflow in mind (please correct if wrong): 1. Chunker create chunks 2. Watcher notices and updates indexer 3. Indexer updates DB on client and notify synchronizer 4. Synchronizer informs block server to upload chunks to S3 5. block server post upload informs meta server to update meta DB. Given this, looks like a client will never interact with meta server directly but in digram i see that connection. Am I missing anything here?
@yuhengcai5600
@yuhengcai5600 10 ай бұрын
1. client will need to interact with metadata server to create/update metadata, with the status of file being "syncing" 2. then it will get a token to interact with block server, to upload file chunk by chunk 3. once that is done, block server will update metadata db. Status will be "synced", and we should also have the reference of the chunk passed into the db
@wuaaron662
@wuaaron662 2 жыл бұрын
thank you so much. The best tutorial i can find for designing dropbox The solution is logically correct while other video only gives you a general intro. But if you pay attention, their solutions is not even workable, due to missing pieces. One KZbinr says there should be request queue and response queue, blablabla. Compared with your solution, that one is a piece of 💩. A queue cannot send msg to client, without a consumer
@pawankishorsingh
@pawankishorsingh 3 жыл бұрын
At timestamp 40:07- why is there a need for block server to connect to metadata database? Isn't metaserver is a facade to this DB and all requests should go via this facade?
@varshard0
@varshard0 2 жыл бұрын
Answer to your question is kzbin.info/www/bejne/hnaXmKqpqbybo8U.
@varshard0
@varshard0 2 жыл бұрын
This diagram is based on their design back in 2008. They had to make the block server call Meta DB directly to reduce the number of round trip, because the block server and S3 are in a different region. They even had to copy a lot of APIs from the Meta Server into the Block Server.
@sivakumartm
@sivakumartm 3 жыл бұрын
nice. thanks for sharing this.. when is the part-2 video will be published?
@durgadeep4988
@durgadeep4988 2 жыл бұрын
Lots of very good information !. thank you!.
@AM-uc1sw
@AM-uc1sw Жыл бұрын
Thanks a lot, it was great!
@dnavas7719
@dnavas7719 2 жыл бұрын
that primary key change was genius
@pawankishorsingh
@pawankishorsingh 3 жыл бұрын
At 42:52- why is there a need to close the connection & then reestablish? Why can't stay open till client is connected (like in case of websockets)?
@varshard0
@varshard0 2 жыл бұрын
That's because Dropbox use long polling, that's how long polling work. I wonder why they use long polling over websocket also. Probably for simplicity and the websocket doesn't reestablish convection automatically.
Пришёл к другу на ночёвку 😂
01:00
Cadrol&Fatich
Рет қаралды 11 МЛН
哈莉奎因怎么变骷髅了#小丑 #shorts
00:19
好人小丑
Рет қаралды 53 МЛН
How to NOT Fail a System Design Interview (By a Data Engineer)
19:32
Choosing a Database for Systems Design: All you need to know in one video
23:58
Google system design interview: Design Spotify (with ex-Google EM)
42:13
IGotAnOffer: Engineering
Рет қаралды 1,1 МЛН
Realtime Advertisement Clicks Aggregator | System Design
32:56
Code with Irtiza
Рет қаралды 21 М.