From: geoff@tyger.Eng.Sun.COM (Geoff Arnold @ Sun BOS - R.H. coast near the top)
Newsgroups: comp.protocols.nfs
Subject: Re: lockd
Date: 23 Jul 1992 17:52:08 GMT
Organization: SunSelect
NNTP-Posting-Host: tyger.east.sun.com

Quoth vjs@rhyolite.wpd.sgi.com (Vernon Schryver) (in <nje1jic@rhyolite.wpd.sgi.com>):
#In article <14hpi3INNppo@seven-up.East.Sun.COM>, geoff@tyger.Eng.Sun.COM (Geoff Arnold @ Sun BOS - R.H. coast near the top) writes:
#> ...
#> Why? Because back in 1986 it wasn't practical to create a multithreaded
#> lock manager.
#
#
#This is the first even remotely official statement I've heard that any
#of the various versions of lockd owe much to the simple locking demo
#program shown at USENIX or whatever in Feb (I think) 1986.  By
#listening to what was said in meetings of B.Lyons' group at the time, I
#inferred that it was not intended to be a product.  Are you referring
#to the same demo?

OK, let me dig out my notebooks. 1986 was imprecise: I should
have said 1985-86.

I first got involved in the lock manager during the latter part of
1985, in email discussions with Jo-Mei Chang about the state of the
work that she was doing with Bob Lyons. That was the project that led
to the lock manager that was demonstrated at Uniforum in Feb of 1986 (I
think - that was also the first demo of PC-NFS, and I was pretty busy
at the show). That code cetainly formed the basis for the first FCS
product (according to the SCCS history).

In the summer of 1986 I took on temporary ownership of the lock manager
source in order to add the file sharing and other pieces needed for PC
clients. I also cleaned up some areas of inefficiency, but I didn't
change any of the fundamental algorithms. I then passed the token back
to the West Coast group. The subsequent history is murky, and includes
a fair amount of interaction with the folks at Summit...

#It was not <<technically>> "impractical to create a multithreaded lock
#manager" in 1986.  Perhaps no one had the time or inclination, but it
#was certainly technically feasible.  "Multi-processing", "threads",
#and so on have not changed much since 1986.

It is true that back in 1985-86 there were a few examples of LWP-style
multithread packages. What were missing, of course, were the fully MT-safe
runtime libraries (everything from stdio to rpc) and MT kernels
to support them. 

# It is true that more
#companies are shipping multi-processor UNIX systems today, but that is
#not relevant.  You don't need more than one processor for a
#multi-threaded program.

Natch.

# You don't need klunky things like System V
#shared memory and semaphores, which were around in 1986 and might have
#been in SunOS--I don't remember.  Lockd on SunOs of that vintage could
#probably have used vfork(), although that would have been somewhat kludgy.

I think that the first lockd work preceded even the SunOS 4.0 memory
rearchitecture. Prior to that, vfork would have been a killer.

Geoff
--
---------------------------------------+--------------------------------------
     Geoff Arnold, PC-NFS architect    | Thought for the day: If Unix had been
      (geoff.arnold@East.Sun.COM)      | developed in England, we'd all be using
SunSelect, a Sun Microsystems Business | BCPL (and migrating to BCPL++)...