On Tue, Oct 21, 2008 at 6:48 PM, Hyrum K. Wright
<hyrum_wright_at_mail.utexas.edu> wrote:
>...
>> (and/or as David suggested, do the initial packing on a temp file and
>> move into place)
>
> I'll have to go back through my logs of that conversation, but I don't really
> understand what that'd buy us. The usual reason to create the temp file is for
> atomicity, which we really don't need here because the atomic operation is to
> remove the shard directory. (There's probably some much more obvious
> explanation which I'm missing; feel free to enlighten me.)
Move the file *after* you know it is complete/good. If some code rolls
around and finds a file sitting there... is it good? bad? Who knows,
because you were working on constructing it in place.
But. I guess that presupposes you go for the file *first*. If you go
for the directory first, find it absent, then find a file... well,
that would work.
BUT, again, I think that you should shoot for the file first. Over the
lifetime of the repository, the directory will be absent many more
times than the file, so you want to save an I/O step and try the file
first. That means: don't make it available *unless* it is proper. And
that means construct elsewhere, and move when known-good (i.e. not for
atomicity, but for knowing it is complete and valid if it is visible).
Cheers,
-g
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-10-22 04:58:48 CEST