The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: bakul@bitblocks.com (Bakul Shah)
Subject: [TUHS] RFS was: Re: UNIX of choice these days?
Date: Thu, 28 Sep 2017 13:00:42 -0700	[thread overview]
Message-ID: <2BFDC7A5-109E-4045-8B40-4ECC11F8DE45@bitblocks.com> (raw)
In-Reply-To: <20170928140700.GN28606@mcvoy.com>



> On Sep 28, 2017, at 7:07 AM, Larry McVoy <lm at mcvoy.com> wrote:
> 
> On Thu, Sep 28, 2017 at 07:49:17AM -0600, arnold at skeeve.com wrote:
>> Kevin Bowling <kevin.bowling at kev009.com> wrote:
>> 
>>> I guess alternatively, what was interesting or neat, about RFS, if
>>> anything?  And what was bad?
>> 
>> Good: Stateful implementation, remote devices worked.
> 
> I'd argue that stateful is really hard to get right when machines panic
> or reboot.  Maybe you can do it on the client but how does one save all
> that state on the server when the server crashes?
> 
> NFS seems simple in hindsight but like a lot of things, getting to that
> simple wasn't chance, it was designed to be stateless because nobody
> had a way to save the state in any reasonable way.

I have some first hand experience with this.... in 1984.

Valid Logic Systems Inc, an early VLSI design vendor hired me
as a contractor to fix bugs in this funky ethernet driver they
had (from Lucas films, IIRC) that did some remote file
operations. I proposed that instead I do a "proper" networked
file system and to my amazement they agreed to let me build a   
prototype.
 
I first built an RPC layer (ethertype 1600 -- see RFC 1700!)
and then EFS (extended FS) that allowed access to remote 
files.  Being a one man team I punted on generality. Just
hand-built separate marshall/unmarshall function for each
remote procedure.  No mounts. Every node's FS was visible to
everyone else (subject to Unix permissions). /net/ path prefix
was for remote files.
 
All this took about 2-3 months. Performance was decent for a
1984 era workstation. Encouraged by the progress I suggested
we add in missing functionality such as the ability to chdir 
to a remote dir etc. Yes, state! And complications!
 
On bootup every node advertized its presence & a "generation"
number (incremented by 1 from the last gen) so that other
nodes can drop old outstanding state -- not unlike a disk 
dying but still messy to clean things up. Next had to make
scheduling priority for remote operations to be interruptible.
People didn't like "cd /net/foo" hanging indefinitely! unlink
and mv were a problem (machine A wouldn't know if machine B    
did this). rm was easy to fix -- just add a refcount for every
remote machine with an open. mv not so. I don't think I ever
solved this. Local FS read/write are atomic so I tried very
hard to make the remote read/writes atomic as well. This can
get interesting in presence of a node crashing....
 
At about this time, Sun gave a presentation on NFS to Valid.
I suspect Valid also realized that doing this properly was
a much bigger than a one man project. Result: they terminated
the project. It was a fun project while it lasted. The fact
this much was done was thanks to a lot of invaluable help
from my friend Jamie Markevitch (also a contractor @ Valid
at that point).

At the time I thought all of these stateful problems were
solvable given more time but now I am not so sure. But as
a result of that belief I never really liked NFS. I felt
they took the easy way out.



  parent reply	other threads:[~2017-09-28 20:00 UTC|newest]

