Operations on Directories
Operations on directories:
- Inserting, removing, reading, creating, and deleting: The basic
operations on directories. Reading is also called listing (the content of) a
directory. The entries in a directory are files (or just filenames). (Note,
that insert (into directory) is equal to create or link file, and remove (from
directory) is equal to delete or unlink file).
- Updating is used for either inserting and/or removing.
As with files, directories can be copied, renamed, and moved.
Furthermore, some operations can be combined to include both files and
directories, e.g., when moving files from one directory into another.
Possible conflicts [27]
- Update/update conflicts: When different files have been created and/or
deleted from the same (logical) directory. This conflict is easily detected
and easily resolved; list the two directories to see if they have the same
entries, if they do not then perform the (same) operations on the other
directory both ways around.
- Name/name conflicts: When two logically different files have been created
using the same pathname. This is easily detected (but can be confused for a
write/write conflict); two inconsistent replicas.
- Rename/rename conflicts: When the same logical file has been renamed to
two different pathnames. This can only be detected if operations are compared,
and that would probably require logging of operations.
- Remove/update conflicts: When a file that has been updated in one place
has been removed (elsewhere). This is easily detected and the resolution would
probably be to keep the updated file, even if this may come as a surprise to
the person who initiated the remove.
I will not spend more energy on directory conflict resolution, and no
such thing has been implemented. The interested reader is referred
to [27].
michael@garfield.dk
2000-10-13