On Sun, 30 May 1999, John Polstra wrote: > There were other objections which were serious to make me (hang on > a second -- where is that CVSupMeister cap ... ah, there we go, > it's in place now) decide not to do it. One objection was that a > mirror might have been network-isolated from the master server for an > extended period of time. In that case, you'd randomly get a _big_ > step backwards in time.
The solution I see here is for the cvsup mirrors to maintain a timestamp of the last time they updated from freefall (for multi-tiered mirrors, this value should be passed down the chain so each of them knows the age of their files relative to the master server) User clients will maintain their own timestamp when updating from a server (one per collection), which is the time at which their server's files were last updated from freefall, expressed relative to the local system clock (i.e. the server says "I last updated x seconds ago", and the client records time()-x to deal with clock synchronisation problems with the server). When a client connects to a server, it receives the time delta from the server corresponding to the time since the collection was mirrored (since this value is passed down from parent mirrors it corresponds to the "freefall age" of the current collection state), and if the local time delta is shorter, will refuse to update. In other words, the client says "The files I got on my last update were mirrored as of 45 minutes ago on freefall, but this server has a mirror which is 2 hours old, so I'm not touching it". Can anyone see a simpler way? Something like this could have another use if the servers could be polled for their timestamp - you could poll a set of servers and pick the one with the most recent mirror: on average, out of 20 servers chances are one of them has files which are less than 3 minutes old. This would have the effect of hitting servers (maybe hard) just after they update - maybe that would be too destabilizing. Kris ----- "Never criticize anybody until you have walked a mile in their shoes, because by that time you will be a mile away and have their shoes." -- Unknown To Unsubscribe: send mail to majord...@freebsd.org with "unsubscribe freebsd-current" in the body of the message