First commit happened a few days ago. dpb scans for already built packages more aggressively, so that in case of restarts, the I/B information will be more accurate faster: before that change, every pkgpath would go through the queue, and already built paths would move to I/B later.
I'm also test-driving a small patch that moves multi-packages directly into I/B when a path finishes. This should improve performance slightly. Most specifically, keeping already built packages in the queue of stuff to build makes the queue larger and slower. And having more accurate "already built" information will help dpb take better decisions. The other change will soon be committed, it's currently undergoing final tests. dpb will now maintain "affinity" information, that is, it will record on which host each build is taking place. So, when restarting an interrupted dpb/hot fixing a problem, dpb will try to respect that information, as far as possible: during a first pass, it will skip over build candidates if the host doesn't match. They will only be started on the "wrong" host if there is no choice left (that is, the queue is mostly empty and the cpus are starved). Those of you running dpb on clusters should appreciate that. It should make dpb much more resilient to restarts.
