140 likes | 434 Views
Disconnected Operation in the Coda File System. James J. Kistler and M. Satyanarayanan Carnegie Mellon University. Presented by Deepak Mehtani. Introduction to Coda. Evolved from AFS Central Idea – Use Caching to Improve availability
E N D
Disconnected Operation in the Coda File System James J. Kistler and M. Satyanarayanan Carnegie Mellon University Presented by Deepak Mehtani
Introduction to Coda • Evolved from AFS • Central Idea – Use Caching to Improve availability • Issues involved – N/W latency, failures, bottlenecks, security etc.
Coda handling above Issues • Whole File Caching • Automatic conflict resolution • Kerberos like authentication with ACLs Few terms involved as we proceed • Venus • VSG • AVSG
Caching – what is that ? • “First class” and “Second class” caching ? • Freshness of caches • Leases • Callbacks • Two approaches to handle disconnection • Pessimistic • Optimistic • Coda Approach ?
Coda’s Approach and why ? • Pessimistic approach – NO why ? • So definitely Optimistic approach • Transparency maintained • All users can continue (scalability issue) • Everybody happy (as they continue to use) is it? • The good old scalability issue ???
Coda and Scalability • Is coda scalable ? • Yes, uses optimistic approach • Whole file caching • Rule of thumb – add functionality at the client (Venus) • Coda does grouping of operations
VSG, AVSG and Disconnection User disconnected if: • N/W Failure • Server Failure • Mobile device out of range AVSG = NULL What happens to the Updates ?
States of Venus - Hoarding • Handled by Venus • Critical files higher priority • Hoard Walk ? • Re-fetching strategy • Re-fetch files or symbolic links • Mark the directories
States of Venus - Emulation • Venus – The Pseudo Server • Replay able Logs • RVM • Non Volatile • Supports Transactions • Contention – Size of Cache and RVM
Dealing with Full Caches • What are the options ? • Truncate/Delete Modified files • No Further operations until reintegration • Compression of cached files and RVM • Wait for Reintegration…
States of Venus - Reintegration • Coda uses 32 bit FID • Uses FID to update the file • Reintegration conflicts • Handled automatically • Rarely needs human intervention • What if Reintegration fails ?
Performance Issues • How long does it take to reintegrate ? • Time to allocate FIDs • Time to replay on servers • Time for update protocol to update replicas • Other Issues • Overhead in fetching Volume Information • Updating all AVSG
Conclusions • Simple Idea • Implementation not that simple • Favorable Conditions – as good as remote access • Worst case scenario – Critical data is accessible • How much cache is required ? • Mobile Devices - cache?
Conclusions (Cont.) • Typically 50-60 MB of cache is good enough for disconnected operation for a work day • Mobile Devices constrained on memory possibly • Coda definitely provides a good solution for disconnected operations, and looks quite promising for embedded systems