[Yum-devel] YumRepository._loadRepoXML proposed changes

seth vidal skvidal at fedoraproject.org
Thu Dec 20 05:40:53 UTC 2007


On Thu, 2007-12-20 at 00:26 -0500, James Antill wrote:
> On Wed, 2007-12-19 at 23:35 -0500, seth vidal wrote:
> > Not looked through the whole patch yet but some initial thoughts:
> 
>  n/p you can have a few days :).
> 
> > 1. this looks like a neat implementation.
> > 2.The size of the download if we include ALL of the changelog data is a
> > bit much. It ends up being a download of about 20M for fedora 8
> > everything - then about half that for updates... 
> 
>  So currently from:
> 
> http://download.fedora.redhat.com/pub/fedora/linux/updates/8/x86_64/repodata/
> 
> ...other.sqlite.bz2 = 5.2MB and filelists.sqlite.bz2 = 2.4MB. Which is
> what we'd be downloading.
>  The Fedora main repo. MD will only ever be downloaded once, and we
> could/should prime that at anaconda time (there's an open BZ on that
> anyway, due to having old MD being very bad).
> 
> > We don't NEED the changelog data for depsolving/installs or even
> > searching. Maybe and option to not  grab it at the same time?
> 
>  But, yeh, if it tried to download an extra 7.6MB a lot and you're on a
> modem ... I can see how painful that might be. I'd be tempted to
> recommend them just upping the metadata cache timeouts though.
> 
> > Alternatively, the other direction to take this is to put a simple
> > heuristic into the cache grabbing:
> > 
> >    keep a count on the bad metadata per run per repo. If we get more
> > than 2? Then grab a tmp copy of the repomd.xml from the same mirror and
> > compare that one with our current copy. If the timestamp field of any of
> > the files is newer than the timestamp in the the one we have, then dump
> > the one we have and start over.
> 
>  I can probably implement that as an option if you want to see it.
> 
>  But are you sure we can change the MD after we've given it out?
>  Eg. Something using the yum API calls repo.getPrimaryXML() parses the
> data and then calls repo.getFileListsXML() (which then changes the
> repoXML, and primary.xml) ... dito. for any other combination.
> 

That's true, we can't. We'd have to shut it all down and restart the
process again - which could mean depsolving again.

It's a double edge.

-sv







More information about the Yum-devel mailing list