Big Muscle, on 05 September 2010 - 10:03 AM, said:
No, it won't. Everything will be slowed down especially on very fast connections. Yes, it will be very fast at beginning, but since downloaded segments have no arrangement, soon or later, you will end up with semi-downloaded file with a lot of small undownloaded segments in it (instead of a few bigger segments in normal case). And what happens then? When your download speed is e.g. 10 MB/s and segment size is e.g. 1 MB, your speed will be degraded to approx. 1 MB/s, just because randomization completely breaks that dynamic segment size which has been done in the past to dramatically improve download speed on fast connections. And the more bytes downloaded, the worse it will be.
I won't say anything about speed, but what it does do is allow users to share files more effectively. We ran a test on this and with a full source uploading a file for ten minutes and then leaving we (four people) were able to continue downloading for about 90 minutes afterwords without the presence of any full sources for the file. This is something that was not possible before since everyone got very much same chunks from the full source.
The point is, before you would never finish a file without a full source but now that is possible. Sure enough ideally each downloader would ask for different segments from the full source to allow more effective partial sharing, however, this requires that the info of the currently downloading/requested chunks is passed among (partial) peers. This way they would know what segments will soon have alternate sources, besides the full source, and ask for the "rarest" segments from the full source.
This might slow the speed one user downloads the file with but on average it will result in more users having the complete file sooner because they are less dependent on full sources upstream and slots. Thus resulting in more full sources for the file faster.
I am by no means someone that should be making these comments since I am anything but familiar with this part of the code but I am simply applying common sense here combined with the fact that most users probably do not have the connections to provide them with 10mb/s downloads on a WAN environment, nor will the sources have the upstream to provide that.
When everyone is connected to the net with fiber optic connections, then it is a different story.
Edit: well as far as I am aware we'll soon have detailed info on the outcome of this change from a real live environment with several users downloading large files from each other and I am sure the capabilities between users connections will have more than enough variety. If the change ends up having more negative side effects than positive ones then it is easy enough to revert it.