Coda / AFS Thomas Brown Albert Ng.

Slides:



Advertisements
Similar presentations
Ch 9 – Distributed Filesystem Reading Assignment – Summary due 10/18 (CODA paper) Goals –Network Transparency – you don’t know where in the system the.
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.
CODA/AFS (Constant Data Availability)
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.
Other File Systems: AFS, Napster. 2 Recap NFS: –Server exposes one or more directories Client accesses them by mounting the directories –Stateless server.
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.
HA LVS Coda - Devjani Sinha. High Availability-HA n critical commercial applications move on the Internet n An elegant highly available system may have.
1 CS 194: Distributed Systems Distributed File Systems Scott Shenker and Ion Stoica Computer Science Division Department of Electrical Engineering and.
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.
Team CMD Distributed Systems Team Report 2 1/17/07 C:\>members Corey Andalora Mike Adams Darren Stanley.
Course 6425A Module 9: Implementing an Active Directory Domain Services Maintenance Plan Presentation: 55 minutes Lab: 75 minutes This module helps students.
Distributed Deadlocks and Transaction Recovery.
Adaptation for Mobile Data Access (DM1 & PL1) Yerang Hur Mar. 24, 1998.
Distributed Systems Principles and Paradigms Chapter 10 Distributed File Systems 01 Introduction 02 Communication 03 Processes 04 Naming 05 Synchronization.
Chapter 8 Implementing Disaster Recovery and High Availability Hands-On Virtual Computing.
Replication ( ) by Ramya Balakumar
Distributed File Systems Case Studies: Sprite Coda.
11 DISASTER RECOVERY Chapter 13. Chapter 13: DISASTER RECOVERY2 OVERVIEW  Back up server data using the Backup utility and the Ntbackup command  Restore.
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,
Mobile File System Byung Chul Tak. AFS  Andrew File System Distributed computing environment developed at CMU provides transparent access to remote shared.
INTRODUCTION TO DBS Database: a collection of data describing the activities of one or more related organizations DBMS: software designed to assist in.
Jinyong Yoon,  Andrew File System  The Prototype  Changes for Performance  Effect of Changes for Performance  Comparison with A Remote-Open.
CS425 / CSE424 / ECE428 — Distributed Systems — Fall 2011 Some material derived from slides by Prashant Shenoy (Umass) & courses.washington.edu/css434/students/Coda.ppt.
Process Architecture Process Architecture - A portion of a program that can run independently of and concurrently with other portions of the program. Some.
Information/File Access and Sharing Coda: A Case Study J. Kistler, M. Satyanarayanan. Disconnected operation in the Coda File System. ACM Transaction on.
Caching Consistency and Concurrency Control Contact: Dingshan He
Fault Tolerance and Replication
GLOBAL EDGE SOFTWERE LTD1 R EMOTE F ILE S HARING - Ardhanareesh Aradhyamath.
Write Conflicts in Optimistic Replication Problem: replicas may accept conflicting writes. How to detect/resolve the conflicts? client B client A replica.
Overview of Mobile File Systems Presented by Steve Todd For WSU CS 898T Mobile and Wireless Networks Class 5/3/04.
11.6 Distributed File Systems Consistency and Replication Xiaolong Wu Instructor: Dr Yanqing Zhang Advanced Operating System.
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.
Truly Distributed File Systems Paul Timmins CS 535.
Mobility Victoria Krafft CS /25/05. General Idea People and their machines move around Machines want to share data Networks and machines fail Network.
File-System Management
James A. Senn’s Information Technology, 3rd Edition
Mobile File Systems.
Synchronizing Processes
Nomadic File Systems Uri Moszkowicz 05/02/02.
Synchronizing Processes
Andrew File System (AFS)
Chapter 2: System Structures
Chapter 25: Advanced Data Types and New Applications
Subversion.
Disconnected Operation in the Coda File System
Presented By Abhishek Khaitan Adhip Joshi
Advanced Operating Systems Chapter 11 Distributed File systems 11
Today: Coda, xFS Case Study: Coda File System
Distributed File Systems
Distributed File Systems
Distributed File Systems
CSE 451: Operating Systems Winter Module 22 Distributed File Systems
Database System Architectures
Distributed File Systems
Distributed File Systems
System-Level Support CIS 640.
Presentation transcript:

Coda / AFS Thomas Brown Albert Ng

What is Coda?

Issues with AFS Any network disconnections to the AFS network means no access to any files If read-write server crashes, then nobody can update any files in the system

Coda Offshoot of Andrew File System (AFS) Developed at Carnegie Mellon University by Professor Mahadev Satyanarayanan First introduced in 1987

Differences from AFS Many Read-Write Servers/Replicas Optimistic Replication Strategy Focus on availability more than consistency Allows disconnected operations More aggressive caching and use of the cache

Coda

General

Components of Coda Components of the Coda client: Cache - local cache that temporarily stores the files Sun’s Vnode Interface - Allows interception of file access calls MiniCache - handles Linux file access calls - Passes off to Venus or to the file system Venus - manages the cache and interactions between client and server

Components of Coda Components of the Coda network: Server Control Manager (SCM) - The head server that manages administrative tasks for the network Volume Storage Group (VSG) - The full set of servers pertaining to a volume of data Accessible Volume Storage Group (AVSG) - The subset of servers within VSG that a client can access/communicate with

How Coda Operates

States of Coda Hoarding Emulation Reintegration

Hoarding Stage Normal operating state Grabs as many files as possible from Coda servers into the local cache Access files from cache as much as possible to improve performance Send any updates to files back to Coda servers as they occur

