Such a mechanism is generally useful, but offers particularly
important support for mobile computers which may experience drastic
differences in response time as a result of their movement. Reasons
for experiencing variable response include: (1) moving beyond the home
administrative domain and so increasing the ``network distance''
between client and server and (2) moving between high-bandwidth
private networks and low-bandwidth public networks (such movement
might occur even within a small geographic area). While our work does
not address how to access replicated read/write file systems or how to
access one's home directory while on the move, our technique does bear
on the problems of the mobile user. Specifically, by using our
technique, a mobile user can be relieved of the choice of either
suffering with poor performance or devoting substantial local storage
to ``system'' files. Instead, the user could rely on our mechanism to
continuously locate copies of system files that provide superior
latency, while allocating all or most of his/her limited local storage
to caching or stashing read/write files such as those from the home
directory.
Our work is partitioned into three modular pieces: heuristic methods for detecting performance degradation and triggering a search; a search technique coupled with a method for testing equivalence versus a master copy; and a method for force-switching open files from the use of vnodes on one file system to vnodes on another (i.e., ``hot replacement''). There is little interrelationship among these techniques, and so our contributions can be viewed as consisting not just of the whole, but also of the pieces. Accordingly, we see the contributions of our work as:
There are several directions for future work in this area.
The major direction is to adapt these ideas to a file service that supports a more appropriate security model. One part of an ``appropriate'' security model is support for cross-domain authentication such that a party from one domain can relocate to another domain and become authenticated in that domain. Another part of an appropriate security model should include accounting protocols allowing third parties to advertise and monitor (i.e., ``sell'') the use of their exported file systems. Within the limited context of NFS, a small step in the right direction would be a mechanism that allows clients (servers) to recognize servers (clients) from a different domain. The most recent version of Kerberos contains improved support for cross-domain authentication, so another step in the right direction would be to integrate the latest Kerberos with NFS, perhaps as originally sketched in [24].
Another desirable idea is to convert from using a single method of exact file comparison (i.e., checksumd) to per-user, possibly inexact comparison. For example, object files produced by gcc contain a timestamp in the first 16 bytes; two object files may be equal except for the embedded timestamps, which can be regarded as an insignificant difference. Another example is that data files may be equal except for gratuitous differences in floating-point format (e.g., 1.7 vs. 1.7000 vs. 1.70e01). Source files may be compared ignoring comments and/or white space. Intelligent comparison programs like diff or spiff [13] know how to discount certain simple differences.
Minor extensions to our work include: converting RLP from a broadcast protocol to a multicast protocol; and reimplementing in an environment (e.g., multi-server Mach 3.0) that supports out-of-kernel file service implementations.