Greetings, While discussing server configuration with Tom, the topic of mirrors and how they might work came up.
I know Krister has been working on the mirroring support and it is coming along quite nicely. However, there are a few things that I don't think have been accounted for yet in our future directions: 1) Automatic mirror population from authority origin Since mirrors are per-authority, it makes sense for the origin of the authority to provide a pre-defined list of mirrors for the client to use that can be refreshed any time a "pkg refresh" or catalog refresh occurs. Of course, this also means that the user needs a way to disable and enable mirrors or to even possibly select a preferred mirror (I can already hear the groaning). 2) Automatic mirror discovery -- assuming #1 is implemented, it would be great to have functionality in the depot server, where in mirror mode, the origin server could be "pinged" and told that a new mirror is available and be automatically added to the pre-defined list of mirrors that it provides. I'm already aware of the possible trust concerns and I think there are a few things that can be done: * Add a setting on the mirror to control whether it attempts to ping its origin (on startup or periodically presumably?) * Add a policy setting for the origin server that allows it to ignore mirror addition requests and log them or email them to the administrator. * Add a certificate mechanism that would allow mirror servers to sign their request so that the origin server can validate that they are a trusted source and automatically add them. The use case in my mind for automatic mirror addition functionality is this: Company with offices in different geographical regions initially adds a central origin server to their network. For performance reasons (and possibly others), it makes sense for them to have a mirror for each geographical or other region. Having the ability to start a new depot in mirror mode and have the origin server automatically discover it and the clients automatically discover it the next time they contact the origin server is invaluable in this scenario. 3) Automatic "preferred" mirror selection There are a number of techniques that I've seen used over the years to determine the best mirror to connect to. I've seen package managers use average ping time, average transfer speed, round-robin, and even random selection to determine which mirror to use from an available list. One thought that occurred to me today was to base selection on closest timezone (a mirror in the same timezone as you is likely to provide a better experience than one in another timezone). In fact, a combination of techniques could be used to isolate the best one to mark as the preferred mirror. For example, we could get the mirrors in the same timezone first (then move up to the next greater criteria), then check response time, then check speed, etc. until we narrow it down to a specific one. Cheers, -- Shawn Walker _______________________________________________ pkg-discuss mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/pkg-discuss
