



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Distributed file system, Locating file servers, Name lookup, Caching, Consistency, NFS protocol, AFS and sprits failure, Doda and disconnected operation, Hoarding
Typology: Slides
1 / 7
This page cannot be seen from the preview
Don't miss anything!




n You login into any zoo machine, access your home directory n Your project partner works on the workstation next to you, shares files with you
n Open(filename) Ë file-descriptor n Read(file-descriptor, position, size) Ë array of bytes n Write(file-descriptor, position, size, array of bytes) Ë status
n NFS: dozens of workstations n Sprite: 100’s of workstations n AFS: 1000’s of workstations n As the scale increases, what extra issues do you have to worry at larger scale?
n Name transparency: all three systems support n AFS: local disks, shared component n NFS: diskless, local/shared n Sprite: single shared file system, supports remote devices
n Extend mount table: add host name n Has to be on a local disk, replicated
n System-wide table, special protocol for obtaining current copy n Forwarding when files move
n Servers know what files they serve, respond to broadcast n Can be cached to minimize broadcasts n On failure, broadcast request
n Weaker than synchronization n Reads return the value of previous write
n Freeze the file on open n If file changes, client gets notified. Next time client refetches the file
n Version number, checks occasionally, flushes if different
n Version numbers, check on open, callbacks to disable caching when there is write-sharing
n What if server crashes?
n Can client wait until server comes back up, and continue as before?
n Issues: n Any data in server memory but not yet on disk can be lost n Shared state across RPCs. n Example: open, seek, read. What if server crashes after seek? n Message re-tries – suppose server crashes after it does “rm foo”, but before acknowledgement
n What if client crashes? n Might lose modified data in client cache
n Each request gives enough information to do entire operation ReadAt(inumber, position) not Read(openfile) n When server crashes and restarts, can start processing requests immediately as if nothing happened
n All requests are ok to repeat n If server crashes between disk I/O and message reply, client can resend message, server just does operation all over again n Read and write file block is easy (just re-read or re-write) n What about “remove”? NFS does the remove twice, and returns an error the second time
n Is this a good idea? What should happen if server crashes? Suppose you are in the middle of reading a file, and server crashes n Option 1: hang until server comes back up n Option 2: return an error n NFS does both – can select which one
n Most of what you need will be around
n No way to use callback promises since server and client cannot communicate
n Log of changes kept while disconnected n Apply changes upon reconnect n If conflict detected, try to resolve automatically, else ask the user