Lecture Notes for Client-Server Interfaces

15 April 2003 - Distributed File Systems


  1. motivation - the network's in the computer

    1. devices connected to the box by wires - the wires can be anything

    2. replace the wires by networks - the network computer

    3. the protocols over the network defines the device

    4. overhead and economics favor high-level protocols and devices

    5. examples - x, storage area networks and network attached storage, nfs, cambridge ring, plan 9

    6. you can do the same thing inside the box - distributed shared memory systems

  2. distributed file systems

    1. great technical and social pressure for network file systems - raw cost, administration effort, resource sharing

    2. accessing vs transferring - most-times different (nfs vs ftp), sometimes the same (afs or coda)

    3. the file-system semantics provides the file operations supported

    4. heterogeneous network environments - differing views of the file system

    5. stateless vs stateful servers - simplicity vs performance and semantics

  3. file system semantics - files, directories, operations

    1. file structure - data and meta-data

      1. data organization, structure, and addressing

      2. meta-data structure and meaning

    2. directory structure - how are files organized

    3. operations - under concurrency

    4. all are related - meta-data determines operations, operations manipulate meta-data

    5. don't forget file-like entities - /dev devices, /dev/proc

    6. example - the unix file system

      1. data - byte sequence indexed by offset

      2. meta-data - owner, group; read, write, execute permissions

      3. directories - files of other files; names follow the tree hierarchy; permissions re-interpreted; links; mounting

      4. operations - relative to a byte index (the file pointer)

  4. dfs add-ons

    1. naming - location transparent or location dependent

    2. concurrency semantics - a hard problem to do both usefully and efficiently; immutable, session-oriented, transaction-oriented, others (cwcs, conflict resolution)

    3. caching - not an add on, and not user-visible but still important

  5. example - network file system

    1. developed and released by sun - rfc 1094, version 2; rfc 1813, version 3; and rfc 3010, version 4.

    2. mostly unix semantics - concurrent access is fudged

    3. a separate mount protocol is responsible for building the local file system


This page last modified on 4 April 2002.