RE: Move and Delete (was: bind draft issues)

> > Just for interests sake, how many examples are there of
> > repositories that do support multiple bindings to a collection
> > but cannot support atomic DELETE/MOVE?
> The Unix file system?

Sort of.  On most (all?) Unix file systems you can't create a
hard link to a directory, but you can create a soft/symbolic link.
In essence, all directories have one hard link and zero or more
symbolic links to them.  The symbolic link has no referential
integrity, but that's probably not a major issue for a WebDAV
server since the link can be traversed to confirm that the referee
still exists.  (See caveat below.)

To simulate BIND support one can use symbolic links.  In that
case the action to take when doing a DELETE/UNBIND is
fairly easy if the binding is implemented as a symbolic link, but
not as easy if it's a hard link.  If breaking a hard link, there
are a number of options.  I believe you can't just delete the
subdirectory without deleting it's children.   But you can move the
directory to another location on the same file system.   It can be
moved out of the namespace or it
can be moved to replace a symbolic link to the collection.

Whether it's a symbolic link or a
hard link being removed, you still need to do a fix up of symbolic
links in to the subtree being removed.  That obviously is not
atomic, but at the WebDAV level you can block or remap access
until that's completed.

Or... you can just reject BIND requests to directories.  :-)

But more to the point of the discussion, there is nothing that will cause
the file based Unix server to need to return a status code indicating that
only
"part" of the DELETE/UNBIND operation occured.

J.

Received on Tuesday, 4 March 2003 12:11:41 UTC