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

From: "Clemm, Geoff" <[email-masked]>
Date: Fri, 7 Mar 2003 21:08:31 -0500

From: Brian Korver [mailto:[email-masked]]

   Other than loops, what are the problems unique to multiple
   bindings and partial MOVE?

One example was posted in the message below:

   From:	Clemm, Geoff [[email-masked]]
   Sent:	Monday, March 03, 2003 6:34 PM
   Subject:	RE: Move and Delete (was: bind draft issues)

   ...
   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.

---

From: "Julian Reschke" <[email-masked]>
Date: Sat, 8 Mar 2003 08:35:13 +0100

> From: [email-masked]
> [mailto:[email-masked]]On Behalf Of Clemm, Geoff
> Sent: Saturday, March 08, 2003 3:09 AM
> To: 'WebDAV'

Geoff,

I don't think this issue exists if a server does UNBIND when removing one of
multiple bindings and non-atomic-DELETE when removing the last binding (see
[1]).

[1] <http://lists.w3.org/Archives/Public/w3c-dist-auth/2003JanMar/0263.html>

--
<green/>bytes GmbH -- http://www.greenbytes.de -- tel:+492512807760

---

From: "Lisa Dusseault" <[email-masked]>
Date: Sat, 8 Mar 2003 10:44:16 -0800

What about this model with respect to DELETE and bindings? Rough
specification-like language follows...

---
When a client issues a DELETE request to a collection that has internal
bindings, the preferred server behavior is naturally to achieve a
complete success, whenever possible.  However, servers may behave
differently depending on what bindings exist in the rest of the system.
The collection being deleted may contain the last bindings to one or
more resources. When the last binding to a resource is deleted, the
server may be implemented to perform some cleanup (e.g. release tied-up
storage resources).  If the server is unable to complete its cleanup,
the server MAY do an incomplete recursive delete operation, leaving some
resources behind. The server MAY leave parent collections of undeletable
bindings/resources in place in order to preserve a consistent URL
namespace -- this is equivalent to the behavior specified in RFC2518
[section ref].  The benefit of maintaining a consistent namespace, to a
server implementation, is that orphaned resources remain findable by
clients, so that clients can take actions like changing permissions or
removing locks and finish their DELETE operation.  In case of a partial
DELETE success, the server MUST report individual undeleted
bindings/resources, URL by URL, using the multi-status response body.

 At the other extreme, a DELETE request to a collection may be as simple
as an atomic unbind, which is clearly preferable because to the client's
point of view this is a complete success.

---
Lisa

> -----Original Message-----
> [mailto:[email-masked]] On Behalf Of Clemm, Geoff
> Sent: Friday, March 07, 2003 6:09 PM
> To: 'WebDAV'

---

From: "Julian Reschke" <[email-masked]>
Date: Sat, 8 Mar 2003 20:09:52 +0100

> [mailto:[email-masked]]On Behalf Of Lisa Dusseault
> Sent: Saturday, March 08, 2003 7:44 PM
> To: 'Clemm, Geoff'; 'WebDAV'

...I think that's MUST...

> bindings/resources, URL by URL, using the multi-status response body.

(except for result minimization as mandated by RFC2518, section 8.6.2.