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

From: "Clemm, Geoff" <[email-masked]>
Date: Tue, 4 Mar 2003 10:11:07 -0500

I believe it is simpler for a client if the DELETE model stays
consistent (i.e. doesn't change when another binding is added
to a member of the collection).

Also note that it is actually quite complex to state under what
conditions it is OK to partially delete nested bindings; namely,
"when a collection is deleted, a nested binding can be deleted
from the collection only if there is exactly one binding to any
resource on the path from the collection to that nested binding".

Cheers,
Geoff

-----Original Message-----
From: Stefan Eissing [mailto:[email-masked]]
Sent: Tuesday, March 04, 2003 3:46 AM
To: Clemm, Geoff
Cc: WebDAV
Subject: Re: Move and Delete (was: bind draft issues)

Geoff,

if I understand you correctly, you're saying that DELETE on a server
with BINDings must always first *unbind* the target (in an atomic
operation, similar to unlink in UNIX)?

I certainly agree that this is the desired behaviour if the delete 
target
has more than one binding.

Question: is it possible to accept a partial sucess DELETE, iff the
resource to be deleted has no other bindings?

//Stefan

Am Dienstag, 04.03.03, um 00:34 Uhr (Europe/Berlin) schrieb Clemm, 
Geoff:

>
> "Best effort" deletion is forbidden by the bind protocol,
> because it can cause a DELETE in one collection to cause a change
> in another collection, and this kind of "deletion side effect"
> was something we explicitly were trying to avoid.  For example,
> suppose /henry/has-friend/jeff and /jim/has-friend/jeff
> were bindings to the same collection, JEFF, and JEFF has a binding
> named "wife" to a resource, MARI.  Now suppose henry gets mad
> at jeff, and issues a "DELETE /henry/has-friend/jeff" request.
> But suppose at that moment someone else has a Depth:0 lock
> on the /henry/has-friend collection.  The result of a "best effort"
> deletion is the removal of the "wife" binding from JEFF.  That
> may be OK if you were just updating the information accessible
> from /henry (he isn't JEFF's friend anymore, and he's happy to
> purge as much information about JEFF as he can), but with multiple
> bindings, "best effort" deletion has now trashed the JEFF object
> in all the other contexts in which it is still visible (and the
> folks that still are his friends are still interested in that
> information).
>
> So we're not saying that "best effort deletion" is always a bad thing,
> but we are saying that "best effort deletion" is a bad thing when
> you care about multiple bindings to the same resource.
>
> Cheers,
> Geoff
>
> -----Original Message-----
> From: Julian Reschke [mailto:[email-masked]]
> Sent: Monday, March 03, 2003 5:08 PM
> To: Clemm, Geoff; WebDAV
> Subject: RE: Move and Delete (was: bind draft issues)
>
>
>> From: [email-masked]
>> [mailto:[email-masked]]On Behalf Of Clemm, Geoff
>> Sent: Monday, March 03, 2003 10:44 PM
>> To: WebDAV
>> Subject: RE: Move and Delete (was: bind draft issues)
>>
>>
>>
>> To emphasize an earlier comment, it is true that the bind protocol
>> places constraints on how a server is allowed to implement the DELETE
>> and MOVE methods.  In particular, a server that supports the bind
>> protocol is not allowed to do a partial MOVE or a partial DELETE (even
>> though 2518 allows it).
>> ...
>
> Good catch. I remember that we discussed that at some point of time, 
> but it
> seems it was never added to the issues list.
>
> Our server indeed is able to support the BIND method and live 
> properties
> with all their semantics, yet won't do an atomic DELETE on 
> collections. I
> agree that *technically* a server that properly handles bindings 
> *could* do
> atomic deletes, but in reality, there may be reasons why you don't 
> *want*
> to.
>
> Therefore, I'd like the spec not to require a specific behaviou, or, 
> as a
> minimum, change the MUST to a SHOULD.
>
> Julian
>
> --
> <green/>bytes GmbH -- http://www.greenbytes.de -- tel:+492512807760
>

---

From: "Julian Reschke" <[email-masked]>
Date: Tue, 4 Mar 2003 16:42:02 +0100

> Sent: Tuesday, March 04, 2003 4:11 PM
> To: WebDAV

Well, just because it's simpler doesn't necessarily make it an acceptable
model (acceptable to everybody, that is).

> resource on the path from the collection to that nested binding".

I don't think we want to say that.

Some servers will want to implement DELETE as simply removing the binding,
others will want to ensure that they can also cleanup all members (and fail
if they can't). I think both models make sense, and that the presence of
support for an explicit BIND call doesn't really indicate that the former
model always applies. It certainly doesn't for the Unix file system (rmdir()
is only allowed for empty directories) and our system.

Julian