My status during the recruitment procedure: Status: Pre-final year (3rd), Thapar Institute of Engineering and Technology Position: SRE Intern Location: Bangalore, India Month: August-September, 2021 Applied at: LinkedIn Easy Apply Rounds Conducted ...
blog.saurav-shrivastav.online3 min read
Congrats buddy. π I'm intrigued by the following question:
There is a file of size 1 TB which needs to be transferred to 10k machines. How can this be done efficiently, keeping in mind that there can be network failures, machines going out of disk space, etc.
I initially thought that since there could be network failures, we need something reliable, so the transport layer must be TCP. The simplest thing I can think of is FTP. But since there are 10k machines, we cannot transfer to all of them at once. Because (I think) our server cannot have 2*10k TCP connections simultaneously.
Even if it could, the transfer will be very slow because of the following:
Maybe peer-to-peer is the way to go. Network failure between a machine and a server is very likely, but network failure between a machine and all machines & servers is very unlikely.
I'm not sure how we'll manage/sync a table which maps fragmentId to machineId(s), though. Kinda like gossip protocol maybe?
I would really appreciate it if you could share your approach and any specific details the interviewer shared on it. Feel free to criticise any particular thing you didn't like in my thinking process above. π
Thank you, bhai. And again, congratulations on this new feat. πͺ
Ansh Phirani
Front-End Developer
How many problems of coding and SQL you solved in the Hackerrank Online Test?