Jeff King wrote: > I agree that 10,000 packs is ridiculous, but we do see it (and worse) > occasionally from people pushing in a loop before our scheduled > maintenance kicks in. On that subject: one thing Martin Fick (cc-ed) has suggested is moving more of the garbage collection work "inline" into the push path. That is, instead of letting someone push 10,000 packs in a loop, build concatenated packs ("exponential rollup") in the push path and don't return success and commit the packs into the object store until we're done. That way a reasonably small amortized cost is paid up front by the pusher instead of later by everyone. Midx changes things a little: it might make sense to build concatenated idxes instead of packs, which would still avoid the same quadratic behavior. Just a random thought, Jonathan