Which files are of concern to a distributed file system when the clients come
with their own operating system and applications, i.e., are self-contained? To
answer this question I will divide files into three main categories:
private, shared, and foreign files. The private files are
located on the client and are used only by that client, e.g., operating system
files. The foreign files are located on the server or on other clients, but have
no relevance to the client, i.e., they are private to the other clients or the
server. The shared files are located on the server as primary copies and on the
clients, in their caches, as secondary copies. The shared files are those that a
distributed file system with self-contained clients should provide access to.
Private and foreign files are of no concern to the file system, except for size
Classification of Files
- On the client:
cache size = storage size - size of private files.
- On the server (as seen from the client):
size of shared files = storage size - size of foreign files.
When seen from the client's point of view, a shared file (some version of it)
can be either cached or not cached. If a client creates a new file
that is to be shared then it is (at first) only located in that client's cache,
i.e., this is a special case where there is no primary copy of the file (yet)!
I will refer to such a file as a new file. The classification of files
can be seen in Figure 3.1.
Classification of files
A new file that is deleted before any version of it reaches the server
can be considered a temporary file. Contraversely, new files that reaches
the server, become cached, and are termed persistent when it is necessary
to distinguish them from temporary files.3.1
Applications are classified according to which files they use:
- Private applications use private files only.
- Foreign applications use foreign files only.
- Shared applications use at least one shared persistent file.
An application that uses temporary files but no persistent files should be
rewritten to be a private application. The file system should support shared
applications; the other applications should be supported by the operating system
and the ordinary (local) file system.
- ... files.3.1
- Of course, private and foreign
files can be divided into temporary or persistent files, but since they are of no
concern to the file system, there is no need to make the distinctions.