Cache / Hoard Each cache contains a user-defined Hoard database (HDB), a list of all files of interest or importance to the user/system. A priority is attached to every file stored in the cache and within the HDB. For every file actively stored in the cache, this priority will decay over time. Example Hoard Database

Hoard Walking Cache will check and compare the current priority all files current in the cache and all files inside the HDB. Fetch all files with higher priority and replace files with the lowest priority Stops once all cached objects have a higher priority than all uncached objects (cache equilibrium) Occurs every ten minutes

Emulation Stage Client is disconnected from servers Uses local cache to emulate access to files on the Coda servers If file is not in cache, Coda returns an error notice Any updates logged in a Client Modification Log (CML). Stored in Recoverable Virtual Memory (RVM)

Reintegration Stage Initiated when communication to at least one server is restored Send the Client Modification Log to servers to update all changes Once reintegration is complete, Coda returns to the hoarding state

How Reintegration Is Performed Client Modification Log is received by server(s) Server locks all objects referred to by the log Each operation in the log is validated and executed Files/data are transferred from client to server as necessary Release locks and determine if all operations were successful or not If a conflict occurs, rollback the changes

Version Vectors Each file/directory contains a vector that is used to keep track of updates/divergences Each server/replica has its own version number within the vector As files are updated on the replica, increment version number Vectors can be compared to see if they are identical, concurrent, or ordered File Updated Server A [1, 1, 1] Server B [1, 1, 1] Server C [1, 1, 1] Server A [2, 2, 1] Server B [2, 2, 1] Server C [1, 1, 1]

Retrieving a File Client requests version vector for desired file from all AVSG servers Client checks all of the version vectors If all version vectors match, retrieve the file from one of the servers If not, client will notify servers of a potential error and the servers will attempt to automatically resolve it. “Check many, Read one, Write many”

Storing a File Client sends updated file and current version vector to all AVSG servers Each server increments their version number within the vector and sends it back to the client Client merges all of version numbers and produces an updated version vector for the file If client detects anything wrong, it can notify the servers of a potential conflict

Conflict Resolution

Conflicts Multiple versions of the same file A consequence of utilizing optimistic replication Two types in Coda: Local / Global Global / Global

Local / Global Conflicts Two concurrent versions of the file (one in cache, other on server) Occurs when multiple clients modify the same file/directory. However, one client was disconnected while modifying the file/directory. When this occurs, Coda will lock the file and then either: Utilize an Application-Specific Resolver to attempt to automatically fix the conflict Flag file(s) for users to manually resolve the conflict

Application-Specific Resolvers Tool to automatically attempt to resolve any file conflicts for an application Must be written and set up for every single application Example: Calender Application: File A schedules a cafe date at 3:00PM on Monday File B schedules a presentation at 1:00PM on Friday

Global / Global Conflicts Different servers have different versions of a file Occurs when disconnected/crashed servers rejoin the AVSG and server partitions may have occurred Uses the version vector of files to automatically update the outdated files and directories Any unresolvable errors (like concurrency conflicts) will require manual intervention to fix

Sources 1) "The Coda Distributed File System." The Coda Distributed File System. N.p., n.d. Web. 17 Nov. 2016. http://www.coda.cs.cmu.edu/ljpaper/lj.html 2) "Coda File System." Coda File System User and System Administrators Manual. N.p., n.d. Web. 17 Nov. 2016. http://www.coda.cs.cmu.edu/doc/html/manual/index.html 3) Kistler, James J., and M. Satyanarayanan. "Disconnected Operation in the Coda File System." ACM Transactions on Computer Systems 10.1 (1992): 3-25. Web. http://grids.ucs.indiana.edu/ptliupages/hhms/pdf/disconnected.pdf 4) M. Satyanarayanan. "The Evolution of Coda." ACM Transactions on Computer Systems 20.2 (2002): 85-124. Web. http://www.cs.cmu.edu/afs/cs/Web/People/satya/docdir/satya-tocs-codaevol-2002.pdf 5) "The Coda Distributed Filesystem for Linux." The Coda Distributed Filesystem for Linux - Introduction to Coda - Tutorials - LinuxPlanet. N.p., n.d. Web. 18 Nov. 2016. http://www.linuxplanet.com/linuxplanet/tutorials/4481/1 6) Satyanarayanan, M. "Scalable, Secure, and Highly Available Distributed File Access." Computer 23.5 (1990): 9-18. Web. 7) Satyanarayanan, M. "Pervasive Computing: Vision and Challenges." IEEE Personal Communications 8.4 (2001): 10-17. Web. 8) Satyanarayanan, M. “Coda: A Highly Available File System for a Distributed Workstation Environment.” Proceedings of the Second Workshop on Workstation Operating Systems (n.d.): n. pag. Web. http://www.cs.cmu.edu/afs/cs.cmu.edu/Web/People/satya/docdir/satya-ieeetc-coda-1990.pdf 9) Parker, D.s., G.j. Popek, G. Rudisin, A. Stoughton, B.j. Walker, E. Walton, J.m. Chow, D. Edwards, S. Kiser, and C. Kline. “Detection of Mutual Inconsistency in Distributed Systems.” IEEE Transactions on Software Engineering SE-9.3 (1983): 240-47. Web. http://zoo.cs.yale.edu/classes/cs426/2012/bib/parker83detection.pdf 10) P. Kumar and M. Satyanarayanan, "Log-based directory resolution in the Coda file system," [1993] Proceedings of the Second International Conference on Parallel and Distributed Information Systems, San Diego, CA, 1993, pp. 202-213. Web.

Questions?