NDS qual 1995 1. Main idea: carefully manage the very scarce upstream network resources -- treat the upstream connection as though it is (almost) nonexistent. Use a disconnected Coda-like scheme where the client cache contains the most important/frequently used files. Pseudo-optimistic replication -- since there is always *some* connectivity, we can lock files. To avoid delays opening a file for writing will always succeed immediately. The client sends a lock request to the server. If the request is denied, the application is notified. With a delay of ~10 seconds this is better than the Coda scheme where conflicts are handled at reintegration time, which could be hours or days after the file was modified. To keep the cache fresh the client does a periodic "hoard walk," determining what files need to be brought down from the server. The client can keep two upstream queues, one for urgent requests like write locks and cache misses, and another for periodic cache refreshes. Urgent requests always take priority, thus minimizing the time an application has to wait for a read to be satisfied. 2.