Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 5 Nov 2011 20:03:44 -0700
From:      Xin LI <delphij@gmail.com>
To:        Rick Macklem <rmacklem@uoguelph.ca>
Cc:        freebsd-fs@freebsd.org, Josh Paetzel <jpaetzel@freebsd.org>, zkirsch@freebsd.org
Subject:   Re: [RFC] Should vfs.nfsrv.async be implemented for new NFS server?
Message-ID:  <CAGMYy3tT3vmqGq6ju7GVpA1WKZ=VdFSbvZH1FAezaxtNUMDnvQ@mail.gmail.com>
In-Reply-To: <1558351773.1229453.1320542285788.JavaMail.root@erie.cs.uoguelph.ca>
References:  <1558351773.1229453.1320542285788.JavaMail.root@erie.cs.uoguelph.ca>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi, Rick,

On Sat, Nov 5, 2011 at 6:18 PM, Rick Macklem <rmacklem@uoguelph.ca> wrote:
> Hi,
>
> Josh Paetzel pointed out that vfs.nfsrv.async doesn't exist
> for the new NFS server.
>
> I don't think I had spotted this before, but when I looked I
> saw that, when vfs.nfsrv.async is set non-zero in the old server,
> it returns FILESYNC (which means the write has been committed to
> non-volatile storage) even when it hasn't actually done that.
>
> This can improve performance, but has some negative implications:
> - If the server crashes before the write is committed to
> =C2=A0non-volatile storage, the file modification will be lost.
> =C2=A0(When a server replies UNSTABLE to a write, the client holds
> =C2=A0 onto the data in its cache and does the write again if the
> =C2=A0 server crashes/reboots before the client does a Commit RPC
> =C2=A0 for the file. However, a reply of FILESYNC tells the client
> =C2=A0 it can forget about the write, because it is done.)
> - Because of the above, replying FILESYNC when the data is not
> =C2=A0yet committed to non-volatile (also referred to as stable)
> =C2=A0storage, this is a violation of RFC1813.
>
> I wouldn't want this to be the default, but am willing to
> patch head based on the "backwards compatibility" argument.
> My concern with these types of patches is that some people
> will enable them without realizing the risk of data loss
> that they introduce.
>
> So, how do others feel with respect to whether or not this
> patch should be committed to head?

I think the default of old NFS server was async=3D0?  In general I'd
prefer seeing this as an option but disabled by default, so
administrators can override the option.  Having async=3D1 by default
doesn't seem to be a good idea in my opinion.

Another thought is the async flag should be a per-mountpoint flag
rather than a global flag, but that might be over-complicating things
so just my $0.02.

Cheers,
--=20
Xin LI <delphij@delphij.net> https://www.delphij.net/
FreeBSD - The Power to Serve! Live free or die



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGMYy3tT3vmqGq6ju7GVpA1WKZ=VdFSbvZH1FAezaxtNUMDnvQ>