The updates firehose

Nicolas Mailhot nicolas.mailhot at laposte.net
Mon Jun 11 13:34:57 UTC 2007


Le Lun 11 juin 2007 15:06, Matt Domsch a écrit :

> Mirrormanager just returns a yum mirrorlist, which is updated hourly,
> and is very fast to return (under 0.5s almost all the time).

And this kills proxies as the systems behind a proxy will switch from
a mirror already cached by the proxy to another one potentially every
hour. Proxies want a static mirrorlist or a mirrorlist they can cache.
(using a mirrorlist URL with parameters is probably sufficient to make
it uncacheable, better static URLs with mod_rewrite or something
similar behind to translate them in hidden requests)

>> - yum should generate proxy-friendly metadata
>
> It's static files from yum, yes?  What's not proxy-friendly about
> that?

The static files do not use a mimetype that allows embedding
expiration period, so unless the mirror admins configure their http
server to add correct expire info for those specific files in the HTTP
response (no one will bother) proxies will fall back to a default
retention policy.

Usually that means "keep the files x hours/days, and only check later
if they've been updated". Every yum behind the proxy will then use a
cached metadata version that does not correspond to the actual mirror
content and will trigger problems. (typically yum asks for a package
which exists in the cached metadata but is no longuer on the mirror
and has not been cached in the proxy when it did exist -> boom)

If you are behind a non-mandatory proxy you can configure yum to
ignore the proxy for metadata (lots of hassle when you have to change
the default config of many systems. Also this option only exists
because the current system does not work with proxies)

If you're not you're out of luck.

A proxy-friendly metadata would probably be an xhtml index file (with
correct HTML expire metadata) pointing to xml.gz files that change
name every time they're regenarated. Other people may have better
suggestions.

-- 
Nicolas Mailhot




More information about the fedora-devel-list mailing list