Skip to content
Snippets Groups Projects
Commit f463eb67 authored by Pierre-Yves David's avatar Pierre-Yves David :octopus:
Browse files

emitrevision: consider ancestors revision to emit as available base

This should make more delta base valid. This notably affects:

* case where we skipped some parent with empty delta to directly delta against
  an ancestors
* case where an intermediate snapshots is stored.

This change means we could sent largish intermediate snapshots over the wire.
However this is actually a sub goal here. Sending snapshots over the wire means
the client have a high odd of simply storing the pre-computed delta instead of
doing a lengthy process that will… end up doing the same intermediate snapshot.

In addition the overall size of snapshot (or any level) is "only" some or the
overall delta size. (0.17% for my mercurial clone, 20% for my clone of Mozilla
try). So Sending them other the wire is unlikely to change large impact on the
bandwidth used.

If we decide that minimising the bandwidth is an explicit goal, we should
introduce new logic to filter-out snapshot as delta. The current code has no
notion explicite of snapshot so far, they just tended to fall into the wobbly
filtering options.

In some cases, this patch can yield large improvement to the bundling time:

    ### data-env-vars.name      = mozilla-try-2019-02-18-zstd-sparse-revlog
      # benchmark.name          = perf-bundle
      # benchmark.variants.revs = last-100000
    before: 68.787066 seconds
    after:  47.552677 seconds (-30.87%)

That translate to large improvement to the pull time :

    ### data-env-vars.name           = mozilla-try-2019-02-18-zstd-sparse-revlog
      # benchmark.name               = pull
      # benchmark.variants.issue6528 = disabled
      # benchmark.variants.revs      = last-100000
    before: 142.186625 seconds
    after:   75.897745 seconds  (-46.62%)

No significant negative impact have been observed.
parent df750b81
2 merge requests!373merge stable into default,!346backport some bundling improvement
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment