Re: Patch to improve reliability of postgresql on linux nfs
Kenneth Marshall <ktm@rice.edu>
From: "ktm@rice.edu" <ktm@rice.edu>
To: George Barnett <gbarnett@atlassian.com>
Cc: Florian Pflug <fgp@phlo.org>, Bernd Helmle <mailings@oopsware.de>, Tom Lane <tgl@sss.pgh.pa.us>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2011-09-12T12:54:52Z
Lists: pgsql-hackers
On Mon, Sep 12, 2011 at 04:46:53PM +1000, George Barnett wrote: > On 12/09/2011, at 3:59 PM, Florian Pflug wrote: > > > If you really meant to say "intr" there (and not "nointr") then that probably explains the partial writes. > > > > Still, I agree with Noah and Kevin that we ought to deal more gracefully with this, i.e. resubmit after a partial read() or write(). AFAICS there's nothing to be gained by not doing that, and the increase in code complexity should be negligible. If we do that, however, I believe we might as well handle EINTR correctly, even if SA_RESTART should prevent us from ever seeing that. > > > Hi Florian, > > You are indeed correct. Setting nointr also resolves my issue. I could swear I checked this, but obviously not. > > It does still concern me that pgsql did not deal with this as gracefully as other software. I hope the list will consider a patch to resolve that. > > Thanks in advance, > > George Hi George, Many, many, many other software packages expect I/O usage to be the same on an NFS volume and a local disk volume, including Oracle. Coding every application, or more likely mis-coding, to handle this gives every application another chance to get it wrong. If the OS does this, when it gets it right, all of the apps get it right. I think you should be surprised when other software actually deals with broken I/O semantics gracefully rather than concerned when one of a pantheon of programs does not. My two cents. Regards, Ken