Distributed Systems CS 15-440 Distributed File Systems- Part I Lecture 20, Nov 28, 2012 Majd F. Sakr and Mohammad Hammoud 1.

Slides:



Advertisements
Similar presentations
Remote Procedure Call (RPC)
Advertisements

CS-550: Distributed File Systems [SiS]1 Resource Management in Distributed Systems: Distributed File Systems.
Distributed components
Technical Architectures
Distributed File Systems Chapter 11
Lecture 6 – Google File System (GFS) CSE 490h – Introduction to Distributed Computing, Winter 2008 Except as otherwise noted, the content of this presentation.
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.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Distributed Systems CS Distributed File Systems- Part I Lecture 19, Nov 14, 2011 Majd F. Sakr, Mohammad Hammoud andVinay Kolar 1.
Fall 2007cs4251 Distributed Computing Umar Kalim Dept. of Communication Systems Engineering 31/10/2007.
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.
Computer Science Lecture 2, page 1 CS677: Distributed OS Last Class: Introduction Distributed Systems – A collection of independent computers that appears.
Distributed Systems CS Distributed File Systems- Part II Lecture 20, Nov 16, 2011 Majd F. Sakr, Mohammad Hammoud andVinay Kolar 1.
Distributed Systems CS Programming Models- Part I Lecture 13, Oct 13, 2014 Mohammad Hammoud 1.
Wide-area cooperative storage with CFS
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.
Lecture 8 Epidemic communication, Server implementation.
File Systems (2). Readings r Silbershatz et al: 11.8.
Distributed File Systems
Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung Google∗
Distributed File Systems Concepts & Overview. Goals and Criteria Goal: present to a user a coherent, efficient, and manageable system for long-term data.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Distributed File Systems Steve Ko Computer Sciences and Engineering University at Buffalo.
Distributed Systems (15-440) Mohammad Hammoud December 4 th, 2013.
1 The Google File System Reporter: You-Wei Zhang.
CSC 456 Operating Systems Seminar Presentation (11/13/2012) Leon Weingard, Liang Xin The Google File System.
Distributed Systems Principles and Paradigms Chapter 10 Distributed File Systems 01 Introduction 02 Communication 03 Processes 04 Naming 05 Synchronization.
Networked File System CS Introduction to Operating Systems.
Distributed Systems. Interprocess Communication (IPC) Processes are either independent or cooperating – Threads provide a gray area – Cooperating processes.
Distributed File Systems
Latest Relevant Techniques and Applications for Distributed File Systems Ela Sharda
Chapter 20 Distributed File Systems Copyright © 2008.
What is a Distributed File System?? Allows transparent access to remote files over a network. Examples: Network File System (NFS) by Sun Microsystems.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED.
Introduction to DFS. Distributed File Systems A file system whose clients, servers and storage devices are dispersed among the machines of a distributed.
Cloud Computing CS Distributed File Systems and Cloud Storage – Part III Lecture 14, Feb 29, 2012 Majd F. Sakr, Mohammad Hammoud and Suhail Rehman.
MapReduce and GFS. Introduction r To understand Google’s file system let us look at the sort of processing that needs to be done r We will look at MapReduce.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved RPC Tanenbaum.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Database Applications (15-415) Part II- Hadoop Lecture 26, April 21, 2015 Mohammad Hammoud.
Distributed File Systems Architecture – 11.1 Processes – 11.2 Communication – 11.3 Naming – 11.4.
Computer Science Lecture 19, page 1 CS677: Distributed OS Last Class: Fault tolerance Reliable communication –One-one communication –One-many communication.
GLOBAL EDGE SOFTWERE LTD1 R EMOTE F ILE S HARING - Ardhanareesh Aradhyamath.
Distributed File Systems Architecture – 11.1 Processes – 11.2 Communication – 11.3 Naming – 11.4.
Distributed File Systems 11.2Process SaiRaj Bharath Yalamanchili.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
Distributed File Systems Questions answered in this lecture: Why are distributed file systems useful? What is difficult about distributed file systems?
Distributed Systems CS Distributed File Systems Lecture 22, Dec 2, 2015 Mohammad Hammoud 1.
Distributed File System. Outline Basic Concepts Current project Hadoop Distributed File System Future work Reference.
Chapter Five Distributed file systems. 2 Contents Distributed file system design Distributed file system implementation Trends in distributed file systems.
Distributed Systems: Distributed File Systems Ghada Ahmed, PhD. Assistant Prof., Computer Science Dept. Web:
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)
Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung
Last Class: Introduction
Cloud Computing CS Distributed File Systems and Cloud Storage – Part I
File System Implementation
CHAPTER 3 Architectures for Distributed Systems
Distributed Systems CS
Database Applications (15-415) Hadoop Lecture 26, April 19, 2016
Distributed Systems CS
NFS and AFS Adapted from slides by Ed Lazowska, Hank Levy, Andrea and Remzi Arpaci-Dussea, Michael Swift.
Distributed Systems CS
Today: Coda, xFS Case Study: Coda File System
Distributed Systems CS
Chapter 15: File System Internals
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Distributed Systems (15-440)
Presentation transcript:

