HomePhabricator

deltas: skip if projected delta size is bigger than previous snapshot

Description

deltas: skip if projected delta size is bigger than previous snapshot

Before computing any delta, we get a basic estimation of the delta size we can
expect and the resulted compressed value. We then checks this projected size
against the size(snapshotⁿ) > size(snapshotⁿ⁺¹) constraint. This allows to
exclude potential base candidates before doing any expensive computation.

This only apply to the intermediate-snapshot case since this constraint only
apply to them.

For some pathological cases of a private repository this step provide a
significant performance boost (timing from hg perfrevlogwrite):

before: 14.115908 seconds
after: 3.145906 seconds

Details