- From: <ccjason@us.ibm.com>
- Date: Thu, 14 Oct 1999 11:44:42 -0400
- To: "Geoffrey M. Clemm" <gclemm@tantalum.atria.com>
- cc: w3c-dist-auth@w3.org
Whoops, I thought I already sent this... From: ccjason@us.ibm.com Or similarly LOCK, DELETE (leave null lock flag), PUT, PROPATCH, UNLOCK.... ala MKRESOURCE. Or LOCK, DELETE (null lock left), COPY (tree perhaps), play, UNLOCK. Or xserver COPY... LOCK (depth), DELETE, PUT, MKCOL, PROPATCH, MKCOL, etc UNLOCK. And reduces possible error conditions in the middle of sequences of methods that a client might want to invoke. And facilitates backing things out if it has an error... because it knows what the state is and can feel safer about backing it out... (depth null lock) As Jim Amsden mentioned, according to 2518 you will lose your LOCK as soon as you issue a DELETE, so you will have to request another LOCK, and there will be a window of opportunity for someone to get in ahead of you with their LOCK. But their doing so does not introduce any lost update issues, but just says that you have to wait for them to finish instead of the other way round. This is just the normal situation in distributed authoring. Right. That's what 2518 says. That's why I explicitly noted it. But we haven't completed the spec. The assumption is that we'd support this. If we do... we could use lock null resources in this way. See my previous postings on this. Right, deleting the lock doesn't create a lost update problem. It does cause a problem where someone else can slip in a lock, thus block you, abort themselves because what they expected there is no longer there. But of course you've already done the delete, so you've only done a partial execution and you can't really back out. You've lost atomicity. So to get around this a client app might do a MOVE instead of a delete... so at least it has a chance of backing out your change, but once again someone else's lock can block it even if it's a temporary lock. As you see... this type of atomicity is not achievable without the this type of lock. Question... what situations are complicated by lock null resources. I'm sure we must have covered this, but I forget what they were and I didn't record them. I'd like to record this in the issues list. With lock null resources, a client has to think about what special thing they might need to do in case what appears to be no resource in some cases (404 coming back from a GET), appears to be a resource in other cases (PROPFIND). In particular, the client needs to indicate this fact somehow to a user when the user requests information about a collection. So it is not just the client but the user that pays a cost for this feature. Interesting. I'll note that... and give it more thought. JimA just posted a proposal that would resolve this. Something about giving the null resource a body. To some extent... it no longer would be a null resource then though. More thought. If you look at it from the server side, removing lock null resources is of course an unconditional win (Jim Amsden already made that point in an earlier message). I'll look for that posting and list it here.
Received on Thursday, 14 October 1999 11:41:03 UTC