Information/File Access and Sharing Coda: A Case Study J. Kistler, M. Satyanarayanan. Disconnected operation in the Coda File System. ACM Transaction on.

Slides:



Advertisements
Similar presentations
Eventual Consistency Jinyang. Sequential consistency Sequential consistency properties: –Latest read must see latest write Handles caching –All writes.
Advertisements

Computer Science Lecture 20, page 1 CS677: Distributed OS Today: Coda, xFS Case Study: Coda File System Brief overview of other recent file systems –xFS.
Recovery CPSC 356 Database Ellen Walker Hiram College (Includes figures from Database Systems by Connolly & Begg, © Addison Wesley 2002)
File System for Mobile Computing Quick overview of AFS identify the issues for file system design in wireless and mobile environments Design Options for.
CS-550: Distributed File Systems [SiS]1 Resource Management in Distributed Systems: Distributed File Systems.
CODA/AFS (Constant Data Availability)
Overview of Mobile Computing (3): File System. File System for Mobile Computing Issues for file system design in wireless and mobile environments Design.
G Robert Grimm New York University Disconnected Operation in the Coda File System.
Disconnected Operation in the Coda File System James J. Kistler and M. Satyanarayanan Carnegie Mellon University Presented by Deepak Mehtani.
Disconnected Operation in the Coda File System James J. Kistler and M. Satyanarayanan Carnegie Mellon University Presented by Cong.
Distributed Systems 2006 Styles of Client/Server Computing.
Coda file system: Disconnected operation By Wallis Chau May 7, 2003.
Computer Science Lecture 21, page 1 CS677: Distributed OS Today: Coda, xFS Case Study: Coda File System Brief overview of other recent file systems –xFS.
CS 333 Introduction to Operating Systems Class 18 - File System Performance Jonathan Walpole Computer Science Portland State University.
Toolkits for Building Mobile Systems 3/28/2002 Michael Ferguson
Disconnected Operation In The Coda File System James J Kistler & M Satyanarayanan Carnegie Mellon University Presented By Prashanth L Anmol N M Yulong.
Concurrency Control & Caching Consistency Issues and Survey Dingshan He November 18, 2002.
Jeff Chheng Jun Du.  Distributed file system  Designed for scalability, security, and high availability  Descendant of version 2 of Andrew File System.
University of Pennsylvania 11/21/00CSE 3801 Distributed File Systems CSE 380 Lecture Note 14 Insup Lee.
Mobility Presented by: Mohamed Elhawary. Mobility Distributed file systems increase availability Remote failures may cause serious troubles Server replication.
Client-Server Computing in Mobile Environments
Transactions and Reliability. File system components Disk management Naming Reliability  What are the reliability issues in file systems? Security.
Adaptation for Mobile Data Access (DM1 & PL1) Yerang Hur Mar. 24, 1998.
Framework of an Application-Aware Adaptation Scheme for Disconnected Operations Umar Kalim, Hassan Jameel, Ali Sajjad, Sang Man Han, Sungyoung Lee, and.
Update Propagation with Variable Connectivity Prasun Dewan Department of Computer Science University of North Carolina
1 The Google File System Reporter: You-Wei Zhang.
Practical Replication. Purposes of Replication Improve Availability Replicated databases can be accessed even if several replicas are unavailable Improve.
Distributed Systems Principles and Paradigms Chapter 10 Distributed File Systems 01 Introduction 02 Communication 03 Processes 04 Naming 05 Synchronization.
Mobility in Distributed Computing With Special Emphasis on Data Mobility.
Replication and Consistency. Reference The Dangers of Replication and a Solution, Jim Gray, Pat Helland, Patrick O'Neil, and Dennis Shasha. In Proceedings.
Distributed File Systems
Replication for Mobile Computing Prasun Dewan Department of Computer Science University of North Carolina
Distributed File Systems Case Studies: Sprite Coda.
Introduction to DFS. Distributed File Systems A file system whose clients, servers and storage devices are dispersed among the machines of a distributed.
DISCONNECTED OPERATION IN THE CODA FILE SYSTEM J. J. Kistler M. Sataynarayanan Carnegie-Mellon University.
CS 525M – Mobile and Ubiquitous Computing Seminar Bradley Momberger.
CODA: A HIGHLY AVAILABLE FILE SYSTEM FOR A DISTRIBUTED WORKSTATION ENVIRONMENT M. Satyanarayanan, J. J. Kistler, P. Kumar, M. E. Okasaki, E. H. Siegel,
Example: Rumor Performance Evaluation Andy Wang CIS 5930 Computer Systems Performance Analysis.
Mobile File System Byung Chul Tak. AFS  Andrew File System Distributed computing environment developed at CMU provides transparent access to remote shared.
CS425 / CSE424 / ECE428 — Distributed Systems — Fall 2011 Some material derived from slides by Prashant Shenoy (Umass) & courses.washington.edu/css434/students/Coda.ppt.
Distributed File Systems
1 Multiversion Reconciliation for Mobile Databases Shirish Hemanath Phatak & B.R.Badrinath Presented By Presented By Md. Abdur Rahman Md. Abdur Rahman.
Caching Consistency and Concurrency Control Contact: Dingshan He
ENERGY-EFFICIENCY AND STORAGE FLEXIBILITY IN THE BLUE FILE SYSTEM E. B. Nightingale and J. Flinn University of Michigan.
GLOBAL EDGE SOFTWERE LTD1 R EMOTE F ILE S HARING - Ardhanareesh Aradhyamath.
An Architecture for Mobile Databases By Vishal Desai.
Outline for Today’s Lecture Administrative: Objective: –Disconnection in file systems –Energy management.
Consistency Guarantees Prasun Dewan Department of Computer Science University of North Carolina
Eventual Consistency Jinyang. Review: Sequential consistency Sequential consistency properties: –All read/write ops follow some total ordering –Read must.
Highly Available Services and Transactions with Replicated Data Jason Lenthe.
Computer Science Lecture 19, page 1 CS677: Distributed OS Last class: Distributed File Systems Issues in distributed file systems Sun’s Network File System.
THE EVOLUTION OF CODA M. Satyanarayanan Carnegie-Mellon University.
Feb 22, 2001CSCI {4,6}900: Ubiquitous Computing1 Announcements Send today with people in your project group. People seem to be dropping off and I.
Mobility Victoria Krafft CS /25/05. General Idea People and their machines move around Machines want to share data Networks and machines fail Network.
Mobile File Systems.
Coda / AFS Thomas Brown Albert Ng.
Nomadic File Systems Uri Moszkowicz 05/02/02.
Example Replicated File Systems
Disconnected Operation in the Coda File System
Presented By Abhishek Khaitan Adhip Joshi
Today: Coda, xFS Case Study: Coda File System
Distributed File Systems
Chapter 5 Exploiting Memory Hierarchy : Cache Memory in CMP
Distributed File Systems
/ Computer Architecture and Design
Distributed File Systems
Outline Review of Quiz #1 Distributed File Systems 4/20/2019 COP5611.
Distributed File Systems
Distributed File Systems
System-Level Support CIS 640.
Presentation transcript:

