[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r1705646 - /subversion/trunk/subversion/libsvn_fs_fs/pack.c

From: Stefan Fuhrmann <eqfox_at_web.de>
Date: Wed, 27 Jan 2016 13:54:43 +0100

On 27.01.2016 13:08, Johan Corveleyn wrote:
> On Mon, Sep 28, 2015 at 12:16 PM, <stefan2_at_apache.org> wrote:
>> Author: stefan2
>> Date: Mon Sep 28 10:16:12 2015
>> New Revision: 1705646
>>
>> URL: http://svn.apache.org/viewvc?rev=1705646&view=rev
>> Log:
>> Tune reorg strategy during the FSFS format7 packs such that it favors
>> checkout-style tree walks now.
>>
>> Since r1703237, following the log history no longer requires frequent
>> access to directory data but mainly relies on noderev predecessor chain.
>> Therefore, it is no longer necessary to tightly pack directories in a
>> separate part of the pack file. With this patch, they are now placed
>> with the file contents and can be processed by a quasi-linear scan
>> instead of reading from two sections per pack.
>>
>> * subversion/libsvn_fs_fs/pack.c
>> (compare_dir_entries_format7): Adapt reporting strategy - process dirs
>> at the same time as files now.
>> (compare_is_dir): No longer needed.
>> (sort_reps): No longer distinguish between file and dir reps but only
>> paths and delta chains when determining reprentation order.
>
> Hi Stefan,
>
> In this post-1.9.x-branch commit (and a couple of subsequent
> pack-related commits) you changed the pack layout for FSFS format7, to
> make it more efficient for exports, checkouts, ...

The benefit is not massive and very much depends on
project vs. repository size. 20% or so for SVN.

> I'm wondering, when 1.10 comes out, how will I be able to benefit from
> this improved pack layout? Supposing I've already dump/load-ed with
> 1.9 in FSFS7, and packed it.

Future commits will use the new strategy. So, speed
will slightly go up over time.

> Does this require a format bump (and another dump/load)? Or do you
> plan on providing a way to "repack" (or simply unpack and pack) a
> packed repository? Currently there is no unpack or repack command ...

This is no format change; the beauty of format 7 is
that we can learn and tweak strategies as we go without
a format bump. OTOH, there is not much potential for
further improvement right now. FSFS is limited by its
fixed sharing scheme.

I have no *plans* for unpack/repack but the thought
has occurred to me. It should not be hard to do as
an offline operation, maybe alongside a reshard command.
If you want to write an 'svnadmin unpack', I'd support
you in that effort.

-- Stefan^2.
Received on 2016-01-27 13:54:00 CET

This is an archived mail posted to the Subversion Dev mailing list.