[Yum-devel] yum on an olpc machine (slooooooooooow)

Panu Matilainen pmatilai at laiskiainen.org
Wed Dec 20 08:47:54 UTC 2006


On Sat, 16 Dec 2006, seth vidal wrote:

> On Sat, 2006-12-16 at 20:56 +0200, Panu Matilainen wrote:
>>>
>>> Or maybe I'm being crazy, but I don't see it as another copy of the
>>> metadata. I see it as the same copy, just removing the extra processing
>>> of it from every person's machine and having the processing only occur
>>> once.
>>
>> On a second thought...
>>
>> What do we need the xml for then, anyway? Even on fast computers the
>> repodata format is very expensive to process (otherwise we wouldn't have
>> had several generations of pickle and sqlite caches).
>
> If we were going to get rid of the xml format altogether I would
> recommend:
> 1. using the sqlitedb's as an optimization and non-api-breaking test in
> 3.0.X or so
>
> 2. figure out what improvements we could make to the db format to make
> searching faster or to make it smaller on disk. This would mean working
> out the right indexes, etc.

I wrote a quick-n-dirty sqlite "backend" for apt to see how things would 
look like for another implementation (with totally different usage 
patterns) of repodata.

The initial version performs so badly you wouldn't believe it :D

On 2.4GHz AMD64 the creation of dependency cache (which involves walking 
over all packages and recording the dependency data to it's the memory 
mapped dependency cache) takes over 3 MINUTES (!) for just FC6 core 
data. With xml repodata, that's ~6.5s operation on this system, fully 
reading filelists.xml info as well, which the sqlite version doesn't do at 
all at this point.

After a bit of investigation, the major bottleneck here is that the 
provides, requires, conflicts and obsoletes tables don't have index on 
pkgKey. After creating those indexes, it's back to ~6.5s even with the 
naive initial implementation.

I haven't done any timings on how those indexes would affect yum's usage 
patterns, probably not *that* dramatic but it might be something to look 
at.

 	- Panu -






More information about the Yum-devel mailing list