Distributed Systems CS Distributed File Systems- Part I Lecture 20, Nov 28, 2012 Majd F. Sakr and Mohammad Hammoud 1

Today…  Last 3 sessions  Fault Tolerance  Today’s session  Distributed File Systems – Part I  Announcements:  Project 2 grades are out  PS4 (the last assignment) is now posted. Due date: Dec 12, 2012  Project 4 (the last project) will be posted by tonight 2

Intended Learning Outcomes: Distributed File Systems ILO7 Explain distributed file systems as a paradigm for general-purpose distributed systems, and analyze its various aspects and architectures ILO7.1Define distributed file systems (DFSs) and explain various architectures ILO7.2 Analyze various aspects of DFSs including processes, communication, naming, synchronization, consistency and replication, and fault tolerance Considered: a reasonably critical and comprehensive perspective. Thoughtful: Fluent, flexible and efficient perspective. Masterful: a powerful and illuminating perspective. ILO 7.1 ILO 7.2 ILO7

Discussion on Distributed File Systems 4 Distributed File Systems (DFSs) Basics DFS Aspects

Distributed File Systems  Why File Systems?  To organize data (as files)  To provide a means for applications to store, access, and modify data  Why Distributed File Systems (DFSs)?  Sharing and managing data in distributed systems  Big data continues to grow  A DFS can hold sheer volumes of data (contrary to a local file system) and provide access to these data to many clients dispersed across networks

NAS versus SAN  Another term for DFS is network attached storage (NAS), referring to attaching storage to network servers that provide file systems  A similar sounding term that refers to a very different approach is storage area network (SAN)  SAN makes storage devices (not file systems) available over a network Client Computer LAN File Server (Providing NAS) Database Server SAN

Benefits of DFSs  DFSs provide: 1.File sharing over a network: without a DFS, we would have to exchange files by or use applications such as the Internet’s FTP 2.Transparent files accesses: A user’s programs can access remote files as if they are local. The remote files have no special APIs; they are accessed just like local ones 3.Easy file management: managing a DFS is easier than managing multiple local file systems

DFS Components  DFS information can be typically categorized as follows: 1.The data state: This is the contents of files 2.The attribute state: This is the information about each file (e.g., file’s size and access control list) 3.The open-file state: This includes which files are open or otherwise in use, as well as describing how files are locked  Designing a DFS entails determining how its various components are placed. Specifically, by component placement we indicate:  What resides on the servers  What resides on the clients

DFS Component Placement (1)  The data and the attribute states permanently reside on the server’s local file system, but recently accessed or modified information might reside in server and/or client caches  The open-file state is transitory; it changes as processes open and close files Data Cache Attribute Cache Open-File State Data Cache Attribute Cache Open-File State Local File System Client Server Network

DFS Component Placement (2)  Three basic concerns govern the DFS components placement strategy: 1.Access speed: Caching information on clients improves performance considerably 2.Consistency: If clients cache information, do all parties share the same view of it? 3.Recovery: If one or more computers crash, to what extent are the others affected? How much information is lost?

Discussion on Distributed File Systems 11 Distributed File Systems (DFSs) Basics DFS Aspects Basics

DFS Aspects AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs?

DFS Aspects AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs?

Architectures  Client-Server Distributed File Systems  Cluster-Based Distributed File Systems  Symmetric Distributed File Systems

Architectures  Client-Server Distributed File Systems  Cluster-Based Distributed File Systems  Symmetric Distributed File Systems

Network File System  Many distributed file systems are organized along the lines of client-server architectures  Sun Microsystem’s Network File System (NFS) is one of the most widely-deployed DFS for Unix-based systems  NFS comes with a protocol that describes precisely how a client can access a file stored on a (remote) NFS file server  NFS allows a heterogeneous collection of processes, possibly running on different OSs and machines, to share a common file system

