[Yum-devel] Sqlite improvements

Gijs Hollestelle g.hollestelle at gmail.com
Sun Jan 16 20:17:36 UTC 2005


Hi all,

I've been working a bit more on my sqlite patches, they look a lot
cleaner now and seem to work quite well for the stuff I use yum for
(install, update and list)

What is working:
- yum list [updates] [obsoletes] [extras]
- yum install
- yum update
- all primary.xml.gz metadata is imported 

What is not working (yet):
- yum info (all the necessary data is in the sqlite database, it just
isn't passed down to yum yet)
- yum whatprovides (full regexp support would be very hard to
implement using sqlite whatprovides /filename or feature is possible
but not implemented yet)
- Support for other.xml.gz and filelist.xml.gz
- Probably a lot more :-(

Some numbers to impress you all:

yum -C list updates: (dag,base,updates,freshrpms) (5226 packages)

Sqlite: 1.4 seconds 13MB memory usage
Normal: 8.6 seconds 65 MB memory usage

yum -C install xen: (dag,base,updates,freshrpms,development) (8917
packages and a lot of deps (this pulls in python-2.3 and all other
kinds of stuff), all headers are cached and it is run upto the point
where it asks for confirmation)

sqlite: 19 seconds 38MB memory usage 
Normal: 67 seconds 105MB memory usage

There is a drawback however: creating the sqlite caches takes some time:
Running sqlite yum list updates as above for the first time needs to
create the sqlite caches and takes 20 seconds, memory usage is 40MB (I
believe both these numbers can be improved)

I have setup a temporary subversion repository to hold this stuff for
now. You can download tarballs from there, use viewcvs to view it,
etc.

The address is:

Viewcvs:
https://svn.win.tue.nl/viewcvs/yum-sqlite
Subversion:
https://svn.win.tue.nl/repos/yum-sqlite
Tar-ball:
https://svn.win.tue.nl/viewcvs/yum-sqlite/trunk.tar.gz?view=tar

If you want to test out this stuff you can download the tarball (or
use the attached patch on a CVS version of yum) and just run
yummain.py from there, this will not damage your installed yum
version. (It will create .sqlite files in /var/cache/yum/repo-name
that you can remove when you're done with testing).

Make sure you have python-sqlite installed on your system, it is
available from dag's repository.

Regards,
  Gijs
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sqlite-v2.patch
Type: text/x-patch
Size: 15771 bytes
Desc: not available
Url : http://lists.baseurl.org/pipermail/yum-devel/attachments/20050116/445df839/attachment.bin 


More information about the Yum-devel mailing list