- From: Lisa Dusseault <lisa@xythos.com>
- Date: Sat, 8 Mar 2003 10:44:16 -0800
- To: "'Clemm, Geoff'" <gclemm@rational.com>, "'WebDAV'" <w3c-dist-auth@w3.org>
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----- > From: w3c-dist-auth-request@w3.org > [mailto:w3c-dist-auth-request@w3.org] On Behalf Of Clemm, Geoff > Sent: Friday, March 07, 2003 6:09 PM > To: 'WebDAV' > Subject: RE: Move and Delete (was: bind draft issues) > > > > From: Brian Korver [mailto:briank@xythos.com] > > 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 [gclemm@Rational.Com] > 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. > >
Received on Saturday, 8 March 2003 13:44:19 UTC