Remote Access Model  The model underlying NFS and similar systems is that of remote access model  In this model, clients:  Are offered transparent access to a file system that is managed by a remote server  Are normally unaware of the actual location of files  Are offered an interface to a file system similar to the interface offered by a conventional local file system File File stays on server Client Server Requests from client to access remote file Replies from server

Upload/Download Model  A contrary model, referred to as upload/download model, allows a client to access a file locally after having downloaded it from the server  The Internet’s FTP service can be used this way when a client downloads a complete file, modifies it, and then puts it back All accesses are done on client File New File File moved to client Client Server When client is done, file is returned to server

The Basic NFS Architecture System call layer Virtual File System (VFS) layer Local file system interface NFS client RPC client stub System call layer Virtual File System (VFS) layer NFS server Local file system interface RPC server stub Network Client Server A Client Request in NFS

Architectures  Client-Server Distributed File Systems  Cluster-Based Distributed File Systems  Symmetric Distributed File Systems

Data-Intensive Applications  Today there is a deluge of large data-intensive applications  Most data-intensive applications fall into one of two styles of computing:  Internet services (or cloud computing)  High-performance computing (HPC)  Cloud computing and HPC applications:  Run typically on thousands of compute nodes  Process sheer volumes of data (or big data) Visualization of entropy in Terascale Supernova Initiative application. Image from Kwan-Liu Ma’s visualization team at UC Davis

Cluster-Based Distributed File Systems  The underlying cluster-based file system is a key component for providing scalable data-intensive application performance  The cluster-based file system divides and distributes big data, using file striping techniques, for allowing concurrent data accesses  The cluster-based file systems could be either cloud computing or HPC oriented  Examples:  Cloud Computing Oriented: Google File System (GFS)  HPC Oriented: Parallel Virtual File System (PVFS)

File Striping Techniques  Server clusters are often used for distributed applications and their associated file systems are adjusted to satisfy their requirements  One well-known technique is to deploy file-striping techniques, by which a single file is distributed across multiple servers  Hence, it becomes possible to fetch different parts concurrently a b c d e a c d a e b b e d c Accessing file parts in parallel

Round-Robin Distribution (1)  How to stripe a file over multiple machines?  Round-Robin is typically a reasonable default solution Logical File Stripe Size Striping Unit Server 1Server 2Server 3Server

Round-Robin Distribution (2)  Clients perform writes/reads of file at various regions Server 1Server 2Server 3Server Client I: 512K write, offset 0Client II: 512K write, offset

2D Round-Robin Distribution (1)  What happens when we have many servers (say 1000s)?  2D distribution can help Logical File Stripe Size Striping Unit Server 1Server 2Server 3Server Group Size = 2

2D Round-Robin Distribution (2)  2D distribution can limit the number of servers per client Client I: 512K write, offset 0Client II: 512K write, offset Server 1Server 2Server 3Server Group Size = 2

GFS Data Distribution Policy  The Google File System (GFS) is a scalable DFS for data-intensive applications  GFS divides large files into multiple pieces called chunks or blocks (by default 64MB) and stores them on different data servers  This design is referred to as block-based design  Each GFS chunk has a unique 64-bit identifier and is stored as a file in the lower-layer local file system on the data server  GFS distributes chunks across cluster data servers using a random distribution policy

GFS Random Distribution Policy Server 0 (Writer) Blk 0 Blk 1 Blk 2 Blk 3 Blk 4 Blk 5 Blk 6 Server 1 Blk 0 Blk 2 Blk 3 Blk 5 0M 64M 128M 192M 256M 320M 384M Server 2Server 3 Blk 1 Blk 2 Blk 4 Blk 6 Blk 0 Blk 1 Blk 4 Blk 5 Blk 6 Load Imbalance

GFS Architecture GFS client Master Chunk Server Linux File System Chunk Server Linux File System Chunk Server Linux File System File name, chunk index Contact address Chunk Id, range Chunk data  The storage and compute capabilities of a cluster are organized in two ways: 1.Co-locate storage and compute in the same node 2.Separate storage nodes from compute nodes GFS

PVFS Data Distribution Policy  Parallel Virtual File System (PVFS) is a scalable DFS for (scientific) data-intensive applications  PVFS divides large files into multiple pieces called stripe units (by default 64KB) and stores them on different data servers  This design is referred to as object-based design  Unlike the block-based design of GFS, PVFS stores an object (or a handle) as a file that includes all the stripe units at a data server  PVFS distributes stripe units across cluster data servers using a round robin policy

