Re: [nfsv4] draft-eisler-nfsv4-enterprise-apps-00.txt

Chuck Lever <> Thu, 14 October 2010 16:20 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 7779E3A699F for <>; Thu, 14 Oct 2010 09:20:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -5.064
X-Spam-Status: No, score=-5.064 tagged_above=-999 required=5 tests=[AWL=1.534, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4, UNPARSEABLE_RELAY=0.001]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id kkI8Z5kzDcwK for <>; Thu, 14 Oct 2010 09:20:41 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 2CFF93A6A8B for <>; Thu, 14 Oct 2010 09:20:41 -0700 (PDT)
Received: from ( []) by (Switch-3.4.2/Switch-3.4.2) with ESMTP id o9EGLqpI007917 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 14 Oct 2010 16:21:54 GMT
Received: from ( []) by (Switch-3.4.2/Switch-3.4.1) with ESMTP id o9EF0Fjj004531; Thu, 14 Oct 2010 16:21:52 GMT
Received: from by with ESMTP id 684375801287073297; Thu, 14 Oct 2010 09:21:37 -0700
Received: from (/ by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 14 Oct 2010 09:21:37 -0700
Mime-Version: 1.0 (Apple Message framework v1081)
Content-Type: text/plain; charset="us-ascii"
From: Chuck Lever <>
In-Reply-To: <>
Date: Thu, 14 Oct 2010 12:21:34 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <> <>
To: "J. Bruce Fields" <>
X-Mailer: Apple Mail (2.1081)
Subject: Re: [nfsv4] draft-eisler-nfsv4-enterprise-apps-00.txt
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: NFSv4 Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 14 Oct 2010 16:20:42 -0000

On Oct 14, 2010, at 12:09 PM, J. Bruce Fields wrote:

> On Wed, Oct 13, 2010 at 03:40:21PM -0700, Mike Eisler wrote:
>> (apologies if this a dup)
>> Margaret Susairaj of Oracle and I (of NetApp) posted this
>> internet-draft, which proposes extensions to NFSv4 for
>> better support of enterprise applications, such
>> as databases.
>> I have requested time at the IETF meeting in Beijing to discuss this.
> Miscellaneous, possibly dumb questions:
> 	- Can you define "enterprise application" for the purpose of
> 	  this draft?
> 		- I'm confused by the motivation.  So an application is
> 		  trying to detect whether an unused section of a file
> 		  has been corrupted?  Does it even care about
> 		  corruption of regions where it hasn't stored any data?
> 		  What does data corruption in an unallocated region
> 		  even mean?  If you care about data corruption, don't
> 		  you need additional application-level mechanisms (say,
> 		  checksums of some kind) that would render INITIALIZE
> 		  unnecessary?  I'm sure I'm just missing something;
> 		  pointers to literature welcomed.

The goal is to look for misplaced writes by applications.  In other words, it's a way to detect application software bugs, or inappropriate accesses to files by other applications.  On regular disks, you might also look for drive firmware bugs that cause a drive to write data into the wrong sectors.

> 		- Has anyone talked to e.g. linux filesystem people to
> 		  figure out support for interfaces necessary for an
> 		  application to perform INITIALIZE from a client,
> 		  and/or to let an nfs server perform it on a
> 		  filesystem?

I think these are not necessarily intended for a POSIX-style file system API with a VFS layer.  A VFS client implementation might implement these operations via ioctl.  But... it might be appropriate for the server to report to clients that it cannot support these features.

> 	- ADVISE ops: the types look almost like those in posix_fadvise,
> 	  but not exactly; out of curiosity, why the differences?
> 	- SESSION_CTL: why is managing an additional sessions more
> 	  complicated than implementing SESSION_CTL?

And I wonder why the client can't simply terminate a session and negotiate a new one with the new parameters.  Increasing the size of the session's slot table while there are still slots in use might be kind of interesting to implement.