[Yum-devel] Re: [yum-cvs] yum/yum depsolve.py,1.146,1.147

seth vidal skvidal at linux.duke.edu
Thu Mar 29 12:49:38 UTC 2007


On Thu, 2007-03-29 at 08:38 +0200, Terje Røsten wrote:
> seth vidal
> >
> > I made some changes to checkRemove() that implement what I talked about
> > the other night. Unfortunately we seemed to have picked up a lot of time
> > on the depcheck in my tests and it's all when we search the tsInfo for
> > things that might require something we're removing/obsolete/updating.
> >
> > I'm a little blurry right now from sleep deprivation but I can't think
> > of a good way to speed up that look up. 
> >
> > I'm open to suggestions.
> >
> >   
> Not much help, however 3.1.5 is fast enough: to depsolve 160 updates in 
> 345M is 50 seconds, great!
> 
> With CVS HEAD  the story is different, the problem seems to be that each 
> check is slow,
> I only get a line per second in output like this:
> 
> looking to see what requires 
> ('/usr/src/kernels/2.6.20-1.3023.fc7-i686/arch/arm/mach-pxa/Kconfig', 
> None, (None, None, None)) of dkms - 2.0.16-1.fc7.noarch
> ooking to see what requires 
> ('/usr/src/kernels/2.6.20-1.3023.fc7-i686/arch/arm/mach-pxa/Makefile', 
> None, (None, None, None)) of dkms - 2.0.16-1.fc7.noarch
> 
> With 15000 files in kernel-devel it will take over 4 hours to depsolve 
> this package, (no I don't want to verify that).
> 

The section where it's taking so much time is this:

in depsolve.py lines 1154 -> 1159
        potential_providers = self.rpmdb.searchProvides(r)
        # FIXME the below is expensive - make it less so
        for txmbr in self.tsInfo.getMembers(None, TS_INSTALL_STATES):
            if r in txmbr.po.provides_names or r in txmbr.po.filelist:
                potential_providers.append(txmbr.po)

generating the list of potential providers to check is taking a lot of
time for each run and it grows as the tsInfo size grows.

-sv







More information about the Yum-devel mailing list