Subject: RE: WebDAV Bindings - Issue Yaron.AtomicDelete (fwd)

From: Greg Stein <[email-masked]>
Date: Fri, 28 Jan 2000 13:56:54 -0800 (PST)

I think Jason intended this for the list...

---------- Forwarded message ----------
Date: Fri, 28 Jan 2000 14:51:43 -0500
From: [email-masked]
To: Greg Stein <[email-masked]>
Subject: RE: WebDAV Bindings - Issue Yaron.AtomicDelete

  Not a problem *if* the server does not support bindings. As long as it is
  understood there can be a race condition during the processing of the
  DELETE operation.

Obviously we wouldn't *want* a race condition, but it might have to be
acceptable.  BTW, do you already face a smaller race condition for single
resources? ...Yup, in your previous note I think you already said it was
also an issue.

>  Does either of these restrictions cause problems for mod_dav?

 Only in the presence of bindings. There would be a LOT of work to
 correctly handle bindings and deletes.

Yup.  Your list of options and analysis is good.  You'd probably also deny
loops just to keep the implementation easy.

You of course wouldn't be required to support
bindings, but market forces might demand it.  If so, you might have
a bunch of work to do and have to implement them with compromises.

To make it more easily implementable, I would need one of two items:

1) binding between collections is not allowed (this would allow hard
   links; I could live with the device restriction)

2) it is allowable to leave dangling references (a symlink to a "real"
   resource that has been deleted)
Of course I wouldn't *want* either of these.  I think (1) would be
acceptable.  Market forces might demand otherwise though.  Either
way, if this restriction becomes common, we probably should come
up with an error code for it.  (Yes, I can hear Yaron jumping up and down
right now, three timezones away.   "No New Status Codes!!!" :-))

I personally don't like the second option.  I'm not totally clear why yet.
It is contrary to our "integrity" belief for one thing.

Neither of these are very appealing. As it stands, it appears that the
binding specification *requires* a database that maps URLs to resources
(outside of a standard web server's URL translation system).
Yes, for Apache over *nix, to *fully* implement bindings, with file
structure most closely matching the URI structure, the use of a URI
"database"
or binding "database" or refcount "database" seems likely.

  If a database was required, then I simply wouldn't implement bindings all
  that soon. But it *would* be possible.

:-)

  [ I'm not suggesting that we punt/restrict features such as binding
simply
  because particular filesystems cannot support the feature in question;
  I'm just saying that it will take longer to code... ]

:-)

  The impossible part is guaranteeing that no race conditions exist during
  the processing of the DELETE.

I think a compromise there can be worked out and market forces can decide
the
issue.  I doubt folks will even notice this.