CS514: Intermediate Course in Operating Systems Professor Ken Birman Vivek Vishnumurthy: TA.

Slides:



Advertisements
Similar presentations
Agents & Mobile Agents.
Advertisements

Mobile Agents Mouse House Creative Technologies Mike OBrien.
Message Queues COMP3017 Advanced Databases Dr Nicholas Gibbins –
The Rover Toolkit Anthony D. Joseph Computer Science Division University of California at Berkeley BARWAN Retreat January 15, 1998.
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.
Chapter 3: Programming Web Services Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley, 2005.
PZ13B Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ13B - Client server computing Programming Language.
Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.
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.
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.
Department of Electrical Engineering
CSS490 Replication & Fault Tolerance
Toolkits for Building Mobile Systems 3/28/2002 Michael Ferguson
G Robert Grimm New York University Bayou: A Weakly Connected Replicated Storage System.
Jeff Chheng Jun Du.  Distributed file system  Designed for scalability, security, and high availability  Descendant of version 2 of Andrew File System.
Distributed File System: Data Storage for Networks Large and Small Pei Cao Cisco Systems, Inc.
Mobility Presented by: Mohamed Elhawary. Mobility Distributed file systems increase availability Remote failures may cause serious troubles Server replication.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Application Layer Functionality and Protocols Network Fundamentals – Chapter.
Client-Server Computing in Mobile Environments
1 Network File System. 2 Network Services A Linux system starts some services at boot time and allow other services to be started up when necessary. These.
File Systems (2). Readings r Silbershatz et al: 11.8.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Application Layer Functionality and Protocols Network Fundamentals – Chapter 3.
A Low-Bandwidth Network File System A. Muthitacharoen, MIT B. Chen, MIT D. Mazieres, NYU.
Ch 1. Mobile Adaptive Computing Myungchul Kim
Update Propagation with Variable Connectivity Prasun Dewan Department of Computer Science University of North Carolina
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
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.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
HTTP HTTP stands for Hypertext Transfer Protocol. It is an TCP/IP based communication protocol which is used to deliver virtually all files and other.
Distributed File Systems
Replication for Mobile Computing Prasun Dewan Department of Computer Science University of North Carolina
Chapter 9 How Do Users Share Computer Files?. What is a File Server A (central) computer which stores files which can be accessed by network users.
Distributed File Systems Overview  A file system is an abstract data type – an abstraction of a storage device.  A distributed file system is available.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Chapter 3: Services of Network Operating Systems Maysoon AlDuwais.
3.1 Silberschatz, Galvin and Gagne ©2009Operating System Concepts with Java – 8 th Edition Chapter 3: Processes.
Feb 27, 2001CSCI {4,6}900: Ubiquitous Computing1 Announcements.
CS 525M – Mobile and Ubiquitous Computing Seminar Bradley Momberger.
Mobile File System Byung Chul Tak. AFS  Andrew File System Distributed computing environment developed at CMU provides transparent access to remote shared.
Mobile Data Access1 Replication, Caching, Prefetching and Hoarding for Mobile Computing.
CS425 / CSE424 / ECE428 — Distributed Systems — Fall 2011 Some material derived from slides by Prashant Shenoy (Umass) & courses.washington.edu/css434/students/Coda.ppt.
Information/File Access and Sharing Coda: A Case Study J. Kistler, M. Satyanarayanan. Disconnected operation in the Coda File System. ACM Transaction on.
CS603 Basics of underlying platforms January 9, 2002.
GLOBAL EDGE SOFTWERE LTD1 R EMOTE F ILE S HARING - Ardhanareesh Aradhyamath.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Institute for Visualization and Perception Research 1 © Copyright 1999 Haim Levkowitz Java-based mobile agents.
Consistency Guarantees Prasun Dewan Department of Computer Science University of North Carolina
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.
Chapter Five Distributed file systems. 2 Contents Distributed file system design Distributed file system implementation Trends in distributed file systems.
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.
How Do Users Share Computer Files?
Nomadic File Systems Uri Moszkowicz 05/02/02.
Reddy Mainampati Udit Parikh Alex Kardomateas
Chapter 25: Advanced Data Types and New Applications
Today: Coda, xFS Case Study: Coda File System
Service-Oriented Computing: Semantics, Processes, Agents
Service-Oriented Computing: Semantics, Processes, Agents
System-Level Support CIS 640.
Sending data to EUROSTAT using STATEL and STADIUM web client
Presentation transcript:

