Closed SonnyX closed 5 years ago
I honestly can't think of an easy fool proof method to do this, which makes me almost want to say we should switch to torrent distribution so it can do that hard decision for us.
Counting how x times slower a mirror is seems challenging and non-trivial. What if they have 1Mbit internet and the fast mirror is at 100KBps and the slowest is 10KBps? Technically thats fine cause their max internet is fine.
Sounds like an @JAJames question to me But I honestly would trust you @SonnyX to come up with a good scenario.
Due to the issues I've ran into using high numbers of concurrent downloads, I might set a maximum number for concurrent downloads (for example 6-8). However I'll ask multiple people to test what number of concurrent downloads seem to get good download speeds for them.
Right now the back-end library does not have Mirror Distribution (since the rewrite), before the rewrite it had the simplest form of Mirror Distribution which was: Sort the mirrors by speed, Use a rng between 0 and 5, use the mirror i for x download.
Even though this did not seem to impact downloading speed and might have slightly improved it, this is not a smart mirror distribution system. The old launcher used a counting system for every available mirror if mirror 2 has less active downloads running than mirror 1: use mirror 2
This is a neat system from which I want to take inspiration, however I do want to set limitations. This issue will act as a discussion where I wish to hear your idea on how to improve this system.
When adding mirrors to the mirror list, we download a small file (10kb) from the respective server. This gives us an estimation of how fast each mirror is. The biggest file that is downloaded when installing the game is 600MB, preferably I would like to download this file with my fastest mirror.
Starting question: Should mirrors that are x times slower than the fastest mirror be disabled? If so, how many times slower?