[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CVS and AFS

From: Todd Denniston
Subject: Re: CVS and AFS
Date: Fri, 22 Jun 2001 10:53:29 -0500

"Michael Sperber [Mr. Preprocessor]" wrote:
> >>>>> "Todd" == Todd Denniston <address@hidden> writes:
> Todd> Telling CVS on each machine that it accessing the repository on
> Todd> a physical (local) drive so that all lock files are being cached
> Todd> in the local machines File System cache.  However the case is
> Todd> that the lock files are being cached locally, network latency
> Todd> added, and finally being put in the actually distributing
> Todd> computer's cache to be checked by other cvs clients.  This
> Todd> allows a race condition to exist where one client may not know
> Todd> another has a lock and so it can (insert bad thing) which
> Todd> corrupts or causes other problems with the repository.
> Not on AFS.  Check your facts.

I am not able to parse enough of how CVS makes and uses it locks at a code
level quickly enough to answer this, so .....

CVS maintainers,
Knowing the following about AFS, would AFS keep the locking sane or do we still
have the race condition?
(my understanding says "yes we race because it is cacheing in two machines",
but I would kind of like to be SURE for future reference.)


   Save on close:                                          [ Programmer ]
      AFS Cache Manager does not send file modifications to a file server
      until the close() or fsync() system call.
      write() system calls only update the local cache copy on the client.
      Note the difference in semantic of writing a file:
      local unix file: writes update the file "immediately"
      AFS file:        local cached copy updated "immediately" but
                       the server copy is only updated when the file
                       is closed or fsync'ed.

      It is important to understand that most applications (eg: vi, emacs,
      frame, interleaf, wingz, dogz, etc) issue the close() system call when
      the user chooses/issues the "save" command in the application.
      Users are not required to exit the application to "save" their
      changes back to the server.
   whole file locking:                                     [ Programmer ]
      AFS does support advisory locking an entire file with flock().
      Processes on the same client workstation that attempt to lock
      a file obey the proper locking semantics.
      Processes on different AFS clients requesting a lock on the same
      file would get EWOULDBLOCK returned.

Todd Denniston, Code 6067, NSWC Crane mailto:address@hidden
I'd crawl over an acre of 'Visual This++' and 'Integrated Development
That' to get to gcc, Emacs, and gdb.  Thank you.
        -- Vance Petree, Virginia Power

reply via email to

[Prev in Thread] Current Thread [Next in Thread]