next up previous
Next: Chapter 11: Distributed Scheduling Up: No Title Previous: Chapter 3: Process Deadlocks

Chapter 9: Disributed File Systems

Goals
1.
Network transparency
2.
High availability

Design Issues
1.
Naming and name resolution
2.
Cache on disk or main memory
3.
Writing policy
4.
Cache consistency
5.
Availability
6.
Scalability
7.
Semantics of file opeations

Case Study: Coda File System

Coda Features
1.
Few trusted servers, many untrusted clients
2.
Clients cache entire files on local disks
3.
Cache coherence by callback: servers notify workstations of changes to cached files
4.
Clients dynamically map files to servers and cache this information
5.
Token-based authentication and end-to-end encryption

Replication Strategies
1.
Pessimistic: restrict updates to at most one partition
2.
Optimistic: updates allowed in every partition; detect and resolve conflicts after they occur
Optimistic strategy chosen because:
1.
higher availability
2.
enables support for portable workstations
3.
write sharing between users is relatively infrequent

One-copy UNIX Semantics
Every modification to every byte of a file has to be immediately visible to every client

Lessons from Andrew File System
1.
Propagating changes at granularity of file opens and closes is adequate for virtually all applications
2.
Slightly weaker consistency guarantees are acceptable: if a callback from server to a client (or modification of the file by another client) is lost a client may continue to use a cached copy of the file for some time after that file has been changed elsewhere
3.
Client maintains information about a subset of servers that are currently accessible. If this set is empty: disconnected mode of operation.

Server Replication
Volume: unit of replication
Volume Storage Group (VSG):
set of servers with replicas of a volume (only a subset, AVSG, may be accessible)
Volume Replication Database:
stores the degree of replication and identity of replication sites of a volume (present at every server)

Strategy
Read-One, Write-All (ROWA)

Cache Coherence

Cache Coherence (contd.)

Replica Management

State Transformation
Update:
extends update history; two-phase operation
Force:
copying updates from a dominant replica to a submissive replica
Repair:
used to return inconsistent replicas to normal use
Migrate:
saves copies of objects involved in unsuccessful updates resulting from disconnected operation for future repair


next up previous
Next: Chapter 11: Distributed Scheduling Up: No Title Previous: Chapter 3: Process Deadlocks
Ravi Prakash
2000-04-22