[PATCH 2 of 2] revlog: linearize created changegroups in generaldelta revlogs
Matt Mackall
mpm at selenic.com
Wed May 18 15:55:59 CDT 2011
On Wed, 2011-05-18 at 16:23 +0200, Sune Foldager wrote:
> # HG changeset patch
> # User Sune Foldager <cryo at cyanite.org>
> # Date 1305727158 -7200
> # Node ID 36bb2e5488d2cdc8ac33a16f6809a300abd0aafc
> # Parent d05bc567f5368ac6ee1bd3f27a7746200906759f
> revlog: linearize created changegroups in generaldelta revlogs
>
> This greatly improves the speed of the bundling process, and reduces the
> bundle size considerably in general. If the repository is already ordered,
> this has little effect on both time and bundle size.
>
> For non-generaldelta clients, the reduced bundle size translates to a greatly
> reduced repository size, similar to shrinking the revlogs. For generaldelta
> clients the difference is minor.
>
> A new setting, bundle.reorder, has been added to override the default
> reordering behavior. It can be set to either 'auto' (the default), or any true
> or false value as a standard boolean setting, to either force the reordering
> on or off regardless of generaldelta.
>
> Some timing data from a relatively branch test repository follows. All
> bundling is done with --all --type none options.
So what I'm unclear about here is how this is intended to interact with
the future bundle format. In other words, I want to see a table.
Something like:
old client new client
old server old bundle, no reorder old bundle, no reorder
new server, non-GD old bundle, no reorder[1] old bundle, no reorder[2]
new server, GD old bundle, reorder[3] new bundle, no reorder[4]
[1] reordering is expensive on the server in this case, skip it
[2] client can choose to do its own redelta here, saving CPU on the server
[3] reordering is needed because otherwise the pull does a lot of extra
work on the server
[4] reordering isn't needed because client can get deltabase in bundle
format
(This definition of "new" assumes both GD and the new bundle format are
enabled in the same release.)
--
Mathematics is the supreme nostalgia of our time.
More information about the Mercurial-devel
mailing list