info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: cvs performance questions


From: Larry Jones
Subject: Re: cvs performance questions
Date: Thu, 23 Oct 2003 22:59:36 -0400 (EDT)

Richard Pfeiffer writes:
>  
> When the branch command is run, usually via Eclipse, the problem lies in
> that the tags get created but the new branch creation sometimes fails.  

I don't understand that statement -- as far as CVS is concerned,
creating the tags *is* creating the branch, there's nothing else that
needs to be done.

> Sometimes it does work, slowly, and the branch is created; but other
> times you get these locking warnings, cvs times out and branching fails:

Once again, I don't understand.  Locking messages are perfectly normal
in a busy repository: the messages are informational, not warnings, and
CVS never times out -- it will wait forever to try to obtain the lock.

> Now it appears to me, by the statement " When we get this error we are
> trying to create a new branch off of the proj-10_5_0_1_perf branch." ,
> that they are creating a branch off of a branch.  Thus, they are getting
> further and further from the trunk. I would imagine this alone would
> have to be causing at least some of their speed problems.

No.  Creating a branch in CVS is just creating a tag, which takes
constant time.  Checkin, checkout, etc., are more expensive, but not tag
creation.

It's probably worth a few words about locking details.  Most operations
lock a single directory at a time, which minimizes lock contention. 
Checkout is the notable exception, it locks the entire tree for the
duration of the checkout.  Some versions of CVS also lock the whole tree
for tag operations -- if your server is one of them, that could explain
the problem; you should probably upgrade to the latest stable release if
you haven't already.

Locking involves creating and deleting lots of little directories and
files; those can be expensive operations on some file systems.  If your
repository is on such a filesystem and you have another filesystem where
those operations are very cheap (such as an asynchronous in-memory
filesystem), you might want to set the LockDir option in your
CVSROOT/config file to put the lock files there rather than in the
repository.

-Larry Jones

All this was funny until she did the same thing to me. -- Calvin




reply via email to

[Prev in Thread] Current Thread [Next in Thread]