Hi.

Olivier Berger <[email protected]> writes:

> Thorsten Glaser <[email protected]> writes:
>
>> On Thu, 16 Jan 2014, Olivier Berger wrote:
>>
>>> Are you suggesting that this wouldn't happen if we configured the SVN
>>> repos differently, i.e. is only a side effect ?
>>> 
>>> Can you elaborate on the enable-rep-sharing = false ?
>>
>> Basically, setting “enable-rep-sharing = false” disables
>> that SQLite crap, AFAICT from my duckduckgoïng around.
>
> OK, but it is unclear to me what exactly enable-rep-sharing is
> controlling... I haven't yet found a piece of docs explaining that :-/
> Still searching...
>

Responding to myself as I have finally found relevant information, I
think :

- http://subversion.apache.org/docs/release-notes/1.6.html#rep-sharing


 "Sharing multiple common representations (issue 2286, server)

 When using many branches and merging between them often, it is common
 to have files with similar lines of history which contain the exact
 same content. In the past, Subversion has stored these files as deltas
 against previous versions of the file. Subversion 1.6 will now use
 existing representations in the filesystem for duplicate
 storage. Depending on the size of the repository, and the degree of
 branching and merging, this can cause an up to 20% space reduction for
 Berkeley DB repositories and a 15% reduction for FSFS repositories.

- 
http://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_fs_fs/structure

 "When representation sharing is enabled, the filesystem tracks
 representation checksum and location mappings using a SQLite database
 in "rep-cache.db".  The database has a single table, which stores the
 sha1 hash text as the primary key, mapped to the representation
 revision, offset, size and expanded size.  This file is only consulted
 during writes and never during reads.  Consequently, it is not
 required, and may be removed at an abritrary time, with the subsequent
 loss of rep-sharing capabilities for revisions written thereafter.


You just had to figure out that "rep-sharing" stands for "representation
sharing" and not "repo sharing" ;-)

So what I understand is that the default is representation sharing is
activated (even if the fsfs.conf isn't clear about the default value,
but there are bug reports upstream on that particular issue, I think),
which is supposed to be a good thing disk-space wise, in which case, the
DB file ought to be used for performance reason, unless it becomes too
big and creates other issues otherwise...


So... I'm not sure the right fix is to set enable-rep-sharing to false,
but I'd probably prefer to touch an empty file with proper rights before
creating the repo, until svn fixes the issue with its sqlite
sub-component.

Hope this makes sense.

Best regards,
-- 
Olivier BERGER 
http://www-public.telecom-sudparis.eu/~berger_o/ - OpenPGP-Id: 2048R/5819D7E8
Ingenieur Recherche - Dept INF
Institut Mines-Telecom, Telecom SudParis, Evry (France)


--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to