CS514: Intermediate Course in Operating Systems Professor Ken Birman Vivek Vishnumurthy: TA

Mobility is a huge topic Breaks existing applications Anything bandwidth intensive or synchronous Opportunities for new applications Location-specific (nearest Starbucks) Ubiquity (short messaging) Ad hoc networks Can’t possibly give it justice in one lecture

Focus on a couple systems-level attempts What can the system do to support applications in mobile contexts, and how how effective is it? Coda (mobile file system) CMU (AFS-based) Application awareness Rover (mobility systems toolkit) MIT Application transparent

Characteristics of mobility Disconnection (long or short, predictable or sudden) Caching, hoarding, prefetching, DB/file inconsistencies Variable and asymmetric bandwidth Above, plus compression, prioritization, clever use of downlink Expensive ($$$) BWAbove, plus user control Battery, battery, and battery Minimize transmissions (and also processing) Weakened security (physical and radio) User auth, encryption

Rover goals Philosophy is that applications know best how to deal with mobility But there are general mechanisms that all applications can benefit from Provide a toolkit to applications Make it easier to write applications that deal with mobility issues Reduce client/server communications requirements Allow the user to effectively work offline (Some slides care of Michael Ferguson)

Rover project Build Rover toolkit Build range of applications using Rover toolkit Calendar Browser Evaluate effectiveness of Rover for supporting these applications

Conclusion: Success! Though Rover itself has not taken off… Applications easy to port They say… Performs well Compared to what? In my mind, they never really answer the question whether a toolkit/OS approach is better This would be a hard question to answer…

Two basic mechanisms Relocatable dynamic objects (RDO) Code/data shipping, like simple agents or process migration Allows dynamic control over processing versus communications tradeoff Queued remote procedure calls (QRPC) Asynchronous RPCs Allows offline operations without blocking

Rover operations Import objects onto client machine RDO: contains data and operations on the data Invoke methods on those objects Export logs of method invocations to servers Can also export RDOs Reconcile client data with server data

Rover operation

Import Import call provides: Object ID (URN) Session ID callback routing arguments Import call returns a “promise” Call is queued (QRPC) for lazy fetch

Import When imported object arrives: Callback routine is called Object is put into the cache RDO may invoke a thread Object may be locked at server

Invoke Application invokes methods on received object Each operation is stored Changes in object indicated by version vectors

Export Export call provides: Object ID (URN) Session ID callback routing arguments Export call returns a “promise” Updates to object are labeled tentatively committed The object operations are queued (QRPC) Non-FIFO delivery enables prioritization

Export The server executes the operations, checks for conflicts Applications provide a conflict resolution routine

Export Revolved operations are returned to the client After callback, client marks objects as committed

Rover Architecture

All applications run over a single Rover process Communicate via Local RPC Allows prioritization across applications

Rover Architecture Network scheduler can select TCP or SMTP (mail) for transport Latter for batching lower priority requests (Interim solution)

Implementation RDOs are Tcl/tk objects Transported in HTTP Using CERN’s Web Common Library Server uses CGI scripts

Applications Mail reader (based on Exmh Tcl/Tk) Calendar (based on Ical Tcl/Tk calendar) Web browser proxy (new application)

Mail Reader Parts of GUI and messages sent as RDOs RDOs used for prefetching and application-specific consistency (inconsistent folder changes)

