Changed the topic because it's completely different. Distributing clients among mirrors depends on the repository architecture. If it's just a bunch of files it can be done on a file-by-file basis, as is done by several repositories. However when there are relations to be obeyed, such as package dependencies and versions, it cannot because a broken mirror may have only part of what's necessary. In other words, the repository must be consistent. This is the case for most linux distros. Having the package manager on the client choose the mirror is usually better, and it should have a list of known-good mirrors, which seems to be already the case. The list of mirrors could be a package that is always installed and updated. It can come configured with a general priority by country or continent pointing to the bigger and most reliable mirrors. The default can be overriden by the user or other criteria, such as specific software.