0% found this document useful (0 votes)
105 views

Coda File System - Tahir

Coda is a network file system based on the Andrew File System (AFS) that was designed to be highly secure, available, and transparent to users. It aims to overcome AFS limitations like scaling issues due to limited replication and unavailability during server/network failures. Coda implements availability through replicating file volumes across servers and allows disconnected operation by caching files locally. When connected, clients access a single shared namespace through remote procedure calls to virtual file servers.

Uploaded by

Erick Dadu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
105 views

Coda File System - Tahir

Coda is a network file system based on the Andrew File System (AFS) that was designed to be highly secure, available, and transparent to users. It aims to overcome AFS limitations like scaling issues due to limited replication and unavailability during server/network failures. Coda implements availability through replicating file volumes across servers and allows disconnected operation by caching files locally. When connected, clients access a single shared namespace through remote procedure calls to virtual file servers.

Uploaded by

Erick Dadu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 18

Presented By:

Samreen Tahir
WHAT IS IT?

Coda is a network file system and a descendent of the Andrew File System
2. It was designed to be:
 Highly secure
 Available
 Transparent to its users.

Andrew File System:

• Architecture of Coda is based on Andrew File System

• AFS was developed at Carnegie Mellon University

• It was designed to support the CMU community that meant serving 10, 000 workstations
Limitations of AFS:
 Limited form of replication posed scaling
problems
 Non-availability of services when servers
and network components fail
 No catering for mobile use of portable
computers
Coda was designed to overcome the problems associated
with AFS.
How does Coda work?
It works by implementing two COMPLEMENTARY
functionalities :

1. Availability of files by replicating a file volume across


many servers

2. Disconnected mode of operation by caching files at the


client machine
The Coda architecture is based on AFS: The Andrew File System
Transparent access
to a Vice file server AFS is divided into two types
of nodes:

1. Vice nodes: dedicated file servers

2. Virtue nodes: client machines

Virtue Client Vice file server


The internal organization of a virtue workstation:

Virtue Client Machine

Venus
User User
process
process process

RPC
client stub

Virtual file
Local file system layer
system
interface

Local OS

Network

Venus: A process that is hosted on each Virtue system.

VFS: Virtual File System, intercepts the calls from client application or user processes
and forwards them either to the local file system or Venus.
How do the server and client communicate in Coda?

Answer: Through Remote Procedure Calls (RPC)

RPC call
File Server
Client
Reply May take arbitrary
(Blocking) amount of time

1. The server keeps sending back messages to the client that it is still working
on the problem.
2. If the server dies and the client notices that it is not receiving any messages
it reports back failure to the client application.
(contd.)

F Invali
File d a te F
F
Updated File F Invalidate F
F F
Invalidate F File server
F

client

When a server notices updates in a file, it must inform the client which
are caching a copy of it to invalidate that copy.
COMMUNICATION: (contd.)

There are two ways to invalidate a file:

A better approach:

Client Client
ate

ate
invalid

invalid
rep

rep
Server l Server

ly
y
inva

inva
reply

reply
lidat

lida
Client Client
e

te
Time Time

Sending invalidation message one Sending invalidation messages in


at a time. parallel.

This method is inefficient since a client may crash before


giving a reply to the server.
 Coda uses RPC2: more sophisticated than the
traditional RPC used by NFS
 RPC2 implements a functionality called side
effect: a separate connection is opened when a
remote procedure is called.
 This separate connection is for the application
specific protocol between the client and the
server.
RPC2 contd.

Client Application
Server

RPC
Client side Application-specific protocol
Server side
effect effect

RPC client RPC protocol RPC server


stub stub

Side-effects in Coda’s RPC2 system.


Naming:
 Coda uses name space implementation
analogous to that of UNIX.
 Volumes are the building units of the
entire file system and are mounted at a
mount point.
Clients in coda have access to a
single shared namespace
Naming inherited from server’s namespace

Client A Server Client B

pkg afs
afs local bin
pkg
bin

Exported directory Exported directory


mounted by client mounted by client

Network

Clients in Coda have access to a single shared namespace.


File Identifiers:
Client Caching:
Server Replication:
Fault Tolerance: Disconnected
Operation
Fault Tolerance: Disconnected
Operation

You might also like