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

Re: Path lookup table

From: Greg Hudson <ghudson_at_MIT.EDU>
Date: 2004-05-31 00:03:12 CEST

On Sun, 2004-05-30 at 17:08, Branko ibej wrote:
> >Actually, I think there is a big question. Unlike a regular filesystem,
> >in Subversion almost all FS usage involves iterating over whole
> >directories.

> How? That doesn't fit.

Checkout, update, switch, diff, status. They all work by grabbing
entire directories out of the repositories, reporting the files that
have changed, pruning off the subdirs that haven't, and recursing into
the remaining subdirs. You won't improve the speed of these operations
with a path lookup table; in fact, if the path lookup table is your only
representation of directories, you'll slow them down dramatically (only
by a constant factor, of course, but a big one).

Commits are different. But the big, time-consuming commits are imports,
which involve repeated operations on a single directory. We're not very
efficient at doing that right now (in BDB, that is; FSFS is quite speedy
because of the directory-plus-changes representation of directories
within transactions), but we don't need a path lookup table in order to
get O(n) performance for n adds to a directory.

The only case where I can imagine a path lookup table really helping is
when you're doing something like serving a web site of out of svn, and
you have a bunch of big directories, and client accesses to those
directories are pretty random. That's pretty marginal.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon May 31 00:03:31 2004

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

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