170 likes | 249 Vues
Learn about NFS and AFS network file systems. NFS uses client caching to reduce network load, while AFS caches files on clients' disks. NFS has weak consistency, while AFS offers session semantics. Compare their design principles and caching strategies.
E N D
Network File System (NFS) • Uses client caching to reduce network load • Built on top of RPC Server cache: X Client A cache: X Client B cache: X
NFS Weak Consistency Protocol • Write-through caching: A write updates the server immediately • Other clients poll the server periodically for changes • No guarantees for multiple writers
Andrew File System (AFS) • Developed at CMU • Design principles • Files are cached on each client’s disks • NFS caches only in clients’ memory • Callbacks: The server records who has the copy of a file • Write-back cache on file close. The server then tells all clients that own an old copy. • Session semantics: Updates are only visible on close
NFS Summary + Simple and highly portable - May become inconsistent sometimes • Does not happen very often
AFS Illustrated Server cache: X Client A Client B
read X AFS Illustrated callback list of X client A Server cache: X Client A Client B read X
read X AFS Illustrated callback list of X client A Server cache: X Client A cache: X Client B read X
read X AFS Illustrated callback list of X client A Server cache: X Client A cache: X Client B read X
read X AFS Illustrated callback list of X client A client B Server cache: X Client A cache: X Client B read X
read X AFS Illustrated callback list of X client A client B Server cache: X Client A cache: X Client B cache: X read X
AFS Illustrated Server cache: X Client A cache: X Client B cache: X write X, X X
X X AFS Illustrated Server cache: X Client A cache: X Client B cache: X close X
X X AFS Illustrated Server cache: X Client A cache: X Client B cache: X close X
AFS Illustrated Server cache: X Client A cache: X Client B cache: X close X
X AFS Illustrated Server cache: X Client A cache: X Client B cache: X open X
X AFS Illustrated Server cache: X Client A cache: X Client B cache: X open X