Information/File Access and Sharing Coda: A Case Study J. Kistler, M. Satyanarayanan. Disconnected operation in the Coda File System. ACM Transaction on Computer Systems, February L. Mummert, M. Ebling, M. Satyanarayanan. Exploiting weak Connectivity for mobile file access. ACM Symp. on Operating System Principles, 1995.

Need for Mobile Access Continue having access to information –Address book, calendar, spreadsheets, documents, maps, programs, etc. Information/ Files on Servers

Why not keep them on the client? Makes sense! –No network cost (latency, $$$) –Availability However not always possible! –Forgotten to bring along –Larger than what client can hold –Active sharing with other users

Network issues to keep in mind Intermittence Low bandwidth High latency High expense Energy consuming Radio silence needed sometimes Keep as much as possible in the client (cache) and manage this cache intelligently.

Problems with disconnected clients Updates are not visible to others Updates are at risk Update conflicts are more likely Cache misses impede progress Note that even an infinite cache space does not solve all these problems

Coda Client Architecture Application Venus Code Minicache Kernel To Server

Coda Design Principles Don’t punish strongly connected clients Don’t make life worse than when disconnected Do work in the background if you can When in doubt seek user advice.

Basic Idea Hoard data whenever you can (when network connectivity is available) - Hoarding Serve requests from hoard/cache when disconnected – Emulating Reconcile the hoard/cache with servers and propagate updates when you get back connectivity – Reintegrating/Write disconnected

