[comp.databases] Ingres and NFS

dyer@spdcc.COM (Steve Dyer) (10/30/90)

I'm sorry this question is on such a primitive level, but
it reflects the primitive nature of the information which
has percolated back to me, none of which I've heard told by
anyone who might really know what is going on.  (I also don't
read comp.databases regularly, so I don't know if this has been
discussed before.)

I've heard that Ingres rel 6 "doesn't work" on NFS.  I'd like
to get a better restatement or a refutation of the problem. 

I'm not intimately familiar with the innards of Ingres,
but I would assume that this might refer to the need for
a local raw device to hold the log file.  Also, too, it would
seem obvious that two Ingres instances running on different
machines but on the same database thru NFS won't work (at least
without lots of external support added into the Ingres code for
serialization and coordination.)  But it isn't obvious to me
that just having the databases placed in a directory on a NFS
mounted filesystem managed by a single Ingres instance would
not work, as long as you has a local raw device for the log.
(Yes, there are issues of speed.  I'm discounting that for now...)
 
Can anyone who might know about this or have tried it comment?
Thanks.

-- 
Steve Dyer
dyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer
dyer@arktouros.mit.edu, dyer@hstbme.mit.edu

robinson@durham.med.unc.edu (Gerard A. Robinson) (10/30/90)

In article <4691@spdcc.SPDCC.COM> dyer@ursa-major.spdcc.com (Steve Dyer) writes:
>
>I've heard that Ingres rel 6 "doesn't work" on NFS.  I'd like
>to get a better restatement or a refutation of the problem. 
>
The most likely answer to this is that INGRES version 6.0-6.2 had no
provisions for supporting diskless clients sharing an INGRES directory tree.
There was an internal document which one could obtain that described how to
cobble together an installation, which worked, but was tedious.  Version 6.3
(for Suns at least) provides an additional directory under II_SYSTEM, the
admin directory.  Under 'admin' there is a directory for each host sharing
the distribution.  This directory contains the files for global INGRES
environment variables and INGRES/Net startup options.  The installation
assumes (correctly) that no DBMS servers will be running.  This makes the
installation much easier.  While there are still no provisions for sharing
the INGRES/Net authorization and control files, it is much nicer than in
6.2.

Your supposition that an NFS mounted directory can be a valid area for 
database storage for a single installation, is correct, at least in
practice.  It is probably not a 'supported' configuration, however.

Gerard Robinson

kbittner@oracle.uucp (Kurt Bittner) (10/30/90)

In article <4691@spdcc.SPDCC.COM> dyer@ursa-major.spdcc.com (Steve Dyer) writes:
>
>I've heard that Ingres rel 6 "doesn't work" on NFS.  I'd like
>to get a better restatement or a refutation of the problem. 
>

I'm certainly not an expert on Ingres, but there is a general problem with NFS
that affects all DBMS's running under it:  NFS is stateless.  This means that in
the event of a system or network crash, NFS doesn't know enough information 
about what was going on at the time of the crash to do anything like a
transaction recovery or rollback.  As a result, a database running on NFS would
have a high likelihood of corruption in the event of a crash. 

In general, I wouldn't be real excited about someone using NFS for a database
application even if it is technically possible.  Most database vendors now
provide the ability to use client-server software to achieve distrubuted access
to data that go beyond NFS in their capabilities (at least as far as the
DBMS app is concerned).  This is not to say, however, that you can't run other
apps on the same machine using NFS, just don't use it for the DBMS.

---
"My opinions are solely my own and do not reflect those of my employer."

daveb@ingres.com (When a problem comes along . . . you must whip it) (10/31/90)

In article <1474@beguine.UUCP> robinson@uncmed.med.unc.edu (Gerard A. Robinson) writes:
>In article <4691@spdcc.SPDCC.COM> dyer@ursa-major.spdcc.com (Steve Dyer) writes:
>>
>>I've heard that Ingres rel 6 "doesn't work" on NFS.  I'd like
>>to get a better restatement or a refutation of the problem. 
>>
>Your supposition that an NFS mounted directory can be a valid area for 
>database storage for a single installation, is correct, at least in
>practice.  It is probably not a 'supported' configuration, however.

We don't support NFS data directories because NFS doesn't work reliably
enough.  Existing NFS implementations have some problems that prevent us
from guaranteeing transaction recoverability and integrity in some
circumstances.

One particular problem is that when a disk gets full, NFS prevents a
process from writing back in the middle of a file.  This makes it hard
to back out a transaction that was extending a table.  This may not be
in the NFS protocol, but it is in all the existing implementations we've
checked.

In most cases you really don't want to have your data on the NFS disk
anyway. You should be running the DBMS on the machine with the physical
disk and using INGRES/NET from the clients to get to that server.  It's
a lot lighter load on the network.

-dB
--
"VMS is a text-only adventure game. If you win you can use unix." - w.davidson
David Brower: {amdahl, cpsc6a, mtxinu, sun}!rtech!daveb daveb@ingres.com

mao@eden.Berkeley.EDU (Mike Olson) (10/31/90)

In <1990Oct30.151205.5406@oracle.com>, kbittner@oracle.uucp (Kurt Bittner)
writes:

> In article <4691@spdcc.SPDCC.COM> dyer@ursa-major.spdcc.com (Steve Dyer)
> writes:
> :
> :I've heard that Ingres rel 6 "doesn't work" on NFS.  ...
> 
> I'm certainly not an expert on Ingres, but there is a general problem
> with NFS that affects all DBMS's running under it:  NFS is stateless.
> This means that in the event of a system or network crash, NFS doesn't
> know enough information about what was going on at the time of the crash
> to do anything like a transaction recovery or rollback.  As a result,
> a database running on NFS would have a high likelihood of corruption
> in the event of a crash. 

i don't understand your problem statement.  the statelessness of NFS
doesn't propogate upwards.  that is, the DBMS is responsible for recovery
and rollback, not the file system, and the DBMS is certainly capable of
recording sufficient state to do either.  network latency makes log
writes expensive, but that isn't a priori a barrier to using a network
file system.

what DBMS implementors *really* want to do is rip the unix file system
abstraction out altogether and replace it with a system that does ordered
writes in accordance with some program-specified dependency graph.  since
that's not possible, they wind up doing gymnastics to guarantee atomicity
of transactions.  those gymnastics in principle should have the same effect
whether the disk is local or remote.

					mike olson
					postgres research group
					uc berkeley
					mao@postgres.berkeley.edu

mh@roger.imsd.contel.com (Mike Hoegeman) (10/31/90)

 In article <1990Oct30.151205.5406@oracle.com> kbittner@oracle.UUCP (Kurt Bittner) writes:
 >In article <4691@spdcc.SPDCC.COM> dyer@ursa-major.spdcc.com (Steve Dyer) writes:
 >>I've heard that Ingres rel 6 "doesn't work" on NFS.  I'd like
 >>to get a better restatement or a refutation of the problem. 

does'nt work is way too vague, but see the stuff below...

 >I'm certainly not an expert on Ingres, but there is a general problem with NFS
 >that affects all DBMS's running under it: NFS is stateless. 

Yes, NFS is stateless, but what does this have to do with the statement below ??
 
 >This means that in
 >the event of a system or network crash, NFS doesn't know enough information 
 >about what was going on at the time of the crash to do anything like a
 >transaction recovery or rollback. 

umm... The database itself usually does transaction recovery and
rollbacks. NFS has nothing to do with it, NFS just reads and write disk
blocks basically.

 >As a result, a database running on NFS would
 >have a high likelihood of corruption in the event of a crash. 

This is a bogus statement.

I used to use oracle on a machine which had it's database files on a
another machine (which had extra disk space but no oracle software) via
an NFS hard mount. I *never* had any problem with it and the nfs server
used to go up and down all the time unexpectedly (the power in the
building was pretty bad). When the server goes belly up, oracle just
blocks until it the server comes back up. if the client w/ oracle got
rebooted is has the same recovery abilites as if it was'nt using an NFS
file system.

 >
 >In general, I wouldn't be real excited about someone using NFS for a database
 >application even if it is technically possible.  Most database vendors now
 >provide the ability to use client-server software to achieve distrubuted access
 >to data that go beyond NFS in their capabilities (at least as far as the
 >DBMS app is concerned).  This is not to say, however, that you can't run other
 >apps on the same machine using NFS, just don't use it for the DBMS.

Well, i would'nt heartily recommend using NFS for databases either. But
in the case of oracle and probably most other db's that don't use a raw
filesystem in the context is described above it's not terribly
dangerous either.

Actually a funny thing about my weird oracle/NFS setup was that it ran
*faster* than when i had the files locally oracle machine because of
biod (read ahead deamons). (i was doing mostly db reads).

sergio@ingres.com (Sergio Aponte) (11/01/90)

In article <1990Oct30.151205.5406@oracle.com> kbittner@oracle.UUCP (Kurt Bittner) writes:
>In article <4691@spdcc.SPDCC.COM> dyer@ursa-major.spdcc.com (Steve Dyer) writes:
>>
>>I've heard that Ingres rel 6 "doesn't work" on NFS.  I'd like
>>to get a better restatement or a refutation of the problem. 
>>
>
	The suported use of NFS is for client installations to run clients
	(or front ends, as they used to be called). You install Ingres on the
	server node, and NFS mount to a client node, and you run the clients
	processes on it, not the DBMS. The DBMS should run on the server node,
	and you should use Ingres/NET to access the DBs. That way, you use the
	CPU on the client to run the client processes, and keep consistency on
	your DB by using the server DBMS on your server node.

	In this scenario, NFS saves you from having many installations of Ingres
	eating up disk space. Good use for it.

/* As before, this is my own contribution and in no way an official statement
   from ASK Computers, Ingres Division */
--
-------------------------------------------------------------------------------
| Internet: sergio@squid.ingres.com      Sergio L. Aponte, MTS @ Ingres Corp. |
| UUCP    : {sun,mtxinu,pyramid,pacbell,hoptoad,amdahl}!ingres!squid!sergio   |
-------------------------------------------------------------------------------

henkp@ruuinf.cs.ruu.nl (Henk P. Penning) (11/02/90)

In article <1990Oct31.174509.14988@ingres.Ingres.COM> sergio@ingres.com (Sergio Aponte) writes:

> [ A description of how to use ingres on a client using NFS ]

  I would very much like to hear how to use ingres on a number of diskless
  HP 9000/300 7.0 HP/UX clients served by a HP 9000/300 cluster server.

  As is customary with HP Diskless, such clients are not served by NFS
  but 'see' the very same file-system that the server does.

  Ingres claims to have a version for HP 9000/300 HP/UX 7.0,
  but are Diskless clients supported ?

  Did anyone try to make this work ?

  				===  HenkP  ===

-- 
Henk P. Penning, Dept of Computer Science, Utrecht University.
Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands.
Telephone: +31-30-534106
e-mail   : henkp@cs.ruu.nl (uucp to hp4nl!ruuinf!henkp)