On Tue, Oct 21, 2003 at 03:17:27PM -0400, seth vidal wrote: > > That COULD be atomic, but it may or may not be worth it. If I > > understand correctly, you currently do this: > > > > 1) write to .newheaders > > 2) rename headers to .oldheaders > > 3) rename .newheaders to headers > > > > If you instead do > > > > 1) write to .newheaders > > 2) COPY headers to .oldheaders > > 3) rename .newheaders to headers > > the copy operation could take forever and a day is my concern. > and in that time, depending on what changed on the repo, the headers are > out of date to the rpms. Yep... that's what I meant by heavy. > > Then it should be atomic. That's a significantly heavier operation, > > though. > > and you'd have to remove headers at some point. This discussion is only relevant when you're replacing a file with another of the same name. > > Another alternative is: > > > > 1) write to .newheaders > > 2) HARD LINK headers to .oldheaders > > 3) rename .newheaders to headers > > > > That's efficient, but requires hard links :) > > which not all filesystems have, right. I was never really _proposing_ these ideas. I was simply pointing out how it _could_ be done. The goal was simply to list the options so the tradeoffs would be clear. I'm with you that the current solution is probably the most sensible. -Michael -- Michael Stenner Office Phone: 919-660-2513 Duke University, Dept. of Physics mstenner@xxxxxxxxxxxx Box 90305, Durham N.C. 27708-0305