You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by "Sadinoff, Daniel" <da...@gs.com> on 2001/08/01 18:41:34 UTC

[late] design consideration: concurrent processing

I've been lurking here for some time, rooting for you guys to come and
deliver us all from CVS, but I just noticed a wart on CVS that I'm not sure
y'all are thinking about.

Stop me if this has come up, or is somehow irrelevant to subversion, or I'm
making a mountain out of a molehill.

I just ran two "cvs tag" operations concurrently in the same checkout area
(wanting to mark the same source with two different tags), and got one of
these:

    cvs [tag aborted]: cannot rename file CVS/Entries.Backup to CVS/Entries:
No such file or directory

I imagine that the two processes arrived in the same directory, individually
create a "CVS/Entries.Backup" file and try to do a rename, with the last one
losing.  
Now, even if my theory of CVS is wrong, and I had an "rm" going in the
background, the issue stands:

   Any svn command that is not "reentrant", in the sense that it requires a
local checkout area, *and writes to it*, ought be documented as such.

My impression is that the svn commands are [going to be?] categorized
according to whether they need a local area or not, but I couldn't find
where it might say whether they're read-only.  Perhaps I'm conflating the
client API with the standard CLI client.  It ought to go without saying that
multiple read-only local-area-requiring commands ought to be able to run
concurrently without any problems.

I think that the "parallel processing" use case ought to be in the minds of
the coders, but if the design of subversion makes it bulletproof, then
great.

--
Danny Sadinoff    Goldman, Sachs & Co.
212-357-9608     daniel.sadinoff@gs.com


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: [late] design consideration: concurrent processing

Posted by kf...@collab.net.
"Sadinoff, Daniel" <da...@gs.com> writes:
> I think that the "parallel processing" use case ought to be in the minds of
> the coders, but if the design of subversion makes it bulletproof, then
> great.

It's "bulletproof" in the sense that you'll get a lockout if two
processes are going to interfere with each other (in the wc).  That
may not be the ideal result in all circumstances :-), but it will
prevent data corruption.

Whether two operations mutually lock each other out depends on what
they are; not all do.  You can tag and diff at the same time, for
example.

-K

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org