I got asked in an intervew recently to design a file upload feature. After initial discussion, The interviewer asked if I can design for multiple threads. My thought was, As the network bandwidth is limited and the internet is connected through a serial data connection, the network bottleneck will kick-in much before the CPU bottleneck, and a multiple thread implementation would have a limited performance improvement. But the interviewer was hell bend on the multi-thread approach. What are the arguments in favor of a multi-thread upload approach. (I recently came to know that AWS has a library which permits uploads on mutliple threads. So there should be some advantages I am unaware of.)
closed as off-topic by user36472, Ron Maupin♦ Oct 15 '18 at 12:54
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "NE is a site for to ask and provide answers about professionally managed networks in a business environment. Your question falls outside the areas our community decided are on topic. Please visit the help center for more details. If you disagree with this closure, please ask on Network Engineering Meta." – Community, Ron Maupin
With TCP the advantage starts if you can fill multiple windows.
With UDP the advantage is if your systems are ever waiting on turnaround time.
There are also network performance improvements if there is a bandwidth limit per host-port association at any part of the link, though that might well be considered as subverting a policy by those who put the limit in.