Disconnected Operation in the Coda File System James J. Kistler M. Satyanarayanan
History Descendent of AFS, also a CMU project In development since 1987 Support is included in the official Linux kernel
Motivation Distributed file systems are not immune to failures Laptop computers are popular
Key Points Caching file data can be used to provide high availability High availability allows disconnected operation The Coda file system provides these features
Design Goals Scalability Voluntary vs. Involuntary Disconnections First vs. Second Class Replication Optimistic vs. Pessimistic Replica Control
Scalability Experience with AFS Whole-file caching Functionality at clients, rather than servers
Voluntary vs. Involuntary Disconnections Laptops Types of disconnection are not functionally different
First vs. Second Class Replication Why have server replicas at all? Server replicas (first class) High quality Additional cost Client replicas (second class) Generally inferior Very little cost
Optimistic vs. Pessimistic Replica Control Pessimistic control Avoids conflicting operations Clients acquire shared or exclusive control of objects Optimistic control Reads and writes everywhere! Detects and resolves conflicts after they occur
Venus States
Venus States: Hoarding Client is connected to server Caches information in anticipation of disconnection Factors complicate implementation Prioritized cache management Hoard walking
Hoarding: Prioritized Cache Management Hoard database Explicit prioritization, generated by user Contains pathnames and priorities corresponding to file system objects Recent reference history Implicit prioritization Updated continuously as objects are referenced
Hoarding: Hoard Walking Equilibrium Two phases: Reevaluate HDB entries to reflect activity by other clients Reevaluate priorities and restore equilibrium
Performance Duration of reintegration Cache size Likelihood of conflicts
Cache Size
Likelihood of Conflicts Data based on AFS server usage Tracked who made modifications Measured time between modifications Promising results: 99% of all modifications were made by the previous writer
Likelihood of Conflicts
Recap Coda provides disconnected operation by aggressively caching file data
My Evaluation Resource exhaustion Likelihood of conflicts
More Info http://www.coda.cs.cmu.edu/