Philip Martin <philip@codematters.co.uk> writes:
>Reduced disk IO and a small reduction in working copy size. At
>present the format file is read every time the entries file is read.
Very worthwhile goals. If it is permitted to suggest more aggressive
WC improvements in the same spirit, I would like to mention:
- Put dir-props and dir-prop-base into entries as well.
- Combine all prop-files into one single file: Any file with properties will
take a full disk block for each prop-file (two per file), in addition to
the inodes (which are not free either, contrary to common belief).
And it gets even worse when running SELinux[*].
- Use file locking instead of lock files. This should be considerably faster,
especially over network file systems, and will not leave locks hanging if
a crash occurs. (It won't work on NFSv2, but nor do plain lock files without
a little bizarre dance with link() and stat() which isn't done today.)
- Combine all the .svn directories to one single directory in the root of the
WC. This could avoid several recursive traversals entirely, and need fewer
locks. Users would be happy too (no .svn/ dirs everywhere).
- If the user explicitly asks for it, hardlinked text-base files.
Most editors will break the links on editing, and disk usage would be
almost halved. Inadvertent corruption of the text-base could be detected.
Checkout performance would be much improved as it's mostly I/O bound.
Comparing a file against its hard-link costs zero syscalls if the inodes
(from the readdir) are the same.
- Remove README.txt and empty-file.
[*] SELinux, even in "permissive" mode, will tag each file with an
extended attribute. In ext3, extended attributes are stored in an
extra disk block. We discovered that a single medium-sized WC
consumed over 220 MB extra disk space this way - each file would
use 4K for itself, its text-base, prop and prop-base (even when
the latter two were empty).
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Apr 7 18:31:47 2006