Hi all, I installed Fedora Core 7 test 3 yesterday to see what I could expect for the final release. I was very pleasantly surprised by the new yum version included, the only thing I noticed was that depsolving yum upgrade from test 3 to current rawhide took a very long time.
I found out that a lot of this time is used because when a package for example readline is set to be upgraded from version a to verion b yum needs to check whether there is anything in the rpmdb that requires something that was provided by version a but no longer provided by the new version b. Apart from doing this in the rpmdb yum also checks whether this condition holds for anything in the current transaction. In order to do this it will for every updated package do the following: Iterate through all packages in the current transaction and through all their requirements and see if there is anything that satisfies the conditions above. When you apply this to an upgrade of 300 packages with an average of 30 requirements per package this takes 9000 steps times 300 packages gives 2.7 million checks! Disabling this check by commenting out lines 998 - 1012 gives some very impressing results: Check enabled: yummain.py upgrade 225.72s user 43.63s system 95% cpu 4:41.73 total Check disabled: yummain.py upgrade 50.75s user 8.54s system 78% cpu 1:15.09 total A factor 3 speed-up! In order to test whether I actually broke something I decided to create a test-case that I thought would fail now because of the removed code: I created an empty test package called test-gijs and installed it. I put an update for test-gijs which requires readline = 0:5.2-3.fc7 in my test repository then called yum update readline test-gijs and this correcly bailed out of depsolving with the following error Error: Missing Dependency: readline = 5.2-3.fc7 is needed by package test-gijs What did not work correctly was running yum update which would attempt to update readline and test-gijs while this is not possible. So it looks like there are some cases where the code is useful Greets, Gijs _______________________________________________ Yum-devel mailing list [email protected] https://lists.dulug.duke.edu/mailman/listinfo/yum-devel
