# yum update info
In my last blog , I talked about a few interesting changes in Yum and someone requested that we need more information on what the changes are between Yum 2.6 in Fedora Core 5 and the current 2.9 development series which will be part of Fedora Core 6. Information about all this like I said can be found by digging through the changelog and yum development lists but since I already did that now, here is a short list of interesting changes.
The usual complaint about Yum has been its relatively slow speed compared to Apt or more recently Smart or “missing” features in Yum. The feature list in yum was in many cases by design limited since Seth Vidal and others leading the Yum development didnt want “crazy” ideas implemented within Yum code. Now many of these ideas are prototyped as plugins and what works ends up in yum-utils package available in Fedora Extras. Seth Vidal blogged about this long back. We have more goodies in the package now. Install and check it out yourself.
Over a period of time Yum has been steadily getting speed improvements, Fedora Core 4 introduced a sqlite database backend for Yum which made a noticeable change. One of the things that caused a slowdown was not yum at all but the Fedora mirror infrastructure which needed to manage hundreds of mirrors, check for which mirrors are updated and which one is the nearest and more speedy to the user. Luke Macken wrote a yum-fastestmirror plugin available in Fedora Extras to help out with this issue. When you install this plugin, it will check for the mirrors the first time and retain this speed information in cache and use that in subsequent runs. The mirror infrastructure itself got a major boost recently. As a result of this, recent versions of Yum in Fedora development tree is much more smarter in managing and picking out a mirror near to you.
Now Yum 2.9 series has a metadata parser written in C. For those who dont know, metadata parsing is what happens when you see a series of hash marks like “######” after the download is completed. This is where Yum figures out the dependency information between packages and makes sure that every package required to install what you wanted is available. So you want to know how big is the improvement really? Good question. Straight from the source. As you can see the total parsing time has went down from 44.5 seconds to just 7.17 seconds.
When you talk about speed, benchmarking to put these quantities into exact numbers and finding out where exactly the particular command or program is spending its time on. We would then have scientific data rather than just perceptions which we can benchmark regularly
on updates to ensure that we dont have regressions and splitting up the speed between the different sub operations would help in understanding where we need to spend more time to optimize the software. You can do such profiling in yum easily. More such profiling results are available. .
Now enough with speed. There have a number of other changes too some of which are API related and wouldnt be user visible. James Bowen did the work to make Yum switch from its own logging mechanism to Python’s and display more information in the command line.
Luke Macken did some metadata improvement and Puplet work which he showed off recently. You can get all the goodness if you have yum-updatesd package installed from Fedora development tree. Jeremy Katz and Paul Nasrat have been hacking on some bits. Marcel Hild did work on a deltarpm plugin. Delta rpms create a diff between package updates so that you have much less to download. Chris Lumens has been doing some improvements here and there too.
Seth Vidal has also been discussing caching improvements with Jeremy Katz and brainstorming on Zeroconf like discovery of Yum repositories. We already have discussions happening on the road to the future with 3.0 So hope that answers the questions regarding recent development and if you need to more details about new developments in yum or anything in Fedora, post comments.