[cvsnt] Re: Performance problems

Nitzan Shaked calius at netvision.net.il
Tue Dec 28 19:01:44 GMT 2004

Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.

> Modifying the file itself simply isn't safe.  File reads and writes are
> not atomic (technically neither are renames but they're at least done in
> a single operation in the FSD rather than several, and NTFS keeps a
> journal).

If you believe a "sector write" is an atomic operation, then my suggestion
is perfectly safe. If you don't (believe it) then "rename" as well is not
safe. As I said -- I'd be glad to discuss this at length, and many FS's use
this "2 phase" approach. I am not inventing anything here.

It should be noted however that I've foresaken the idea to change anything,
I am just trying to set things streight regarding the technical feasibility
of the ideas.

> What you're taking about is an insert into the beginning of the file -
> that can't be done without rewriting the whole file anyway.  Working on
> a live file in this way is a recipe for disaster.

I am not talking about inserting into the beginning. I am talking about
chaining the tag (into a linked list) at the end of the current file. This
saves writing a new file and should thus be much faster.

I don't know what "live" file means, but surely every change to every file
should be locked with a semaphore of some kind, the same as is done today.
The locking and unlocking will be done the same way -- the actualy changing
of the file (as opposed to re-writing it) is what's going (or not :-)) to

As to the claim of "recipe for disaster" -- I am again not sure what that
means, it's too general.

> You couldn't implement a scheme as you suggest without completely
> ditching the RCS file format - which is a rewrite of 50-70% of of the
> CVS code, since it's tightly integrated...  It's better to go all the
> way to an SQL database for that effort.

That I pretty much got by now. I am not actually suggesting a change after
seeing the responses and having learnt what I have so far, I'm just enjoying
the argument of whether or not this could be done, and had it been
implemented that (or in a similar) way would it have been better (better ==
faster update, faster tag).


More information about the cvsnt mailing list
Download the latest CVSNT, TortosieCVS, WinCVS etc. for Windows 8 etc.
@CVSNT on Twitter   CVSNT on Facebook