[nfsv4] persistent sessions and compound atomicity
bfields@fieldses.org Wed, 09 December 2020 00:26 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 781E03A0475 for <nfsv4@ietfa.amsl.com>; Tue, 8 Dec 2020 16:26:45 -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 7I6OftG--K6k for <nfsv4@ietfa.amsl.com>; Tue, 8 Dec 2020 16:26:43 -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 A787A3A044E for <nfsv4@ietf.org>; Tue, 8 Dec 2020 16:26:43 -0800 (PST)
Received: by fieldses.org (Postfix, from userid 2815) id 5E5A669C3; Tue, 8 Dec 2020 19:26:40 -0500 (EST)
DKIM-Filter: OpenDKIM Filter v2.11.0 fieldses.org 5E5A669C3
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fieldses.org; s=default; t=1607473600; bh=Fku20xIxL6cnmvMZvzINb/zrMa+JZOZHNWMCrYnI0Ss=; h=Date:To:Subject:From:From; b=Dqb6xSM622eGHOrvGN0KEfNUvEbLmrtlWpQf6E2DFsOIsom7lf3JgbWKjQ3t4SqIr UDHul+QlRQ4T4lHfZc04TDj34Ad2sYauozAqXO6br6RwdU4gqYqB5UeWHiwURT51Ss 7080Shxx+FxY4f7dhnJY1rpv03BPbVaI+iUdq1bY=
Date: Tue, 08 Dec 2020 19:26:40 -0500
To: NFSv4 <nfsv4@ietf.org>
Message-ID: <20201209002639.GC16661@fieldses.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
User-Agent: Mutt/1.5.21 (2010-09-15)
From: bfields@fieldses.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/LAeppkhbUHD-P-9vK0TuaNIIzgI>
Subject: [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 00:26:46 -0000
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? Or, why not allow it to return the result so far and then DEADSESSION on any following operation? 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] 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