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

Reply via email to