Andrew Design Goals

Andrew Design Goals

COMP 790-088 -- Distributed File Systems Andrew File System COMP 790-088 -- Fall 2009 1 Andrew Design Goals Transparent file naming in single name space Scalable -- O(1000s) Performance approximating local files Low incremental costs Easy administration and operation Sharing with strong/flexible protections Strong consistency semantics Security (authentication) COMP 790-088 -- Fall 2009 2 Users Share a Single File System / afs / etc bin etc bin cache bin local usr cache tools sam joe win32 doc / / etc bin etc bin cache cache COMP 790-088 -- Fall 2009 3 File Space Distributed on Servers / / etc bin etc bin cache cache afs local usr bin data “volume” movement is tools sam joe non-disruptive to users win32 doc COMP 790-088 -- Fall 2009 4 Server “Cells” Form a Global File System / / /afs/unc.edu etc bin etc bin cache cache usr /afs/cmu.edu /afs/mit.edu usr usr fds kj ted carol alice bob doc doc doc COMP 790-088 -- Fall 2009 5 Andrew File Access (Open) (1) - open request passed to Andrew client application (2) - client checks cache for valid file copy (3) - if not in cache, fetch whole file from server open(/afs/usr/fds/foo.c) and write to cache; else (4) (4) - when file is in cache, return handle to local file (4) (1) (2) (3) file system Client Server file system OS kernel OS kernel cache COMP 790-088 -- Fall 2009 6 Andrew File Access (Read/Write) application read(fh, buffer, length) (5) - read and write operations take write(fh, buffer, length) place on local cache copy file system Client Server file system OS kernel (5) OS kernel cache COMP 790-088 -- Fall 2009 7 Andrew File Access (Close-Write) (6) - close request passed to Andrew client application (7) - client writes whole file back to server from cache close(fh) (8) - server copy of file is entirely replaced (6) file system Client Server file system OS kernel (7) OS kernel (8) cache COMP 790-088 -- Fall 2009 8 Andrew System Structure application read(fh, buffer, length) Virtual Client *Andrew RPC optimized for Server Virtual file system file system bulk data (file) transfer (VFS) (VFS) RPC* RPC* Unix Unix file system UDP/IP UDP/IP file system OS kernel OS kernel cache COMP 790-088 -- Fall 2009 9 Andrew Cache Operation and Consistency Semantics File data is read from, or written to, the local cache copy only Ê if the file exists but is not in the cache, it must be fetched from the server to the local cache on open Directories are fetched to the local cache for read (lookup) operations Directory updates (e.g., create or remove) are always performed on the server (atomically) and also performed locally on a cached copy if present and valid COMP 790-088 -- Fall 2009 10 Andrew Cache Operation and Consistency Semantics On close, a modified file is copied from the cache back to the server and replaces the server’s copy When file or directory data is fetched, the server “guarantees” to notify (callback) the client before changing the server’s copy Cached data is used without checking until a callback is received for it or 10 minutes has elapsed without communication with its server COMP 790-088 -- Fall 2009 11 Andrew Cache Operation and Consistency Semantics On receiving a callback for a file or directory, the client invalidates the cached copy which causes a re-fetch on the next reference Cached data can also be validated (and new callbacks established) by the client with an RPC to the server Ê primarily used to avoid discarding all cache content after a loss of communication with the server or a reboot of the client machine COMP 790-088 -- Fall 2009 12 Andrew Benchmark 1 client workstation = 1 “load unit” ≅ 5 “typical users” Files: source code of program 70 files, 200KB Ethernet server Benchmark Phases: mkdir - duplicate directory tree cp - copy all files to duplicate directories scan - get status of every new file read - read every byte of every file clients make - make the program COMP 790-088 -- Fall 2009 13 Andrew Benchmark -- Elapsed Time Source: Howard, et al, “Scale and Performance in a Distributed File System”, ACM TOCS, vol. 6, no. 1, February 1988, pp. 51-81. COMP 790-088 -- Fall 2009 14 Andrew Benchmark -- Server CPU Utilization Source: Howard, et al, “Scale and Performance in a Distributed File System”, ACM TOCS, vol. 6, no. 1, February 1988, pp. 51-81. COMP 790-088 -- Fall 2009 15 Andrew Benchmark -- Server Disk Utilization Source: Howard, et al, “Scale and Performance in a Distributed File System”, ACM TOCS, vol. 6, no. 1, February 1988, pp. 51-81. COMP 790-088 -- Fall 2009 16.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    8 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us