[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