seth vidal wrote:
On Mon, 2007-03-19 at 17:29 +0100, Florian Festi wrote:
Hi!
As yum now also resolves only on the xml/sqlite data some of our results
might interesting for the yum development, too.
It turned out that there where no indices in the sqlite database for some of
the common use cases:
returnPrco() in sqlitesack.py:
CREATE INDEX pkgprovides ON provides (pkgKey)
CREATE INDEX pkgrequires ON requires (pkgKey)
CREATE INDEX pkgconflicts ON conflicts (pkgKey)
CREATE INDEX pkgobsoletes ON obsoletes (pkgKey)
Those could be handy if the YumSqlitePackageSack.searchFiles() would try to
make direct use of those columns:
CREATE INDEX filenames ON files (name)
CREATE INDEX dirnames ON filelist (dirname)
I doubt that this will give any visible improvements with the current
depsolver as it is currently hidden by other problems but as the other
problems will get fixed the difference will increase. With our own resolver
the time needed for resolving an "install *" on FC6 + extras + updates (6580
packages) dropped from 10 to 3 Minutes.
As there are plans to directly ship the sqlite dbs insted of the XML
metadata, it might be worth checking if it is better to create the indices
on the client side (sorry, didn't any checks on myself yet).
It also turned out that if any quadratic behavior and looping over files is
avoided resolving is reasonably fast.
How much bigger do these indexes make the sqlite db files?
FC6 primary.xml.gz.sqlite
-rw-r--r-- 1 ffesti ffesti 6289408 Mar 21 09:18 core
-rw-r--r-- 1 ffesti ffesti 7028736 Mar 21 09:17 core.index
-rw-r--r-- 1 ffesti ffesti 9871360 Mar 21 09:18 extras
-rw-r--r-- 1 ffesti ffesti 11011072 Mar 21 09:17 extras.index
-rw-r--r-- 1 ffesti ffesti 4164608 Mar 21 09:18 updates
-rw-r--r-- 1 ffesti ffesti 4686848 Mar 21 09:17 updates.index
-rw-r--r-- 1 ffesti ffesti 1441465 Mar 21 09:18 core.bz2
-rw-r--r-- 1 ffesti ffesti 1577672 Mar 21 09:17 core.index.bz2
-rw-r--r-- 1 ffesti ffesti 2178462 Mar 21 09:18 extras.bz2
-rw-r--r-- 1 ffesti ffesti 2393192 Mar 21 09:17 extras.index.bz2
-rw-r--r-- 1 ffesti ffesti 887487 Mar 21 09:18 updates.bz2
-rw-r--r-- 1 ffesti ffesti 985659 Mar 21 09:17 updates.index.bz2
So quite exactly 10% bigger. But we can create the indices on the client
side if we want to save the bandwidth. Creating the indices shouldn't be
that expensive.
Florian
_______________________________________________
Yum-devel mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/yum-devel