Fedora extras metadata

Thomas M Steenholdt tmus at tmus.dk
Fri Mar 16 15:10:33 UTC 2007


Michael Schwendt wrote:
>> /Thomas
> 
> What does the algorithm look like?
> 
> "Handshake" implies bidirectional communication, which is not
> available. We only have "slave retrieves from master" or "slave retrieves
> from slave" relationships. Mutual exclusion is not possible either. Flag
> files don't make the mirroring an atomic operation. The master can still
> break the scheme and push updates while a mirror is downloading in believe
> that the previously checked flag file was up-to-date.
> 

IIRC, something like echoing the output of `date` into af file named 
"mirror.wherever.com" in a special dir, upon successful synchronization 
from upstream mirror. That same file would be deleted when starting the 
next sync (there are tricks you can do, like download new packages to a 
temporary dir before deleting old packages and moving stuff in place, to 
shorten that period as much as possible). The point would be that if I'm 
syncing from mirror.somehost.com, I can check if the file 
mirror.somehost.com exists before even trying. If it exists, the mirror 
is consistent, but could still be stale. Staleness would be evident from 
the timestamp.

Also, since we would sync the special directory with the 
mirror.somehost.com file, we can even track problems to watever upstream 
  mirror host and check how old this particular set of packages has been 
on their way from the main site.

Something along those lines.

See http://www.debian.org/mirror/ftpmirror for more info on how the 
debian project does it, and perhaps we can be inspired by that. search 
for project/trace on that site, since that's where they'll throw the 
timestamp file.

/Thomas




More information about the fedora-devel-list mailing list