On Sun, 8 Nov 2009, James Antill wrote:

Here's the full patch:

http://james.fedorapeople.org/yum/patches/rpmdb-cache-BIG.path

It should be good to merge, and I've tested it quite a bit, including
writting ./test/rpmdb-cache.py which will check that the cache gives an
identical answer to what we'd get without the cache.

Due to the way it uses rpmdb version, it'll be pretty hard to alter the
rpmdb without invalidating the cache ... although it's possible to do if
you work at it, it should be impossible due to problems (power failure in
a transaction etc.).

The patch (ab)uses <cachedir>/rpmdb-cache/ for the place to store it's
cached data ... anyone hate the name? Other obvious candidates are:
 <cachedir>/main/
 <cachedir>/installed/
 /var/lib/yum/... (although that means only root can write)

It adds 5 new APIs for RPMDBPackageSack (YumBase.rpmdb) ...

   def returnConflictPackages(self):
   def fileRequiresData(self):
   def transactionCacheFileRequires(self, installedFileRequires,
                                    installedUnresolvedFileRequires,
                                    installedFileProvides,
                                    problems):
   def transactionCacheConflictPackages(self, pkgs):
   def transactionResultVersion(self, rpmdbv):

And it adds .cleanRpmDB to YumBase.

Now for the "good" stuff:

 echo | yum update FOO ... takes ~65% the time (~4.2 seconds to ~2.8)
 yum version nogroups ...  takes ~50% the time (~1.2 seconds to ~0.6)


I've been thinking about this patch for a while. It worries me b/c of the potential impacts and just for cleanliness.

So I'm thinking we should take this patch set - put it in one big patch and roll it into a package for rawhide - see if anything comes out of it.

Would you be okay doing that?

-sv

_______________________________________________
Yum-devel mailing list
[email protected]
http://lists.baseurl.org/mailman/listinfo/yum-devel

Reply via email to