[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