Translucent Cache Management for Mobile Computing

Maria R. Ebling
March 1998


Recently, distributed files systems have aggressively exploited caching to provide high availability to their clients. Such systems allow users to access and modify cached data even when clients become disconnected (e.g. a laptop removed from its docking station) or weakly connected (e.g. a laptop connected via a modem) to servers. In doing so, these file systems violate one of the key properties of caching: transparency.

When disconnected or weakly connected, these systems cannot always maintain the illusion of connectivity. For instance, the system may not be able to service a cache miss or may only be able to do so with a lengthy delay. When the illusion of connectivity breaks down, the usability of the system is undermined. Early designers of these systems either did not recognize or failed to appreciate the extent to which users would be affected. After extensive experience with the Coda file system, however, we have witnessed the arduous learning curve experienced by new Coda users. We have also observed occasional, but serious, confusion caused by modal behaviors introduced to cope with the range of network connectivity encountered by mobile clients.

This dissertation describes the design, implementation, and evaluation of the CodaConsole, a graphical interface that makes caching translucent to users of such systems. To make caching translucent, the interface exposes critical aspects of caching to support availability, while hiding noncritical details to preserve usability. For example, the system informs users about the availability of their tasks, but does not bother them with minutia of cache consistency. The interface also offers opportunities for users to control where network resources are spent.

To evaluate the CodaConsole, I performed a usability test. This study showed that users were able to learn how to use the interface in about one hour. They were able to operate the interface with little difficulty. They were also able to understand problems indicated by the interface and then determine what actions might resolve those problems. Perhaps the most surprising result, however, was the fact that novice Coda users performed almost as well as expert Coda users. This interface successfully makes caching, in the presence of disconnected or weakly connected operation, translucent.