RE: Move and Delete (was: bind draft issues)

On Tuesday, 03/04/2003 at 04:47 CET, "Julian Reschke"
<nnjulian.reschke___at___gmx.de@smallcue.com> wrote:
> > Saying that it doesn't support atomic deletes doesn't make sense to
> > me.  The concept doesn't exist.   The binding spec's  DELETE command is
> > asking that only one thing be done.   If you can't do that one thing
you
> > need
>
> And that's why we're discussing this right now. The BIND spec requires a
> very specific DELETE behaviour, and some people do not seem to find that
> acceptable. Therefore the need to come to a consensus.

I've only heard that servers are forced in to this behavior, not that bind
aware
clients actually want this behavior.   I'm arguing that servers can support
this at the
WebDAV level.  And if they can't they need to reject the DELETE request,
reject
BIND's to collections, or not claim that they are supporting BIND
functionality.


> Can you define how I can delete the binding a (a being a collection)
without
> also deleting the binding a/b (when b is present in a)?

See the rest of my posting.  Plus the posting I just made.  Plus what I say
below.


> > I would hope it's possible though and that you wouldn't have to reject
the
> > request. Even in a file system based server, I'd hope that the server
> could
> > simply unmap the collection and then in the background do the
delete/move
> > of the whole tree incrementally if that were appropriate.
>
> But what if this simply is not what the system *should* do?

I did say that it can happen in the background.  It doesn't have to.  It
can be
done in the foreground.

But no one has argued that they want partial results appearing as a result
of a DELETE
in the presence of bindings.  What they have argued is that that servers
are forced to leave
partial results.  I have shown that in the situations mentioned, they are
not forced to leave
partial results.

But doing what I suggest is not the only acceptable approach.  Server
implementations can
claim not to support bindings,
reject BIND requests to collections, or reject DELETE requests that they
aren't sure they can
complete.   But they can't return partial deletion in the presences of
multiple bindings.


> > But if it can't, IMO it needs to reject the request.
>
> It may not be able to reject the request until after it has started
removing
> resources. There's a reason why DELETE isn't atomic in RFC2518.

See the rest of my posting.  You probably can detect if you will not be
able to complete
the operation.   If the MOVE completes, you have completed the request.  If
it
fails, you have not.  This does not leave partial results.   What you will
still need
to do is clean up symbolic references.in to the tree.  This might be
possible to
do in a simple remapping request or you can do it iteratively... or both
ways. This
can be done in a way that makes it unnecessary to have to return partial
results.
Finally... the server probably will want to reclaim (perhaps only in the
absense of
versioning) inaccessable resources.   But that problem doesn't change the
semantics of the WebDAV operation.  If it needs to do that, it can do that
in the
foreground before completion (as it would have had to do anyway) or in the
background, but it doesn't effect what the UNBIND/DELETE method should
return
to the client.


------------------------------------------
Phone: 914-784-7569,   ccjason@us.ibm.com
I do not check nn621779@smallcue.com

Received on Tuesday, 4 March 2003 19:07:05 UTC