W3C home > Mailing lists > Public > w3c-dist-auth@w3.org > January to March 1999

RE: Must PROPPATCH operation be atomic...

From: Yaron Goland <yarong@microsoft.com>
Date: Wed, 17 Feb 1999 16:31:01 -0800
Message-ID: <3FF8121C9B6DD111812100805F31FC0D08792F31@RED-MSG-59>
To: "'Greg Stein'" <gstein@lyra.org>, Imran Khan <imrank123@yahoo.com>
Cc: w3c-dist-auth@w3.org
In http://lists.w3.org/Archives/Public/w3c-dist-auth/1998OctDec/0303.html
(section 3) I talk about why WebDAV requires atomicity. I also question how
critical this need really is. In the end, however, I suspect that atomicity
really is important. I can just imagine too many scenarios where not having
a truly atomic PROPPATCH would leave your system in a truly horrendous
state.

			Yaron

> -----Original Message-----
> From: Greg Stein [mailto:gstein@lyra.org]
> Sent: Wednesday, February 17, 1999 4:21 PM
> To: Imran Khan
> Cc: w3c-dist-auth@w3.org
> Subject: Re: Must PROPPATCH operation be atomic...
> 
> 
> Imran Khan wrote:
> > 
> > I am implementing WebDAV server but I feel I might be hitting in a
> > brick wall. I was wondering if PROPPATCH command enforces atomicity?
> > Atleast according to the WebDAV draft it says that either all the
> > set/remove operations pass or they all fail which means 
> rolling back.
> > Can't I do "besteffort" vs. "atomic" in case of PROPPATCH? 
> Because in
> > my application scenario I am trying to replace the current protocol
> > that allows besteffort as well as atomic flexibility.
> 
> Painful as it may be, the operation must be atomic. As a fellow server
> implementor, I sympathize ... I haven't implemented rollback 
> either :-)
> 
> It would be nice if a client could say "do best effort", but that
> doesn't exist. The atomic requirement allows a client to ensure that a
> consistent set of changes are made.
> 
> IMO, if you have a closed system (your own client and server), then it
> is perfectly acceptable to insert a new child element in the PROPPATCH
> to identify best-effort. For example, the request body could 
> look like:
> 
> <?xml version="1.0" encoding="utf-8" ?>
> <D:propertyupdate xmlns:D="DAV:"
> xmlns:Z="http://www.example.com/mydav/">
>   <Z:besteffort>
>   <D:set>
>     <D:prop>
>       <Z:some-prop/>
>     </D:prop>
>   </D:set>
>   <D:remove>
>     <D:prop>
>       <Z:other-prop/>
>     </D:prop>
>   </D:remove>
> </D:propertyupdate>
> 
> Your server could then recognize the besteffort tag. Your client would
> also use the tag. Other clients that access the server would 
> not include
> it, so your server would guarantee atomicity for them (since 
> they expect
> it).
> 
> Cheers,
> -g
> 
> --
> Greg Stein, http://www.lyra.org/
> 
Received on Wednesday, 17 February 1999 19:31:06 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 2 June 2009 18:43:49 GMT