PVFS Round-Robin Distribution Policy Server 0 (Writer) Server 1 0M 64M 128M 192M 256M 320M 384M Server 2Server 3 Blk 0 Blk 1 Blk 2 Blk 4 Blk 5 Blk 6 Blk 0 Blk 1 Blk 3 Blk 5 Blk 4 Blk 0 Blk 2 Blk 4 Blk 6 Blk 3 Blk 1 Blk 2 Blk 3 Blk 5 Blk 6 Load Balance

PVFS Architecture Network Metadata Manager I/O Nodes Compute Nodes  The storage and compute capabilities of a cluster are organized in two ways: 1.Co-locate storage and compute in the same node 2.Separate storage nodes from compute nodes PVFS

Architectures  Client-Server Distributed File Systems  Cluster-Based Distributed File Systems  Symmetric Distributed File Systems

Ivy  Fully symmetric organizations that are based on peer-to-peer technology also exist  All current proposals use a DHT-based system for distributing data, combined with a key-based lookup mechanism  As an example, Ivy is a distributed file system that is built using a Chord DHT-based system  Data storage in Ivy is realized by a block-oriented (i.e., blocks are distributed over storage nodes) distributed storage called DHash

Ivy Architecture  Ivy consists of 3 separate layers: Ivy DHash Chord File System Layer Block-Oriented Storage DHT Layer Ivy DHash Chord Ivy DHash Chord Node where a file system is rooted

Ivy  Ivy implements an NFS-like file system  To increase availability and improve performance, Ivy:  Replicates every block B to the k immediate successors of the server responsible for storing B  Caches looked up blocks along the route that the lookup request followed

DFS Aspects AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs?

Stateless Processes  Cooperating Processes in DFSs are usually the storage servers and file manager(s)  The most important aspect concerning DFS processes is whether they should be stateless or stateful  The Stateless Approach:  Doesn’t require that servers maintain any client state  When a server crashes, there is essentially no need to enter a recovery phase to bring the server to a previous state  Locking a file cannot be easily done  E.g., NFSv3

Stateful Processes  The Stateful Approach:  Requires that a server maintains some client state  Clients can make effective use of caches but this would require a cache consistency protocol  Provides a server with the ability to support callbacks (i.e., the ability to do RPC to a client) in order to keep track of its clients  E.g., NFSv4

DFS Aspects AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs?

Communication in DFSs  Communication in DFSs is mainly based on remote procedure calls (RPCs)  The main reason for choosing RPC is to make the system independent from underlying OSs, networks, and transport protocols  GFS uses RPC and may break a read into multiple RPCs to increase parallelism  PVFS currently uses TCP for all its internal communication  In NFS, all communication between a client and server proceeds along the Open Network Computing RPC (ONC RPC)

RPCs in NFS  Up until NFSv4, the client was made responsible for making the server’s life as easy as possible by keeping requests simple  The drawback becomes apparent when considering the use of NFS in a wide-area system  In that case, the extra latency of a second RPC leads to performance degradation  To circumvent such a problem, NFSv4 supports compound procedures Lookup Lookup name Read Read file data Time ClientServer Lookup Open Read Lookup name Read file data Time ClientServer Open file

RPC in Coda: RPC2  Another enhancement to RPCs has been developed as part of the Coda file system (Kistler and Satyanarayanan, 1992) and referred to as RPC2  RPC2 is a package that offers reliable RPCs on top of the (unreliable) UDP protocol  Each time an RPC is made, the RPC2 client code starts a new thread that sends an invocation request to the server then blocks until it receives an answer  As request processing may take an arbitrary time to complete, the server regularly sends back messages to the client to let it know it is still working on the request

RPC2 and Multicasting  RPC2 supports multicasting  An important design issue in Coda is that servers keep track of which clients have a local copy of a file (i.e., stateful servers)  When a file is modified, a sever invalidates local copies at clients in parallel using multicasting Client Server Client Time Sending an invalidation message one at a time Client Server Client Time Sending an invalidation message using multicasting as in RPC2 Invalidate Reply Invalidate Reply

Next Class: DFS Aspects AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs? AspectDescription ArchitectureHow are DFSs generally organized? ProcessesWho are the cooperating processes? Are processes stateful or stateless? CommunicationWhat is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? NamingHow is naming often handled in DFSs? SynchronizationWhat are the file sharing semantics adopted by DFSs? Consistency and ReplicationWhat are the various features of client-side caching as well as server-side replication? Fault ToleranceHow is fault tolerance handled in DFSs?