Subject: [nfsv4] IO_ADVISE4_RECENTLY_USED

From: "Mike Eisler" <[email-masked]>
Date: Wed, 28 Mar 2012 02:12:34 -0700

The latest NFSv4.2 i-d says,

12.8.7. Possible Additional Hint - IO_ADVISE4_RECENTLY_USED

   IO_ADVISE4_RECENTLY_USED  The client has recently accessed the byte
      range in its own cache.  This informs the server that the data in
      the byte range remains important to the client.  When the server
      reaches resource exhaustion, knowing which data is more important
      allows the server to make better choices about which data to, for
      example purge from a cache, or move to secondary storage.  It also
      informs the server which delegations are more important, since if
      delegations are working correctly, once delegated to a client, a
      server might never receive another I/O request for the file.

   A use case for this hint is that of the NFS client or application
   restart.  In the event of restart, the app's/client's cache will be
   cold and it will need to fill it from the server.  If the server is
   maintaining a list (LRU most likely) of byte ranges tagged with
   IO_ADVISE4_RECENTLY_USED, then the server could have stored the data
   in these ranges into a storage medium that is less expensive than
   DRAM, and faster than random access magnetic or optical media, such
   as flash.  This allows the end to end application to storage system
   to co-operate to meet a service level agreement/objective contracted
   to the end user by the IT provider.

   On the other side, this is effectively a hint regarding multi-level
   caching, and it may be more useful to specify a more formal multi-
   level caching system.

I was surprised that this hint was still on the fence; I thought it was in.

In any case, in the today's WG meeting, Fred Knight presented the pending
SCSI I/O hints stuff, which includes a "power cycle" hint, which precisely
matches the use case for IO_ADVISE4_RECENTLY_USED.

Therefore, I think we need to get IO_ADVISE4_RECENTLY_USED off the fence
and part of NFSv4.2. If people are hung up on the name, then call it
whatever people want. If IO_ADVISE4_POWER_CYCLE is preferred, whatever; as
was the case NFS3ERR_JUKEBOX, people found more uses for the feature that
went beyond the implications of the name.

-- 
Mike Eisler, Senior Technical Director, NetApp, 719 599 9026,
http://blogs.netapp.com/eislers_nfs_blog/

---

From: <[email-masked]>
Date: Wed, 28 Mar 2012 06:11:32 -0400

Mike,

I like the idea of changing the hint name to something similar to that being used for SCSI @ T10, but ...

... POWER_CYCLE would be wrong :-).  The latest and greatest T10 name for that hint is APPLICATION CLIENT INITIALIZATION PROXIMITY - see T10 proposal 11-436r5 ... BUT ...

... there will be at least an r6, so the current algorithm to locate the latest T10 hint proposal is:
	- Go to www.t10.org
	- Type 11-436 into the box next to Lookup doc: .
	- Resulting page will list the latest version
		(which is currently r5) with a link to the PDF.

Thanks,
--David

> -----Original Message-----
> From: [email-masked] [mailto:[email-masked]] On Behalf Of Mike Eisler
> Sent: Wednesday, March 28, 2012 5:13 AM
> To: [email-masked]
> Subject: [nfsv4] IO_ADVISE4_RECENTLY_USED
> 
> 
> _______________________________________________
> nfsv4 mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/nfsv4

---

From: "Mike Eisler" <[email-masked]>
Date: Wed, 28 Mar 2012 06:02:40 -0700

David,

Just to we don't explore limitations in existing rpcgen compilers,
IO_ADVISE4_INIT_PROXIMITY works for me. Indeed, the name is more precise
than "recently used" because given the use case, it is quite possible that
the desired byte ranges of the desired file have never been used at all,
for example, updated firmware for the client and/or its application.

BTW, "15 February 2012 T10/11-436 r5 Proposal"  still has places that use
"power cycle" as part of hint's name.

Thanks for the feedback.

On Wed, March 28, 2012 3:11 am, [email-masked] wrote:
> ... POWER_CYCLE would be wrong :-).  The latest and greatest T10 name for
> that hint is APPLICATION CLIENT INITIALIZATION PROXIMITY - see T10
> proposal 11-436r5 ... BUT ...
>