[OpenStack-Infra] zuul-merger and garbage collection

Antoine Musso hashar at free.fr
Tue May 12 20:36:18 UTC 2015

On 12/05/15 16:51, James E. Blair wrote:
> Clark Boylan<cboylan at sapwetik.org>  writes:
>> >I would expect git gc on zuul merger repos to be safe. git gc only
>> >cleans up unreachable refs if they are 30 days old by default.
> However, a big part of the performance impact to zuul-mergers is that
> there are so many transient refs that it creates.  So there will be some
> work for git gc to do, but the largest contributor to run time is
> actually refs.  The solution to that might be to have zuul delete old
> refs, though we have to figure out which ones are old first.


Wikimedia setup has been it by that slowness with merge taking as long 
as 80 seconds.  It can be reproduced by doing:

  $ time git fetch --dry-run
  real	0m18.353s
  user	0m17.781s
  sys	0m0.236s

The reason is that git fetch upload all refs to Gerrit to sync the 
working copy and that takes a while.

I wrote a quick script that inspect all refs under refs/zuul and delete 
them if they point to a commit that has a commit date older than X days.


That is a good manual garbage collector that I run once a month or so.

As I pointed in the commit message, a better fix would be to have Zuul 
namespace its references with year/month. Something like:


Antoine "hashar" Musso

More information about the OpenStack-Infra mailing list