On Tue, Feb 19, 2019 at 4:46 PM Robert Haas <robertmh...@gmail.com> wrote:

> On Tue, Feb 19, 2019 at 2:03 AM Thomas Munro <thomas.mu...@gmail.com>
> wrote:
> > How can we achieve that, without writing our
> > own NFS client?
>
> <dons crash helmet>
>

You'll need it :)


Instead of writing our own NFS client, how about writing our own
> network storage protocol?  Imagine a stripped-down postmaster process
> running on the NFS server that essentially acts as a block server.
> Through some sort of network chatter, it can exchange blocks with the
> real postmaster running someplace else.  The mini-protocol would
> contain commands like READ_BLOCK, WRITE_BLOCK, EXTEND_RELATION,
> FSYNC_SEGMENT, etc. - basically whatever the relevant operations at
> the smgr layer are.  And the user would see the remote server as a
> tablespace mapped to a special smgr.
>
> As compared with your proposal, this has both advantages and
> disadvantages.  The main advantage is that we aren't dependent on
> being able to make NFS behave in any particular way; indeed, this type
> of solution could be used not only to work around problems with NFS,
> but also problems with any other network filesystem.  We get to reuse
> all of the work we've done to try to make local operation reliable;
> the remote server can run the same code that would be run locally
> whenever the master tells it to do so.  And you can even imagine
> trying to push more work to the remote side in some future version of
> the protocol.  The main disadvantage is that it doesn't help unless
> you can actually run software on the remote box.  If the only access
> you have to the remote side is that it exposes an NFS interface, then
> this sort of thing is useless.  And that's probably a pretty common
> scenario.
>

In my experience, that covers approximately 100% of the usecase.

The only case I've run into people wanting to use postgres on NFS, the NFS
server is a big filer from netapp or hitachi or whomever. And you're not
going to be able to run something like that on top of it.

There might be a use-case for the split that you mention, absolutely, but
it's not going to solve the people-who-want-NFS situation. You'd solve more
of that by having the middle layer speak "raw device" underneath and be
able to sit on top of things like iSCSI (yes, really).

-- 
 Magnus Hagander
 Me: https://www.hagander.net/ <http://www.hagander.net/>
 Work: https://www.redpill-linpro.com/ <http://www.redpill-linpro.com/>

Reply via email to