Thread overview: 126+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-20  0:12 [TUHS] " Arthur Krewat
2017-09-20  0:26 ` Larry McVoy
2017-09-20  0:39 ` Dave Horsfall
2017-09-20  1:03   ` Lyndon Nerenberg
2017-09-20 20:56     ` jason-tuhs
2017-09-23  9:17   ` Dario Niedermann
2017-09-23  9:36     ` Steve Mynott
2017-09-23 10:03       ` Dario Niedermann
2017-09-23 23:04         ` Dave Horsfall
2017-09-24  0:11           ` Random832
2017-09-24  1:19             ` Dave Horsfall
2017-09-24 13:46       ` Andy Kosela
2017-09-24 14:02         ` ron minnich
2017-09-24 14:06           ` Larry McVoy
2017-09-24 20:36             ` Kurt H Maier
2017-09-24 21:38               ` Bakul Shah
2017-09-24 23:36                 ` Dave Horsfall
2017-09-24 23:50                   ` Steve Nickolas
2017-09-25  0:03                     ` Wesley Parish
2017-09-25 15:36                       ` Tony Finch
2017-09-26  0:42                         ` Wesley Parish
2017-09-26  9:54                           ` Tony Finch
2017-09-26 14:41                           ` Larry McVoy
2017-09-26 17:34                             ` Bakul Shah
2017-09-26 17:39                               ` Warner Losh
2017-09-26 18:26                                 ` Bakul Shah
2017-09-26 17:43                               ` Larry McVoy
2017-09-26 19:44                                 ` Grant Taylor
2017-09-26 23:22                             ` Wesley Parish
2017-09-25  0:51                     ` Charles Anthony
2017-09-25  0:36                   ` Dan Cross
2017-09-25  0:44                     ` Grant Taylor
2017-09-25  0:56                   ` Bakul Shah
2017-09-25 15:45                     ` Tony Finch
2017-09-25 16:14                       ` Bakul Shah
2017-09-25  7:41                   ` Andy Kosela
2017-09-25  7:43                     ` Cory Smelosky
2017-09-25 10:14                       ` Andy Kosela
2017-09-25  9:58                     ` Steve Nickolas
2017-09-25 11:14                       ` Derek Fawcus
2017-09-25 11:48                       ` Andrew Warkentin
2017-09-24 15:26           ` Christian Barthel
2017-09-24 17:33             ` Clem Cole
2017-09-24 17:33           ` Clem Cole
2017-09-24 17:51             ` [TUHS] RFS was: " Arthur Krewat
2017-09-24 19:54               ` Clem Cole
2017-09-24 21:59                 ` Arthur Krewat
2017-09-24 22:08                 ` Arthur Krewat
2017-09-24 23:52                   ` Clem Cole
2017-09-27  8:44                 ` arnold
2017-09-27 15:25                   ` Arthur Krewat
2017-09-27 15:49                     ` arnold
2017-09-27 17:38                   ` Mantas Mikulėnas
2017-09-27 23:01                   ` Kevin Bowling
2017-09-27 23:11                     ` Clem Cole
2017-09-27 23:13                       ` Kevin Bowling
2017-09-28  0:39                         ` Larry McVoy
2017-09-28  3:19                           ` Theodore Ts'o
2017-09-28 13:45                             ` Larry McVoy
2017-09-28 17:12                               ` Steve Johnson
2017-09-28 17:58                                 ` [TUHS] Bill Joy was: Re: RFS Forrest, Jon
2017-09-28  0:54                         ` [TUHS] RFS was: Re: UNIX of choice these days? Dave Horsfall
2017-09-28  0:59                           ` William Pechter
2017-09-28 13:49                         ` arnold
2017-09-28 14:07                           ` Larry McVoy
2017-09-28 14:28                             ` arnold
2017-09-28 19:49                               ` Larry McVoy
2017-09-28 20:00                             ` Bakul Shah [this message]
2017-09-28 14:27                           ` Clem Cole
2017-09-28 22:08                             ` Dave Horsfall
2017-09-28 22:20                               ` Larry McVoy
2017-09-29  2:23                                 ` Kevin Bowling
2017-09-29  8:59                                 ` Andreas Kusalananda Kähäri
2017-09-29 14:20                                   ` Clem Cole
2017-09-29 16:46                                   ` Grant Taylor
2017-09-29 17:02                                     ` Kurt H Maier
2017-09-29 17:27                                       ` Pete Wright
2017-09-29 18:11                                       ` Grant Taylor
2017-09-29 18:47                                     ` Andreas Kusalananda Kähäri
2017-09-29 15:22                                 ` George Ross
2017-09-29 18:40                                   ` Don Hopkins
2017-09-29 19:03                                     ` Larry McVoy
2017-09-29 21:24                                     ` Arthur Krewat
2017-09-29 22:11                                       ` Don Hopkins
2017-09-29 22:21                                         ` Don Hopkins
2017-09-29 19:19                                 ` Dan Cross
2017-09-29 19:22                                   ` Larry McVoy
2017-09-29 20:52                                   ` Jon Forrest
2017-09-23 23:00     ` [TUHS] " Dave Horsfall
2017-09-26 22:00     ` Christian Groessler
2017-09-20  4:42 ` Grant Taylor
2017-09-20  8:31   ` Mutiny 
2017-09-20  9:15 ` Steve Nickolas
2017-09-20 16:58   ` Arthur Krewat
2017-09-20 17:05     ` Steve Nickolas
2017-09-20 17:53     ` Henry Bent
2017-09-20 18:12       ` Arthur Krewat
2017-09-20 18:33         ` Brad Spencer
2017-09-20 19:20           ` Henry Bent
2017-09-20 19:37           ` Arthur Krewat
2017-09-20 19:58             ` Jacob Ritorto
2017-09-20 22:29               ` Ian Zimmerman
2017-09-20 22:31                 ` Warner Losh
2017-09-20 12:52 ` Chet Ramey
2017-09-20 13:33 ` Nemo
2017-09-20 15:39 ` Clem Cole
2017-09-20 15:42 ` Jon Steinhart
2017-09-20 16:58   ` Ian Zimmerman
2017-09-20 17:09     ` Jon Steinhart
2017-09-20 17:31     ` Arthur Krewat
2017-09-20 22:40 ` Steve Simon
2017-09-20 22:51   ` Erik Berls
2017-09-20 23:37 ` Robert Brockway
2017-09-21  1:47 ` Derrik Walker v2.0
2017-09-21  3:54 ` Gregg Levine
2017-09-21 14:33 ` Nicholas Chappell
2017-09-21 16:38   ` Mutiny 
2017-09-21 16:42     ` gilbertmm
2017-09-21 18:30     ` Grant Taylor
2017-09-21 23:34     ` Dave Horsfall
2017-09-25 10:36 ` Thomas Kellar
2017-09-28 12:53 [TUHS] RFS was: " Noel Chiappa
2017-09-28 14:09 ` Theodore Ts'o
2017-09-28 14:35   ` Clem Cole
     [not found] <mailman.1219.1506559196.3779.tuhs@minnie.tuhs.org>
2017-09-28 14:08 ` David
2017-09-28 17:22   ` Pete Wright

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2BFDC7A5-109E-4045-8B40-4ECC11F8DE45@bitblocks.com \
    --to=bakul@bitblocks.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).