Re: [nfsv4] Review of 3530bis "Multi-Server Namespace" Chapter

Thomas Haynes <thomas@netapp.com> Wed, 13 October 2010 05:32 UTC

Return-Path: <Thomas.Haynes@netapp.com>
X-Original-To: nfsv4@core3.amsl.com
Delivered-To: nfsv4@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 3AE2F3A6B87 for <nfsv4@core3.amsl.com>; Tue, 12 Oct 2010 22:32:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.53
X-Spam-Level:
X-Spam-Status: No, score=-6.53 tagged_above=-999 required=5 tests=[AWL=0.068, BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DyWtCtLANIvY for <nfsv4@core3.amsl.com>; Tue, 12 Oct 2010 22:32:46 -0700 (PDT)
Received: from mx2.netapp.com (mx2.netapp.com [216.240.18.37]) by core3.amsl.com (Postfix) with ESMTP id 20F343A68B3 for <nfsv4@ietf.org>; Tue, 12 Oct 2010 22:32:46 -0700 (PDT)
X-IronPort-AV: E=Sophos; i="4.57,323,1283756400"; d="scan'208,217"; a="466701242"
Received: from smtp1.corp.netapp.com ([10.57.156.124]) by mx2-out.netapp.com with ESMTP; 12 Oct 2010 22:34:02 -0700
Received: from sacrsexc2-prd.hq.netapp.com (sacrsexc2-prd.hq.netapp.com [10.99.115.28]) by smtp1.corp.netapp.com (8.13.1/8.13.1/NTAP-1.6) with ESMTP id o9D5Y1Mh014033; Tue, 12 Oct 2010 22:34:02 -0700 (PDT)
Received: from rtprsexc1-prd.hq.netapp.com ([10.100.161.114]) by sacrsexc2-prd.hq.netapp.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 12 Oct 2010 22:34:02 -0700
Received: from RTPMVEXC1-PRD.hq.netapp.com ([10.100.161.111]) by rtprsexc1-prd.hq.netapp.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 13 Oct 2010 01:34:00 -0400
Received: from tutko-lxp.hq.netapp.com ([10.58.60.245]) by RTPMVEXC1-PRD.hq.netapp.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 13 Oct 2010 01:33:58 -0400
Mime-Version: 1.0 (Apple Message framework v1081)
Content-Type: multipart/alternative; boundary="Apple-Mail-20--596808029"
From: Thomas Haynes <thomas@netapp.com>
In-Reply-To: <alpine.LFD.2.00.1009221101060.21841@jlentini-linux.nane.netapp.com>
Date: Wed, 13 Oct 2010 00:33:57 -0500
Message-Id: <9F6B463A-0CA8-4C34-A7C2-0BF108745B94@netapp.com>
References: <alpine.LFD.2.00.1009221101060.21841@jlentini-linux.nane.netapp.com>
To: James Lentini <jlentini@netapp.com>, Robert Thurlow <Robert.Thurlow@oracle.com>, david.noveck@emc.com
X-Mailer: Apple Mail (2.1081)
X-OriginalArrivalTime: 13 Oct 2010 05:33:58.0956 (UTC) FILETIME=[3C4EC6C0:01CB6A98]
Cc: nfsv4@ietf.org
Subject: Re: [nfsv4] Review of 3530bis "Multi-Server Namespace" Chapter
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/nfsv4>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 13 Oct 2010 05:32:50 -0000

Rob and Dave,

There is a question for each of you below.


On Sep 22, 2010, at 6:31 PM, James Lentini wrote:

> 
> At the last 3530bis meeting, I volunteered to review the "Muli-Server 
> Namespace" chapter. Below are my comments on the version in 
> draft-ietf-nfsv4-rfc3530bis-04.
> 
> RFC 5661 added a significant amount of text in this area, and I think 
> the strategy of pulling this text back into 3530bis is the right one. 
> Overall, it looks pretty good. Here are my detailed comments on the 
> text:
> 
> One reference to v4.1's change_policy attribute slipped into Chapter 
> 7. Since change_policy isn't supported in v4, the reference to it 
> should be removed from Section 7.6 "Additional Client-side 
> Considerations" on page 83.
> 
> I have a few comments related to the file system equivalence classes 
> in 7.7.
> 
> Section 7.7.5 introduces the concept a change equivalence class. 
> Later, in Section 7.9.1, the text states that file system instances 
> should always be considered to be of different change classes for v4. 
> I'd consider removing section 7.7.5 since it isn't possible to 
> communicate that file system instances are in an equivalent change 
> class.


Agreed


> 
> For the write-verifier class in Section 7.7.7, Section 7.9.1 
> recommends assuming file system instances are of a different class in 
> the case of a failover. Is there a recommendation for the 
> NFS4ERR_MOVED case? I realize that the recommendations in 7.9.1 are 
> taken almost verbatim from RFC 5661, but it seems that there is a case 
> missing here.
> 


Rob, any comment here?



> No mention is made of the readdir class after Section 7.7.8. I 
> recommend that either (A) Section 7.9.1 should suggest a way to infer 
> the readdir class (it would be safest just to assume file system 
> instances were not in the same readdir class) or (B) remove section 
> 7.7.8 and the readdir equivalence class concept (just as RFC 5661's 
> "Simultaneous Use and Transparent Transitions" section describing the 
> simultaneous-use class was removed in the 3530bis version).


I'd go with A.

Would you have the same comment for 5661?


> 
> One minor note on the typographical representation of the equivalence 
> class identifiers. Throughout Chapter 7 equivalence class foo is 
> represented as "_foo_" where the '_' characters are meant to denote an 
> emphasis. Early drafts of v4.1 used this notation, but it was dropped 
> in the published version of RFC 5661. I'd suggest removing the XML 
> emphasis tags ("<spanx style='emph'>foo</spanx>") to match RFC 5661.


Yes, done.



> 
> In Section 7.9's definition of a struct fs_location4, the server<> 
> field's type was changed from utf8str_cis to utf8val_must. It seems 
> that the original versions case-insensitive behavior is no longer 
> being recorded. I suggest noting the case-insensitivity in the text 
> description of an fs_location4 or creating a new type 
> (utf8cis_val_must?).


I think this is because of Dave's i18n changes, i.e., it crept in between
bis-03 and bis-04.

Dave, can you comment here?


> 
> Throughout Chapter 7, I noticed a few minor typos that I remembered 
> sending corrections for in the run up to RFC 5661. Comparing a diff of 
> Chapter 11 in RFC 5661 and Chapter 7 in the 3530bis draft leads me to 
> conclude that the text in 3530bis was not taken from the final version 
> of RFC 5661. As a results, it looks like some fixes from the WG and 
> RFC Editor are missing in the 3530bis version. In the diff below, I've 
> pulled the missing corrections into the 3530bis git repo's XML source 
> file for Chapter 7. These changes are mostly just punctuation, missing 
> words, etc.
> 


James,

I can't stress how awed I feel at the amount of work you had to have 
done here. <bow />




> 
> @@ -1176,19 +1187,19 @@
>           since we have the fsid of the latter and it is that of the
>           pseudo-fs, which presumably cannot move.  However, in other
>           examples, we might not have this kind of information to rely
> -          on (e.g. /this/is/the might be a non-pseudo file system
> +          on (e.g., /this/is/the might be a non-pseudo file system
>           separate from /this/is/the/path), so we need to have
> -          another reliable source information on the boundary of the file system
> -          which is moved.  If, for example, the file system "/this/is"
> -          had moved we would have a case of migration rather than
> -          referral and once the boundaries of the migrated file system
> +          other reliable source information on the boundary of the file system
> +          that is moved.  If, for example, the file system /this/is
> +          had moved, we would have a case of migration rather than
> +          referral, and once the boundaries of the migrated file system
>           was clear we could fetch fs_locations.
>         </t>
>         <t hangText='- '>
>           We are fetching fs_locations because the fact that we got an
> -          NFS4ERR_MOVED at this point means that it most likely that
> +          NFS4ERR_MOVED at this point means that it is most likely that
>           this is a referral and we need the destination.  Even if it is
> -          the case that "/this/is/the" is a file system which has
> +          the case that /this/is/the is a file system thathatt has


that instead of thathatt ?


>           migrated, we will still need the location information for that
>           file system.
>         </t>
> 





> @@ -1242,14 +1253,14 @@
>         <t>
>           LOOKUP "the"
>         </t>
> -        <t>
> +        <t
>           READDIR (fsid, size, time_modify, mounted_on_fileid)


I did not understand the above.


> 
>      Note that: there is no requirement that the number
>      of components in each rootpath be the same; there
>      is no relation between the number of components in
> -     rootpath or fs_root; and the none of the components
> +     rootpath or fs_root, and none of the components
>      in each rootpath and fs_root have to be the same. In
>      the above example, we could have had a third element
> -     in the locations array, with server equal to "servC",
> +     in the locations array, with server equal to "servC"
>      and rootpath equal to "/I/II", and a fourth element in
> -     locations with server equal to "servD", and rootpath
> +     locations with server equal to "servD" and rootpath
>      equal to "/aleph/beth/gimel/daleth/he".
>    </t>


I found it odd that there were still some double-quoted
servers and paths. I understand they were variables,
but still.


> 
>     <section anchor="fs_locations_trans" title="Inferring Transition Modes">
> @@ -1537,7 +1548,7 @@
>        </t> 
>        <t>
>          All listed file system instances should be considered as of the 
> -         same <spanx style='emph'>fileid</spanx> class, if and only if, the 
> +         same <spanx style='emph'>fileid</spanx> class if and only if the 
>          fh_expire_type attribute indicates persistent filehandles and 
>          does not include the FH4_VOL_MIGRATION
>          bit.  Note that in the case of referral, fileid issues do


In 5661, this is page 259 and we have the fix in one paragraph and not
the other:

o  All listed file system instances should be considered as of the
same handle class, if and only if, the current fh_expire_type
attribute does not include the FH4_VOL_MIGRATION bit.  Note that
in the case of referral, filehandle issues do not apply since there
can be no filehandles known within the current file system, nor is
there any access to the fh_expire_type attribute on the referring
(absent) file system.

o  All listed file system instances should be considered as of the
same fileid class if and only if the fh_expire_type attribute
indicates persistent filehandles and does not include the
FH4_VOL_MIGRATION bit.  Note that in the case of referral, fileid
issues do not apply since there can be no fileids known within the
referring (absent) file system, nor is there any access to the
fh_expire_type attribute.

I've made it consistent.