Ben Collins-Sussman wrote:
> Tobias Ringström <tobias@ringstrom.mine.nu> writes:
>
>>A simpler solution is to define the following "rules":
>>
>>1. If a delta editor operation returns an error, the editor is dead
>> (or wedged, or in an error state or whatever you want to call it).
>>
>>2. When the delta editor is dead, further operations are ignored by
>> the receiver (and the driver must call abort_edit since every
>> other operation is ignored anyway).
>
> Perhaps we should just define an editor to allow asynchronous
> operations on a very small subset of functions.... in particular, just
> open/add_file(), apply_txdelta(), and close_file(). Nothing else. If
> we fail to transmit file1 (and don't realize it yet), that doesn't
> affect our ability to transmit file2.
Interesting idea, but I think it will still be too expensive to have a
synchronization point at every directory. If you have few files in
every directory it will hurt a lot.
Thinking... Since there already are strong ordering requirements on how
to use the delta editor, how about the following? If an error occurs
for a directory entry, all further operations on that directory entry
(or any childred) are ignored until either the corresponding close_dir
or close_file is called.
Consider the following tree
root/
file1
file2
dir1/
file3
dir2/
In this case a failed operation on file1 will not affect file2, but a
failed operation on dir1 will cause the operations on file3 and dir2 to
be ignored.
I think it will quite easy to keep track of this in ra_svn at least.
/Tobias
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 25 16:24:46 2003