@device(postscript) @libraryfile(Mathematics10) @libraryfile(Accents) @style(fontfamily=timesroman,fontscale=11) @pagefooting(immediate, left "@c", center "@c", right "@c") @heading(Exploiting Weak Connectivity in a Distributed File System) @heading(CMU-CS-96-195) @center(@b(Lily B. Mummert)) @center(December 1996 - Ph.D. Thesis) @center(FTP: CMU-CS-96-195.ps) @blankspace(1) @begin(text,spacing=1) @i(Weak connectivity), in the form of intermittent, low-bandwidth, or expensive networks is a fact of life in mobile computing. For the foreseeable future, access to cheap, high-performance, reliable networks, or @i{strong connectivity} will be limited to a few oases, such as work or home, in a vast desert of weak connectivity. The design of distributed file systems has traditionally been based on an assumption of strong connectivity. Yet, to provide ubiquitous data access, it is vital that distributed file systems make effective use of weak connectivity. This dissertation describes the design, implementation, and evaluation of weakly connected operation in the Coda File System. The starting point of this work is @i{disconnected operation}, in which a file system client operates using data in its cache during server or network failures. Disconnected clients suffer from many limitations: @i{updates are not visible} to other clients, @i{cache misses} may impede progress, @i{updates are at risk} from client loss or damage, and the danger of @i{update conflicts} increases as disconnections are prolonged. Weak connectivity provides an opportunity to alleviate these limitations. Coda's strategy for weakly connected operation is best characterized as @i{application-transparent adaptation}. The system bears full responsibility for coping with the demands of weak connectivity. This approach preserves upward compatibility by allowing applications to run unchanged. Coda provides several mechanisms for weakly connected operation motivated by actual experience. The foundation of adaptivity in this system is the @i{communications layer}, which derives and supplies information on network conditions to higher system layers. The @i{rapid cache validation} mechanism enables the system to recover quickly in intermittent environments. The {@i{trickle reintegration} mechanism insulates the user from poor network performance by propagating updates to servers asynchronously. The @i{cache miss handling} mechanism alerts the user to potentially lengthy service times and provides opportunities for intervention. A quantitative evaluation of these mechanisms, based on controlled experimentation and empirical data gathered from the deployed system in everyday use, shows that Coda is able to provide good performance even when network bandwidth varies over four orders of magnitude @y(M) from modem speeds to LAN speeds. @blankspace(2line) @begin(transparent,size=10) @b(Keywords:@ )@c @end(transparent) @blankspace(1line) @end(text) @flushright(@b[(148 pages)])