[OpenAFS] How the file updation process happen in AFS?

Jeffrey Hutzelman jhutz@cmu.edu
Mon, 3 Dec 2001 22:53:54 -0500 (EST)


On Mon, 3 Dec 2001, Hartmut Reuter wrote:

> It' not the server, but the client who starts the update. The client
> will send to the server only the dirty chunks, means the chunks which
> have been totally or partially rewritten. After the update in the server
> the other client in your example who has got a copy of the file will get
> a callback-call saying: your data are invalid.

That's correct; only the dirty chunks will be written back to the server.
However, writing _any_ chunk back changes the data version of the file,
which means that any cached copies of that file on other clients are
invalidated in their entirety -- the data version and callback mechanisms
operate on a whole-file granularity.  This is one of the things that made
AMS perform so poorly on bboards with frequent delivery and large
readership -- every time a message was delivered to a folder, anyone
reading that folder would end up having to fetch a new version of the
directory and msgdir.

Of course, refetches are done lazily -- a client with an outdated version
of a file won't bother to refetch it unless and until it needs the data.

-- Jeffrey T. Hutzelman (N3NHS) <jhutz+@cmu.edu>
   Sr. Research Systems Programmer
   School of Computer Science - Research Computing Facility
   Carnegie Mellon University - Pittsburgh, PA