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.
next prev 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).