[PATCH] Rough cut on FSFS Packing

Neels J Hofmeyr neels at elego.de
Tue Mar 31 19:59:08 CDT 2009

C. Michael Pilato wrote:
> C. Michael Pilato wrote:
>> Hyrum K. Wright wrote:
>>> I had a few minutes this evening, so I figured I'd throw something
>>> together.  Warning: this may need a bit of editing. :)
>>> I also noticed we don't have any comprehensive section on sharding.  Is
>>> this intentionally, an oversight, or am I just too dense to find it?
>> Nope, no sharding section yet.
> (Though, we do describe the fsfs-reshard.py tool.)

Yes, I was gonna say, the fsfs-reshard.py goes on pretty nicely about
shards. IMHO, it would be best to simply split up that same text and call
the first part "Shards".

With some slight mending, this is basically it, isn't it:


While not an official member of the Subversion toolchain, the
fsfs-reshard.py script (found in the tools/server-side directory of the
Subversion source distribution) is a useful performance tuning tool for
administrators of FSFS-backed Subversion repositories.
[Shards]                                               FSFS repositories
contain files that describe the changes made in a single revision, and files
that contain the revision properties associated with a single revision.
Repositories created in versions of Subversion prior to 1.5 keep these files
in two directories—one for each type of file. As new revisions are committed
to the repository, Subversion drops more files into these two
directories—over time, the number of these files in each directory can grow
to be quite large. This has been observed to cause performance problems on
certain network-based filesystems.

Subversion 1.5 creates FSFS-backed repositories using a slightly modified
layout in which the contents of these two directories are sharded, or
scattered across several subdirectories. This can greatly reduce the time it
takes the system to locate any one of these files, and therefore increases
the overall performance of Subversion when reading from the repository. The
number of subdirectories used to house these files is configurable,
and that's where fsfs-reshard.py comes in. This script reshuffles the
repository's file structure into a new arrangement that reflects the
requested number of sharding subdirectories. This is especially useful for
converting an older Subversion repository into the new Subversion 1.5
sharded layout (which Subversion will not automatically do for you) or for
fine-tuning an already sharded repository.

or, even simpler, just call the whole thing "Shards and fsfs-reshard.py". Or


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: OpenPGP digital signature
URL: <http://www.red-bean.com/pipermail/svnbook-dev/attachments/20090401/f7cd64ec/attachment-0001.sig>

More information about the svnbook-dev mailing list