[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