On 18 April 2018 at 05:19, Bruce Momjian <br...@momjian.us> wrote: > On Tue, Apr 10, 2018 at 05:54:40PM +0100, Greg Stark wrote: >> On 10 April 2018 at 02:59, Craig Ringer <cr...@2ndquadrant.com> wrote: >> >> > Nitpick: In most cases the kernel reserves disk space immediately, >> > before returning from write(). NFS seems to be the main exception >> > here. >> >> I'm kind of puzzled by this. Surely NFS servers store the data in the >> filesystem using write(2) or the in-kernel equivalent? So if the >> server is backed by a filesystem where write(2) preallocates space >> surely the NFS server must behave as if it'spreallocating as well? I >> would expect NFS to provide basically the same set of possible >> failures as the underlying filesystem (as long as you don't enable >> nosync of course). > > I don't think the write is _sent_ to the NFS at the time of the write, > so while the NFS side would reserve the space, it might get the write > request until after we return write success to the process.
It should be sent if you're using sync mode. >From my reading of the docs, if you're using async mode you're already open to so many potential corruptions you might as well not bother. I need to look into this more re NFS and expand the tests I have to cover that properly. -- Craig Ringer http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services