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

Re: problem: svnsync to external ISCSI drive increases size of repos

From: Johan Corveleyn <jcorvel_at_gmail.com>
Date: Mon, 16 Jun 2014 15:23:49 +0200

On Mon, Jun 16, 2014 at 1:50 PM, Korte, Michael Johannes
<michael.korte_at_zeiss.com> wrote:
> Hello all,
>
>
>
> I have the following problem and I don’t know whether this is an error in
> subversion, whether I make some user error, or whether this normal
> behaviour.
>
>
>
> I’m using subversion (Version 1.7.9) on a Ubuntu Linux machine (Ubuntu
> 12.04.4 LTS (GNU/Linux 3.2.0-64-generic x86_64)).
>
>
>
> For backup I use svnsync to create a mirror on an external ISCSI drive. The
> curious thing is now that for some mirror repositories the size is exact the
> same as for the original repositories. For some the size of the mirror
> repositories is little bigger and for some it is much bigger, for one double
> the size. When I check the size of the single revisions, most of them are
> identically but some differ very big between the original the revision and
> the revision in the mirror.
>
> Originally I thought with the size of the backup/mirror, I can easily verify
> that the backup is fine/complete.
>
>
>
> There are two other curious things:
>
> When I sync back the mirror to the Linux system the size is reduced again
> and is exactly the size of the original repo.
>
>
>
> Original the repos on the Linux system were created (by svnsync) from the
> backup on the ISCSI drive which was filled from repos on a Windows system.
> By this svnsync (the sync from Windows to ISCSI as well as the sync from
> ISCSI to Linux) the size of the repos did not change.
>
>
>
> This means I watch the following behaviour:
>
>
>
> Svnsync from Windows to Windows : no change of repository size
>
> Svnsync from Windows to ISCSI drive : no change of repository size
>
> Svnsync from ISCSI drive to Linux : normaly no change of repository size
> (expection if the ISCSI repository was originally synced from Linux, the
> during the ISCSI à Linux sync the repository size is reduced to the original
> size on Linux))
>
> Svnsync from Linux to Linux: no change of the repository size
>
> Svnsync from Linux to ISCSI drive : repository size is increased. For some
> repositories only little, for some very much (e.g. Double size)
>
> Svnsync from Linux to ISCSI and back to Linux : First size is increased and
> then size is reduced for the same rate, this means after both syncs the size
> is again identical.
>
>
>
> Is it normal that the repository size is changed during sync from Linux to
> external ISCSI drive? Why is the size changed very much (factor 1 :10) for
> single revisions. Do I make any error during svnsync, or is this the normal
> behaviour?
>
>
>
> Does this mean if I want to use the backup from the ISCSI drive on my Linux
> system I must to a sync back and it is no good idea, to only a robocopy of
> the Repository content from the ISCSI drive to the Linux file system?
>

First thing that comes to mind is that it might be related to the
new-in-1.6-feature of "representation sharing" [1]. If this feature is
enabled, a revision file that would normally contain a full
representation of a file, would now just contain a pointer to that
same representation in an older revision file.

I can imagine a couple of scenario's that could explain your situation:

- Perhaps the svnsync that blows up your repo is an older version (<
1.5), with no representation sharing? When svnsync'ing "back to Linux"
perhaps you're using again a more modern svnsync version, yielding
again a more compact repository (with representation sharing).

- Representation sharing might be disabled on the blown-up repository [2].

- Representation sharing might be broken in the blown-up repository.
For rep-sharing to work properly, the file rep-cache.db in <repository
directory>/db should be accessible (writable) by the process that
performs the commits to the backend (usually the server process, or
the svnadmin / svnsync process if it's accessing the repository
backend directly with a file:/// url).

[1] http://subversion.apache.org/docs/release-notes/1.6.html#rep-sharing
[2] See the rep-sharing section in db/fsfs.conf in your repository directory.

-- 
Johan
Received on 2014-06-16 15:24:41 CEST

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.