When Coolo mentioned that he is looking into improving the rebuild time of Factory
I couldn’t resist to try the script he was using myself. It turned
out that the script was extremly slow, it took about 15 minutes for
the calculation on my computer. The script was originally written a
long time ago for the old autobuild with a much lower number of
packages and dependencies to take care of. The ad-hoc method used
for the ‘rebuild simulation’ just didn’t scale well. Hackweek was a
good opportunity to improve the performance and to add some more
The improved script now simply uses a boring, standard depth first
search to prepare the dense dependency graph for the simulation run.
After that step running simulations on the data is a piece of cake.
Overall the improved script now takes about 10 seconds.
Originally the script assumed an infinite number of build hosts ie
maximal parallelism. That’s a good method for visualizing the
bottlenecks. In reality the number of build hosts is limited though.
So I’ve added options to run the simulation with a fixed number of
build hosts and different algorithms to choose which package needs
to be built next. By using the script in a loop it’s even possible
to produce an animation:
The image shows the amount of blocked, scheduled and currently
building packages at each point in time
Source code is available at gitorious if you want to try it out yourself.
You need an account in the openSUSE build service as mkdiststats
uses osc to download dependency information.
Both comments and pings are currently closed.