Calendar Each calendar item (appointment or notice) is an RDO Item imported, changed tentatively, and exported and committed Routines for conflict resolution Error notice, or give some users priority

Web browser proxy Implements “click ahead” During disconnection, clicks are queued for later download User has access to list of queued clicks List is an RDO Does prefetching

Some thoughts on Rover Rover is a nice proof-of-concept for how to deal with mobility But Rover itself of limited value Tcl/Tk based RDOs probably overtaken by Java Use of SMTP a bad choice (they know this) Probably hard to automatically prioritize among disparate applications User would prefer to control this based on immediate circumstances Not clear there is much value to running Rover as a single, system service

Some thoughts on Rover not the best proof-of-concept application Already fundamentally asynchronous, so not much different with Rover Click-ahead sounds like a bad idea to me I’d rather control when clicks happen… Calendar is a decent proof-of-concept application

Surprising conclusion From the Rover paper: “The largest, most important, drawback of the Rover approach is that application designers must think carefully about how application functions should be divided between a client and a server” Funny…this struck me as probably the main advantage of Rover!!! Provides a nice model for how to think about disconnection, asynchrony, and consistency

Coda File System Unlike Rover, makes disconnection issues transparent to the application (and, to some extent, the user) Coda transparently propagates file modifications and handles conflicts

Disconnected operation states on client (Venus) Hoarding EmulatingReintegrating Logical reconnection Physical reconnection Disconnection Change Modify Log (CML) Cache File Server Fill cache using hoard database Read from cache. Cache misses look like errors. Log changes to files. Later changes can override earlier changes. Send changes to file server. Detect conflicts, help user recover

Conflict resolution Code resolves most directory conflicts For files, requires application-specific resolvers Unresolvable files are presented to user in a manual repair tool User sees an “explosion” of inconsistent files in a directory tree Use diff and grep to resolve

Problem with disconnected states approach Reintegration would consume bandwidth resources…users couldn’t do anything useful immediately upon reconnect Solutions: New states for weak connectivity Rapid cache validation (version stamps for directories, not just files) Cached by clients “User patience threshold”…model to predict if a user would rather wait for a large file not in the cache, or be given an error

Weak connectivity operation states on Venus Hoarding Emulating Write- disconnected Strong connection Connection Disconnection Reintegration Barrier Changes older than some time (10 min) cannot be over-ridden. These are “trickled” out to the file server during weak connectivity. Disconnection Weak connection …

Isolation-Only Transactions Coda emulation of UNIX file system has benefit of backwards compatibility UNIX lacks notion of read-write file conflicts Where an application is using a file as input, and that file is modified Windows, on the other hand, locks the file This limitation is exacerbated by disconnected operation Coda deals with this by checking for possible read-write inconsistencies after reconnection

State machine for IOT

Pending validation Test for serializability after reconnection Look for cycles in precedence graph Serializable if committed? Serializable after all committed transactions? If not, use resolution strategy

Resolution Strategies Re-execute transaction with current server files (I.e. make) Invoke application specific resolver (I.e. calendar) Abort the transaction Notify the user

Some thoughts on Coda File system is the wrong level of abstraction for many applications Calendar, database I agree with Rover on this As a user, I think Coda running “under the hood” would be confusing, sometimes annoying If file is shared, I’d rather deal with resolution explicitly (version control, etc.) If file is not shared, I’d rather control when “synchronization” takes place

Other interesting work Bayou (Xerox Parc) “Peer-to-peer” ad hoc network write conflict resolution Group document editing, calendar, etc. Basic idea, “anti-entropy”: peers do pairwise comparison of writes, try to revolve conflicts Determine conflict by trying the write on neighbors version, conflict exists if result is different Eventually all peers reach an agreed state

Other interesting work Broadcast disks Based on fact that radio reception much less expensive than radio transmission Archarya et. al., SIGMOD95 Continuous broadcast of “disks”, clients keep the ones they want Broadcast index at set times so that clients know when to receive Variations to support caching, consistency Broadcast version changes