Evolving RPC for Active Storage Muthian Sivathanu Andrea C. Arpaci-Dusseau Remzi H. Arpaci-Dusseau University of Wisconsin-Madison.

Slides:



Advertisements
Similar presentations
COM vs. CORBA.
Advertisements

Department of Computer Science and Engineering University of Washington Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
EXTENSIBILITY, SAFETY AND PERFORMANCE IN THE SPIN OPERATING SYSTEM B. Bershad, S. Savage, P. Pardyak, E. G. Sirer, D. Becker, M. Fiuczynski, C. Chambers,
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
Serverless Network File Systems. Network File Systems Allow sharing among independent file systems in a transparent manner Mounting a remote directory.
CS-550: Distributed File Systems [SiS]1 Resource Management in Distributed Systems: Distributed File Systems.
Using DSVM to Implement a Distributed File System Ramon Lawrence Dept. of Computer Science
The road to reliable, autonomous distributed systems
Objektorienteret Middleware Presentation 2: Distributed Systems – A brush up, and relations to Middleware, Heterogeneity & Transparency.
 Introduction Originally developed by Open Software Foundation (OSF), which is now called The Open Group ( Provides a set of tools and.
Distributed systems Programming with threads. Reviews on OS concepts Each process occupies a single address space.
Consistency in NFS and AFS. Network File System (NFS) Uses client caching to reduce network load Built on top of RPC Server cache: X Client A cache: XClient.
G Robert Grimm New York University Recoverable Virtual Memory.
File System Implementation
Other File Systems: LFS and NFS. 2 Log-Structured File Systems The trend: CPUs are faster, RAM & caches are bigger –So, a lot of reads do not require.
G Robert Grimm New York University Recoverable Virtual Memory.
Communication in Distributed Systems –Part 2
A. Frank - P. Weisberg Operating Systems Introduction to Tasks/Threads.
PRASHANTHI NARAYAN NETTEM.
NFS. The Sun Network File System (NFS) An implementation and a specification of a software system for accessing remote files across LANs. The implementation.
CSE 490dp Resource Control Robert Grimm. Problems How to access resources? –Basic usage tracking How to measure resource consumption? –Accounting How.
File Systems (2). Readings r Silbershatz et al: 11.8.
Frangipani: A Scalable Distributed File System C. A. Thekkath, T. Mann, and E. K. Lee Systems Research Center Digital Equipment Corporation.
1 Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska and Henry M. Levy Presented by: Karthika Kothapally.
DESIGN AND IMPLEMENTATION OF THE SUN NETWORK FILESYSTEM R. Sandberg, D. Goldberg S. Kleinman, D. Walsh, R. Lyon Sun Microsystems.
Distributed File Systems Sarah Diesburg Operating Systems CS 3430.
Distributed File Systems Concepts & Overview. Goals and Criteria Goal: present to a user a coherent, efficient, and manageable system for long-term data.
Highly Available ACID Memory Vijayshankar Raman. Introduction §Why ACID memory? l non-database apps: want updates to critical data to be atomic and persistent.
Hands-On Microsoft Windows Server 2008 Chapter 1 Introduction to Windows Server 2008.
Computer System Architectures Computer System Software
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
Networked File System CS Introduction to Operating Systems.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
Distributed Systems. Interprocess Communication (IPC) Processes are either independent or cooperating – Threads provide a gray area – Cooperating processes.
Distributed File Systems
CSE 451: Operating Systems Section 10 Project 3 wrap-up, final exam review.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
What is a Distributed File System?? Allows transparent access to remote files over a network. Examples: Network File System (NFS) by Sun Microsystems.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Introduction to DFS. Distributed File Systems A file system whose clients, servers and storage devices are dispersed among the machines of a distributed.
INTRODUCTION TO DBS Database: a collection of data describing the activities of one or more related organizations DBMS: software designed to assist in.
A Low-bandwidth Network File System Athicha Muthitacharoen et al. Presented by Matt Miller September 12, 2002.
Jinyong Yoon,  Andrew File System  The Prototype  Changes for Performance  Effect of Changes for Performance  Comparison with A Remote-Open.
Computer Science Lecture 19, page 1 CS677: Distributed OS Last Class: Fault tolerance Reliable communication –One-one communication –One-many communication.
Shuman Guo CSc 8320 Advanced Operating Systems
Sun Network File System Presentation 3 Group A4 Sean Hudson, Syeda Taib, Manasi Kapadia.
Chapter 11: File System Implementation Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 11: File System Implementation Chapter.
Caching in the Sprite Network File System Scale and Performance in a Distributed File System COMP 520 September 21, 2004.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition File System Implementation.
Distributed File Systems 11.2Process SaiRaj Bharath Yalamanchili.
EE324 INTRO TO DISTRIBUTED SYSTEMS. Distributed File System  What is a file system?
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
COT 4600 Operating Systems Fall 2009 Dan C. Marinescu Office: HEC 439 B Office hours: Tu-Th 3:00-4:00 PM.
Distributed File Systems Group A5 Amit Sharma Dhaval Sanghvi Ali Abbas.
Distributed File Systems Questions answered in this lecture: Why are distributed file systems useful? What is difficult about distributed file systems?
Computer Science Lecture 19, page 1 CS677: Distributed OS Last Class: Fault tolerance Reliable communication –One-one communication –One-many communication.
DISTRIBUTED FILE SYSTEM- ENHANCEMENT AND FURTHER DEVELOPMENT BY:- PALLAWI(10BIT0033)
Chapter 12: File System Implementation
Distributed File Systems
File System Implementation
Outline Midterm results summary Distributed file systems – continued
Chapter 3: Operating-System Structures
Distributed File Systems
Distributed File Systems
Distributed File Systems
Prof. Leonardo Mostarda University of Camerino
Chapter 15: File System Internals
Distributed File Systems
Distributed File Systems
Presentation transcript:

Evolving RPC for Active Storage Muthian Sivathanu Andrea C. Arpaci-Dusseau Remzi H. Arpaci-Dusseau University of Wisconsin-Madison

Architecture of the future Everything is “active” Cheaper, faster processing power Example: “smart” disks Everything is “distributed” Network between processors and devices Example: Network-attached storage Need: Effective software paradigms Leverage power of active components But remains easy to use

Software systems of the future Need: Tools to build “active”, “distributed” systems Pragmatic: Easy for system developers to use Powerful: Exploit active nature of systems Active systems permit extensibility Download code to device Tailor to needs of applications/system Simplicity, maintainability Provide primitives, allow clients to compose interface Traditional “distributed” systems built w/ RPC Simple, easy-to-use communication paradigm But not designed for “active” world Build better distributed systems w/ “active” components

Scriptable RPC SRPC: Paradigm for extensible distributed systems Pragmatic: RPC-like development process Powerful: Exploit active components easily Case study: Active storage High Performance Efficient “composition” of primitives Rapid addition of new functionality Powerful: Advanced consistency semantics over NFS Simple: Substantial functionality in < 20 lines of code Simplicity in design Obviate distributed locking, crash recovery Compelling paradigm for future systems

Outline Motivation Scriptable RPC Case Study: Active Storage Performance Functionality Simplicity Summary

Scriptable RPC (SRPC) Evolve Remote Procedure Call (RPC) Augment RPC interface of “server” with a scripting capability Client Scrip t Limited execution context Active Disk Script Interpreter Result  Prototype uses Tcl as the scripting language

SRPC : Key issues Migration path Efficient execution of scripts Safety

Migration path Make transition to new paradigm less intrusive Code to embed scripting into server automatically generated Existing unmodified clients co-exist with scripting clients Development process exactly the same

Development: RPC Interface definition Interface Implementation IDL Compiler Stubs Native Compiler Distributed Service

Development: SRPC Interface definition Interface Implementation IDL Compiler Stubs Native Compiler Distributed Service Tcl Wrappers Interpreter

Efficient execution of scripts Hide script interpretation overhead Script caching Exploit efficient Tcl bytecode representation Concurrency Multiple interpreters run simultaneously “Fast” standard library of primitives Implemented in C

Safety Guard against misbehaving client scripts Limited execution environment: SafeTcl Even while loops can be turned off Runtime type-checking Prevent illegal memory references Automatic tracking of locks Safe concurrent execution

Outline Motivation Scriptable RPC Case Study: Active Storage Performance Functionality Simplicity Summary

Case Study: Active storage Utilize CPU power at disks for client- specific processing Previous approaches Demonstrate performance benefits But, require radically new architectures No migration path for existing services Limited class of applications Parallel database primitives

Evaluation environment Platform P-III 550 MHz machines, 1GB mem, 100 Mb/s net Linux kernel v Case studies enhance ScFS using SRPC Application VFS ScFS Active Disk NFS - like protocol Linux Kernel Client

ScFS: Performance enhancements Combine dependent sequence of operations into single script Reduction in network round-trips needed for a logical operation Benefit sensitive to network delay Significant savings over dialup, wide-area Even across overloaded “fast” networks Reduction in total network traffic Helps overcome limitations in interface

Pathname lookup Read (dir page “/”) Client Disk RPC Lookup “/foo”

Pathname lookup Find inode number Read (dir page “/”) Page Data Client Disk RPC abc21 def39 bar52 foo40 Lookup “/foo”

Pathname lookup Find inode number Page Data GetAttr (inode 40) Client Disk RPC Lookup “/foo” Read (dir page “/”)

Pathname lookup Find inode number Page Data GetAttr (inode) Attributes Client Disk RPC Lookup “/foo” Read (dir page “/”)

Pathname lookup Find inode number Page Data GetAttr (inode) Attributes Client Disk Client Disk ExecScript (Read-GetAttr) Read page, find inode number, get attributes RPC SRPC Lookup “/foo” Lookup “/foo” Read (dir page “/”)

Pathname lookup Find inode number Page Data GetAttr (inode) Attributes Client Disk Client Disk ExecScript (Read-GetAttr) Read page, find inode number, get attributes Attributes RPC SRPC Lookup “/foo” Lookup “/foo” Read (dir page “/”)

Pathname lookup: Benefits

Performance: Summary Examples only illustrative Other “compositions” possible too! Micro-benchmarks Benefit due to reduced network roundtrips Macro-benchmarks Postmark: 54% less network traffic TPC-B: 96% less network traffic Facilitates working around minimal interfaces

Outline Motivation Scriptable RPC Case Study: Active Storage Performance Functionality Simplicity Summary

ScFS: Functionality enhancements Implement enhanced virtual protocols over physical protocols State can be added to stateless protocols System provides primitives Clients compose them into desired functionality Examples AFS consistency semantics over NFS Sprite consistency semantics over NFS

Consistency semantics: NFS vs AFS NFS Stateless server Client checks periodically for updates AFS Write-on-close semantics Server tracks clients caching a file Notifies clients when modified file written Requires server-side state, participation Cannot implement using existing paradigms

Scripted AFS consistency Client A Client B

Scripted AFS consistency Client A Client B ExecScript (AFS_OPEN) Open

Scripted AFS consistency Client A Client B File Data A ExecScript (AFS_OPEN) Callback list Cached file

Scripted AFS consistency Client A Client B ExecScript (AFS_OPEN) Open A Callback list Cached file

Scripted AFS consistency Client A Client B File Data A B ExecScript (AFS_OPEN) Callback list Cached file

Scripted AFS consistency Client A Client B ExecScript (AFS_CLOSE_DIRTY) A B File Close Callback list Cached file

Scripted AFS consistency Client A Client B B INVALIDATE_CACHE ExecScript (AFS_CLOSE_DIRTY) Callback list Cached file

Functionality: Summary SRPC: Powerful Possible to add complex functionality Even those requiring augmenting server state SRPC: Simple AFS consistency 2 scripts, < 10 lines each Sprite consistency 3 scripts, < 20 lines each Simple base system, compact scripts to extend it

ScFS: Simplicity enhancements Ability to group operations at server Simplifies implementation of atomic sets of operations Often, obviates need for distributed locks, distributed crash recovery Example - concurrent directory updates

Concurrent directory updates Client AClient B abc21 def39

Concurrent directory updates Client AClient B READ abc21 def39 abc21 def39 Create(“/foo”)

Concurrent directory updates Client AClient B READ abc21 def39 abc21 def39 Create(“/foo”)Create(“/bar”) abc21 def39

Concurrent directory updates Client AClient B abc21 def39 abc21 def39 foo41 abc21 def39 bar52

Concurrent directory updates Client AClient B WRITE abc21 def39 foo41 abc21 def39 foo41 abc21 def39 bar52

Concurrent directory updates Client AClient B WRITE abc21 def39 bar52 abc21 def39 foo41 abc21 def39 bar52

Concurrent directory updates Non-scripting Distributed locking, distributed crash recovery Clients acquire locks before read-modify-write Recover from client failures while holding locks SRPC Script acquires in-memory lock at server Just enforce mutual exclusion within single address space

Summary SRPC High Performance, rapid extensibility, simplicity Makes effective use of “active” architecture All scripts less than 20 lines of code Some implement non-trivial functionality Fewer lines of code => Fewer bugs, more robust systems Ease of building systems with active components Don’t have a complex system catering to all client requirements Provide primitives, enhance with compact scripts

Wisconsin Network Disks Group Questions ?