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

Re: Improving the performance of libsvn_wc for checkouts/updates/switches

From: Josh Pieper <jjp_at_pobox.com>
Date: 2004-05-22 21:29:31 CEST

Philip Martin wrote:
> >> What I observe with the current code is typically
> >>
> >> A dir
> >> A dir/file
> >> A dir/subdir
> >> A dir/subdir/file
> Interrupt here. Is dir/subdir versioned? If not then I don't think
> cleanup will find subdir's log file. I suppose one might be able to
> run cleanup repeatedly.

If the interrupt is hard, i.e. kill -9, the log files will not have
been moved into the live position yet. That could be a problem as
there will now be unversioned obstructions lying around, but no data
should be lost.

If the log file for the inner directory has been made live, but not
the one for the parent directory, cleanup may have a hard time finding
it. If this is a big problem, we could run the parent's log file
before recursing into subdirectories, and would still gain performance
if there were many text files in a directory.

If both log-files were made live before the interrupt, I believe
cleanup would run the parent directory's logfile first, then use the
new state of its entries to recurse and would thus correctly recurse
into subdir.

> >> A dir/another_file
> >
> > Well, it does pass all the tests. :)
> We don't really have much in the way of cleanup regression tests.
> I'm not really sure how this "pending" log file will interact with
> cleanup. At present the log file is written in .svn/tmp/log and moved
> to .svn/log just before it is run. Moving to .svn/log is what makes
> the log file "live", and then it is visible to cleanup. Where does
> your log file accumulate? When does it become live? How does it work
> when there are multiple log files being accumulated?

The pending logs are kept in .svn/tmp/log the same as they are
currently. When either
   a) a delete operation occurs
   b) the editor closes the directory or
   c) the cancellation function returns an error
the log files are moved into the live position in a depth first
fashion and run one at a time.


To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat May 22 21:29:48 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.