Re: [nfsv4] persistent sessions and compound atomicity
bfields@fieldses.org Wed, 09 December 2020 14:49 UTC
Return-Path: <bfields@fieldses.org>
X-Original-To: nfsv4@ietfa.amsl.com
Delivered-To: nfsv4@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 777923A0D94 for <nfsv4@ietfa.amsl.com>; Wed, 9 Dec 2020 06:49:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Level:
X-Spam-Status: No, score=-2.1 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=fieldses.org
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mBZifzJvqzTF for <nfsv4@ietfa.amsl.com>; Wed, 9 Dec 2020 06:49:29 -0800 (PST)
Received: from fieldses.org (fieldses.org [IPv6:2600:3c00:e000:2f7::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4D1E73A0D93 for <nfsv4@ietf.org>; Wed, 9 Dec 2020 06:49:29 -0800 (PST)
Received: by fieldses.org (Postfix, from userid 2815) id 98F616F4A; Wed, 9 Dec 2020 09:49:27 -0500 (EST)
DKIM-Filter: OpenDKIM Filter v2.11.0 fieldses.org 98F616F4A
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fieldses.org; s=default; t=1607525367; bh=cUWmJeJgS4+RRnH2eDmzxYxGI9rm81RVRGW0zOuh2g8=; h=Date:To:Cc:Subject:References:In-Reply-To:From:From; b=mV4IDLkuLbps7HVAajHvOABZnzxd/EDTPeX5t6GZ6UiMpm/+mtQKAf+vX7sE6ezCu lqsgvZxXH7P15tw6f4vpI7jUuXiIssaGi56XpGkYBzQKwrInyVHxJhHRNP0ssTn02L 04v8Mqnh78Zi+ec7ycOeUDh8JzctZ0YHS9prQAQ4=
Date: Wed, 09 Dec 2020 09:49:27 -0500
To: Tom Talpey <tom@talpey.com>
Cc: nfsv4@ietf.org
Message-ID: <20201209144927.GB23889@fieldses.org>
References: <20201209002639.GC16661@fieldses.org> <93d4e52e-23e6-cf5f-4b0f-50060f4c6151@talpey.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <93d4e52e-23e6-cf5f-4b0f-50060f4c6151@talpey.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
From: bfields@fieldses.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/ZqBVa8wsvbtxFZkox-q8FxlLmi4>
Subject: Re: [nfsv4] persistent sessions and compound atomicity
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/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, 09 Dec 2020 14:49:32 -0000
On Wed, Dec 09, 2020 at 08:55:03AM -0500, Tom Talpey wrote: > On 12/8/2020 7:26 PM, J. Bruce Fields wrote: > >I hadn't given much thought to this language in RFC 5661, and now that I > >do, it surprises me. If you have any pointers to discussion I forgot or > >overlooked, I'd be interested: > > > > https://tools.ietf.org/html/rfc5661#section-2.10.6.5 > > > > The execution of the sequence of operations (starting with > > SEQUENCE) and placement of its results in the persistent cache > > MUST be atomic. If a client retries a sequence of operations > > that was previously executed on the server, the only acceptable > > outcomes are either the original cached reply or an indication > > that the client ID or session has been lost (indicating a > > catastrophic loss of the reply cache or a session that has been > > deleted because the client failed to use the session for an > > extended period of time). > > > > A server could fail and restart in the middle of a COMPOUND > > procedure that contains one or more non-idempotent or > > idempotent-but-modifying operations. This creates an even higher > > challenge for atomic execution and placement of results in the > > reply cache.... > > > >And I don't see why that MUST is necessary. Why can't the server, on > >encountering a nonidempotent operation, store partial compound results > >in its reply cache together with whatever compound state (current > >filehandles, etc.) it needs to resume processing on restart? > > I think the atomicity is referring to the building of the response, > not the execution of the COMPOUND itself (which would be impossible, > generally). > > The main issue it's protecting is the server's response never changing. > The operation must always have one result. If the client were to replay > a request while the server is still executing the compound, and get a > partial answer, followed by the final answer, that would be very bad > indeed. Got it, thanks. > >Or, why not allow it to return the result so far and then DEADSESSION on > >any following operation? > > "So far"? That only makes sense if the compound were totally complete. > At which point, there is one and only one result. Hm, I'm not sure what you mean. The server comes up from a crash and determines that it was in the middle of processing a compound, and that the last thing it does was succesfully execute a nonidempotent op in the middle of the compound. it has to decide what it's going to use as the final reply for that compound. --b. > > Tom. > > >One problem is that a create operation followed by a GETATTR really > >shouldn't fail in between the two--that'd make it hard to implement > >O_CREAT, for example. > > > >But it seems like a server should be able to avoid that without making > >every sa_cachethis operation completely atomic. > > > >Am I missing some reason for that MUST? > > > >--b. > > > >_______________________________________________ > >nfsv4 mailing list > >nfsv4@ietf.org > >https://www.ietf.org/mailman/listinfo/nfsv4 > > > > _______________________________________________ > nfsv4 mailing list > nfsv4@ietf.org > https://www.ietf.org/mailman/listinfo/nfsv4
- [nfsv4] persistent sessions and compound atomicity bfields
- Re: [nfsv4] persistent sessions and compound atom… David Noveck
- Re: [nfsv4] persistent sessions and compound atom… Tom Talpey
- Re: [nfsv4] persistent sessions and compound atom… J. Bruce Fields
- Re: [nfsv4] persistent sessions and compound atom… bfields
- Re: [nfsv4] persistent sessions and compound atom… Tom Talpey
- Re: [nfsv4] persistent sessions and compound atom… Rick Macklem
- Re: [nfsv4] persistent sessions and compound atom… J. Bruce Fields
- Re: [nfsv4] persistent sessions and compound atom… Tom Talpey
- Re: [nfsv4] persistent sessions and compound atom… J. Bruce Fields
- Re: [nfsv4] persistent sessions and compound atom… J. Bruce Fields
- Re: [nfsv4] persistent sessions and compound atom… David Noveck
- Re: [nfsv4] persistent sessions and compound atom… Trond Myklebust
- Re: [nfsv4] persistent sessions and compound atom… David Noveck
- Re: [nfsv4] persistent sessions and compound atom… Rick Macklem
- Re: [nfsv4] persistent sessions and compound atom… J. Bruce Fields
- Re: [nfsv4] persistent sessions and compound atom… Trond Myklebust
- Re: [nfsv4] persistent sessions and compound atom… Trond Myklebust
- Re: [nfsv4] persistent sessions and compound atom… J. Bruce Fields