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 change. 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). N.