Subject: Comments on the "new" 2518

From: "Kevin Wiggen" <[email-masked]>
Date: Wed, 1 Mar 2006 17:44:07 -0800

It seems that the definition of Move, Copy, and Delete have been changed
and the change is not backwardly compatible.  In the old spec the entire
operation succeeded or failed, now the spec says do your best.  I am
"ok" with this on a COPY, but I hate it for Move and Delete.  Pretend I
have a directory with 4 objects I can see in it and 1000 I can't, doing
a Delete will simply destroy the stuff I have access to and not the
entire tree.  This could be very confusing to the user especially if
there are resources they can't even SEE in the collection.  (I could
live with delete operating like this, although I find it confusing in
some circumstances)  Move IMHO needs to be all moved or not.  Leaving a
person with half of a move is almost always a terrible thing.  In fact a
half completed move will end up with MULTIPLE collection resources on
the server (which could be illegal on the server).  Thus the MOVE is
really doing a COPY then DELETE except that I would guess most people
want things like creation dates to be preserved.   Has anyone been happy
when a MOVE completes half way ever in their life??  A move should
succeed or fail.

---

From: Geoffrey M Clemm <[email-masked]>
Date: Wed, 1 Mar 2006 22:33:45 -0500

Both COPY and DELETE are explicitly defined by 2518 to be best effort (at 
the SHOULD level),
and not all or nothing. 

>From the definition of COPY:

"After detecting an error, the COPY operation SHOULD try to finish as much 
of the original copy
operation as possible (i.e., the server should still attempt to copy other 
subtrees and their members, that
are not descendents of an error-causing collection)."

>From the definition of MOVE:

"after detecting the error, the move operation
SHOULD try to finish as much of the original move as possible (i.e., the 
server should still attempt to
move other subtrees and the resources identified by their members, that 
are not descendents of an errorcausing
collection)."

Although DELETE is not that specific, the language is completely 
compatible with partial delete (and if you ask any of the authors of 2518, 
they will confirm that DELETE, like COPY and MOVE, was intended to be best 
effort).

Servers that want to support atomic MOVE/DELETE should support the bind 
protocol's REBIND/UNBIND operations, which are guaranteed to be all or 
nothing.

Cheers,
Geoff

Kevin wrote on 03/01/2006 08:44:07 PM:
> It seems that the definition of Move, Copy, and Delete have been 
> changed and the change is not backwardly compatible.  In the old 
> spec the entire operation succeeded or failed, now the spec says do 
> your best.  I am ?ok? with this on a COPY, but I hate it for Move 
> and Delete.  Pretend I have a directory with 4 objects I can see in 
> it and 1000 I can?t, doing a Delete will simply destroy the stuff I 
> have access to and not the entire tree.  This could be very 
> confusing to the user especially if there are resources they can?t 
> even SEE in the collection.  (I could live with delete operating 
> like this, although I find it confusing in some circumstances)  Move
> IMHO needs to be all moved or not.  Leaving a person with half of a 
> move is almost always a terrible thing.  In fact a half completed 
> move will end up with MULTIPLE collection resources on the server 
> (which could be illegal on the server).  Thus the MOVE is really 
> doing a COPY then DELETE except that I would guess most people want 
> things like creation dates to be preserved.   Has anyone been happy