[OpenAFS-devel] afs and byte-range locking ideas

Jeffrey Hutzelman jhutz@cmu.edu
Wed, 5 Dec 2001 13:53:44 -0500 (EST)


On Wed, 5 Dec 2001, Jim Doyle wrote:

> > Does DFS take a huge performance hit due to its support of byte-level
> > locking?
> 
> Yes, there are a number of issues that come up with DCE/DFS.
> 
> There is a token protocol between the fileserver and cache manager that
> provides for exclusive rights, synchronized read-writes, etc.  The token
> meta-data is stored in memory in the fileserver instance and the
> cache-mgr instance.  DFS fileservers could possibly require very large
> memory footprints in a big cell with frequent concurrent R/W access to
> files.
> 
> Another phenomenon with DFS is that when a file server crashes and
> restarts, there is a "blackout" period in fileservice for some configured
> period of time ; usually 15 minutes..  This period is called token state
> recovery.  During TSR, the file server sits and waits for cache managers
> who had prior been issues tokens to file to contact it to renew their
> tokens... This is how the fileserver rebuilds its list of clients locks
> after crash, and re-estabilishes the precedence on granting range order
> access to files... If a cache mgr is unable to reach the file server
> following the crash (i.e. network outage) - that cache manager simply
> becomes S.O.L. and simply loses whatever rights it held on access locks.
> 
> Because the token protocol touches everything ; I doubt it would be
> possible to make DFS work in disconnected mode operation.
> 
> There is a white paper on the DFS token protocol out there - I belive it
> was among the DCE 1.2.2 documentation tar ball.  I havent touched DCE
> stuff in years though ; and dont intend to ever again. :)

As Jim points out, the DFS token mechanism affects both performance and
memory footprints, as well as makeing crash recovery take longer.  It also
has some unfortunate security effects -- in order to avoid excessive
performance problems and some other nasty protocol problems, the DFS token
protocol is completely unauthenticated.  This means that any client can
acquire a lock on absolutely anything at all, and keep that lock for as
long as the server will let it (IIRC, that means forever, unless an
administrator intervenes).

-- Jeff