Re: [nfsv4] Directory delegations, take 2

David Robinson <David.Robinson@sun.com> Tue, 28 October 2003 04:15 UTC

Received: from optimus.ietf.org (ietf.org [132.151.1.19] (may be forged)) by ietf.org (8.9.1a/8.9.1a) with ESMTP id XAA06972 for <nfsv4-archive@odin.ietf.org>; Mon, 27 Oct 2003 23:15:26 -0500 (EST)
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1AELG7-00043m-Jd for nfsv4-archive@odin.ietf.org; Mon, 27 Oct 2003 23:15:07 -0500
Received: (from exim@localhost) by www1.ietf.org (8.12.8/8.12.8/Submit) id h9S4F7Gk015603 for nfsv4-archive@odin.ietf.org; Mon, 27 Oct 2003 23:15:07 -0500
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1AELG7-00043a-9E for nfsv4-web-archive@optimus.ietf.org; Mon, 27 Oct 2003 23:15:07 -0500
Received: from ietf-mx (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id XAA06964 for <nfsv4-web-archive@ietf.org>; Mon, 27 Oct 2003 23:14:55 -0500 (EST)
Received: from ietf-mx ([132.151.6.1]) by ietf-mx with esmtp (Exim 4.12) id 1AELG5-0005Nu-00 for nfsv4-web-archive@ietf.org; Mon, 27 Oct 2003 23:15:05 -0500
Received: from ietf.org ([132.151.1.19] helo=optimus.ietf.org) by ietf-mx with esmtp (Exim 4.12) id 1AELG4-0005Nr-00 for nfsv4-web-archive@ietf.org; Mon, 27 Oct 2003 23:15:04 -0500
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1AELG1-00042c-Nu; Mon, 27 Oct 2003 23:15:01 -0500
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1AELF7-0003zV-4w for nfsv4@optimus.ietf.org; Mon, 27 Oct 2003 23:14:05 -0500
Received: from ietf-mx (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id XAA06944 for <nfsv4@ietf.org>; Mon, 27 Oct 2003 23:13:53 -0500 (EST)
Received: from ietf-mx ([132.151.6.1]) by ietf-mx with esmtp (Exim 4.12) id 1AELF5-0005Lt-00 for nfsv4@ietf.org; Mon, 27 Oct 2003 23:14:03 -0500
Received: from nwkea-mail-1.sun.com ([192.18.42.13]) by ietf-mx with esmtp (Exim 4.12) id 1AELF4-0005Ko-00 for nfsv4@ietf.org; Mon, 27 Oct 2003 23:14:02 -0500
Received: from phys-aus08-1 ([129.153.131.88]) by nwkea-mail-1.sun.com (8.12.10/8.12.9) with ESMTP id h9S4DWUP018523 for <nfsv4@ietf.org>; Mon, 27 Oct 2003 20:13:33 -0800 (PST)
Received: from sun.com (vpn-129-147-152-41.Central.Sun.COM [129.147.152.41]) by aus08-mail1.central.sun.com (iPlanet Messaging Server 5.2 HotFix 1.10 (built Jan 23 2003)) with ESMTP id <0HNG002HP92KB0@aus08-mail1.central.sun.com> for nfsv4@ietf.org; Mon, 27 Oct 2003 22:13:32 -0600 (CST)
From: David Robinson <David.Robinson@sun.com>
Subject: Re: [nfsv4] Directory delegations, take 2
In-reply-to: <C8CF60CFC4D8A74E9945E32CF096548A6D358E@silver.nane.netapp.com>
To: nfsv4@ietf.org
Message-id: <3F9DECE9.7030405@sun.com>
MIME-version: 1.0
Content-type: text/plain; format="flowed"; charset="us-ascii"
Content-transfer-encoding: 7bit
X-Accept-Language: en-us, en
User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.5) Gecko/20031007
References: <C8CF60CFC4D8A74E9945E32CF096548A6D358E@silver.nane.netapp.com>
Content-Transfer-Encoding: 7bit
Sender: nfsv4-admin@ietf.org
Errors-To: nfsv4-admin@ietf.org
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.0.12
Precedence: bulk
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
List-Archive: <https://www1.ietf.org/mail-archive/working-groups/nfsv4/>
X-Original-Date: Mon, 27 Oct 2003 22:13:29 -0600
Date: Mon, 27 Oct 2003 22:13:29 -0600
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 7bit

[Catching up on last week's thread...]

Directory delegations in this round should be read-only.

Why allow no seatbelts? My point was that with a delegation
a client knows the state of its consistency, when asking
for a delegation but ignoring the callback it knows when
its cache is consistent and when it won't be. Without a delegation
it has no way of knowing. Bottom line, this becomes a client
quality of implementation issue, not a protocol issue so we can
ignore it as a rant on my part.

In recall versus change notification, with a read-only delegation
a recall operation in the sense of a delegation is just a notification
that the directory has changed as there is no data that will
ever need to be written back, at worst it is just a cache flush
notification. Anothedr way of putting it is that what we have
been calling a "recall" is just a change notification on all
entries. As one approach, we could design this so that we
allow a change notification operation that takes a directory
and a list of cookies, one for each entry that changed.  Then
have the special zero cookie indicate all entries changed as
an optimized method.

Sync vs async, the issue is not timeliness, in both cases it is
hard to guarentee timeliness.  But as Dave pointed out, the
primary advantage of sync is in allowing ordering of operations.
We MUST have sync notifications, but it may be useful to have
on acquistion of a delegation the client specify if it wants
sync or async notifications.  Some clients may not be able to do
anything better with a sync notification so they may not want to
impose a burden, while others may need it for interesting applications.

Directory operations must be written through, there is no point in
requiring the client to re-read what it just wrote or for a
server to callback to the client that sent it the change, the client
knows the current state.

I understand the performance impact of not including the attributes
into the delegation.  My major concern is in the area of scaleability.
Currently in most Unix systems, data and metadata operations on a file
require no locks or interactions with any other file, it is highly
scaleable. Likewise naming operations only involve the directory
involved and do not require locks on component files.  Tying the two
could involve coordinating a large number of locks which will
negatively effect scalability.  If we keep attribute delegation
separate and allow per entry change notification, the impact of
a directory changing will be modest and the change of a file's
attributes would not ripple through other files.

	-David



_______________________________________________
nfsv4 mailing list
nfsv4@ietf.org
https://www1.ietf.org/mailman/listinfo/nfsv4