Richard Hughes (hughsi...@gmail.com) said: 
> Hi all,
> 
> I'd like to ask for comments on a feature I need for the Fedora
> Application Installer. The current yum backend in PackageKit does
> something like this:
> 
> * yum install foo
> * depsolve transaction using cached metadata
> * download foo-0.1.noarch.rpm
> * error! foo-0.1.noarch.rpm doesn't exist
> * download latest repomd, primary
> * re-depsolve
> * download latest filelists
> * continue to re-depsolve
> * download foo-0.2.noarch.rpm
> * install foo using librpm
> 
> Now, we do this as the metadata is cached on the client side for up to
> a week as we don't want to unconditionally update the metadata for
> every transaction, but we don't know if we can download the package
> without downloading all the metadata beforehand. This is incompatible
> with the swish UX in the application installer where we can search for
> things straight away without having "Downloading..." in the UI
> appearing at odd times. So my proposal is thus:
> 
> 1. We retain old packages on the mirrors for a minimum of 7 days.
> 2. We regenerate the metadata on every compose like before
> 3. We only include the latest package version in the metadata
> 4. If the user is installing an "old" package we check if the new
> package is a security or important update and re-download all metadata
> if so
> 
> Point 3 means that the metadata size does not explode, and CLI tools
> like yum don't spend minutes depsolving a much larger set of packages.
> Although this increases the amount of space required on the mirrors
> (by about 15% for fedora-19 by my approximation), the amount of
> bandwidth saved is huge. By my calculations, over the last 7 weeks
> [with ~10 offline updates, and hundreds of 'yum' commands] over 60% of
> my traffic from the mirrors is metadata!
> 
> FWIW; 1,2,3 is what Debian and Ubuntu do. Comments welcome, thanks.

I could see doing this, but it is a non-trivial change to how the
repositories are made, and there aren't really any resources assigned to
work on that. I can give some pointers to where and what would need changed,
if you're interested in looking at it.

Bill
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Reply via email to