Venus States Hoarding Emulating Write Disconnected Disconnection Connection Strong Connection Weak Connection

Caching vs. Hoarding Caching –Uncached data always available but with higher cost –Caching for future performance –Filled on demand –Stale data purged –Writes to cache committed immediately Hoarding –Uncached data unavailable when disconnected –Caching for future performance & availability partial replication –Filled on demand/pre- fetched –Stale data sometimes better than no data –Writes to cache committed later on reconnection tracking changes conflict detection conflict resolution

Hoarding Hoard data in anticipation of disconnection At file(s) granularity Several complications: –Anticipation of file reference behavior –Disconnections and reconnections unpredictable –True cost of a hoard miss unpredictable to evaluate between two alternatives –Account for activity at other clients

Hoarding in Coda Prioritize objects and evaluate these priorities at “Hoard Walk” to decide what to keep Each client has a hoard database (HDB) A user may optionally indicate a hoard priority in the HDB. Current priority of an object is a function of its hoard priority and recent usage. Objects of lowest priority are chosen as victims for replacement.

Hoard Walk Occur every 10 minutes or by explicit user request 2 steps: status walk + data walk After status walk, it can display to the user what objects it will fetch in the data walk (which the user can over-ride if needed)

Other Hoarding Work You do not want to hoard all files belonging to a project at a time. Calculate semantic distance between files: –Temporal/sequence based distance –Lifetime semantic distance Perform “clustering” on these distances Hoard entire clusters prioritized by recent use. G. Kuenning and G. Popek. Automated Hoarding for Mobile Computers. Proc. of the 16th ACM SOSP, October 1997.

Emulation Note there is no network connectivity Read requests serviced from hoard On a miss, nothing to do except raise an error code – user can either move on or block until it can be serviced. Writes are logged so that they can be propagated later to server. Read misses can also be logged for better hoarding next time.

Coherence Issues Normally we would like serializability for accesses. Accesses from different clients execute as if they were done one after another in some serial order.

Serializability Client 1 R W Client 2 R W R R W W, R W R W, R R W W, ….. SerializableNon-Serializable W R R W R W W R …..

Serializability Note that R-R operations are commutative and can be re-ordered without any violations However, R-W and W-W operations cannot be re-ordered and this is what we need to worry about. Strict serializability requires –Propagation of writes –Everyone sees the same order of writes!

Ordering of writes Client 1 A = 1; Client 2 While (A==0) ; B = 1; Client 3 While (B==0) ; Print(A) A=B=0 and both are present in all three client caches What should be printed out?

How do we propagate writes from other clients and from this client? Coda uses an optimistic policy to trade-off some inconsistency for performance R-W and W-W sharing not that prevalent in all applications. When some conflicts can be identified abort or leave it to application.

Coda Consistency Mechanisms Server registers that client has cached an object. It uses a invalidation message (callback break) to notify the client that the copy has changed. Client discards the cached copy and refetches either on demand or at next hoard walk. When a client is disconnected it will not get such messages. Hence it has to validate hoard upon reconnection. If a read occurs in the meantime, it is as though it happened before the write by the other client! The other client is not stalled in the process.

Callback optimizations Server maintains timestamp (version) at volume (sub-tree) granularity. Client caches volume version at end of hoard walk. When connectivity is restored, client presents these versions (in one chunk) for validation. If volume stamp not valid, then go and validate individual objects.

Reintegration/Write Disconnected Need to flush the log of writes to server upon reconnection. But this can induce a lot of network traffic. Instead an incremental mechanism – trickle reintegration – is used. Potential to trade-off consistency for performance

Trickle Reintegration When appending to log, see if there is scope for compression, e.g. 2 writes to same object, delete of a file for which a store exists in log. Age entries in the log until they cross a threshold. Only after this propagate them to server. The hope is that they can be compressed/removed further.

Conflict resolution R-W conflicts (stale data reads) are presumed to be OK – no read logs! W-W conflicts may be identified at reintegration time. Conflicts at file: Stores to same file Conflicts at directory: –Two names are same –Updates and deletes to same entry –Directory attributes are modified Pass on such conflicts to user.