Re: [nfsv4] Possible change to Flex Files layout

Thomas Haynes <loghyr@primarydata.com> Tue, 18 July 2017 09:16 UTC

Return-Path: <loghyr@primarydata.com>
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 20832131945 for <nfsv4@ietfa.amsl.com>; Tue, 18 Jul 2017 02:16:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.49
X-Spam-Level:
X-Spam-Status: No, score=-2.49 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, T_DKIM_INVALID=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (body has been altered)" header.d=primarydata.onmicrosoft.com
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 Try4Xjl0RFHy for <nfsv4@ietfa.amsl.com>; Tue, 18 Jul 2017 02:16:22 -0700 (PDT)
Received: from us-smtp-delivery-194.mimecast.com (us-smtp-delivery-194.mimecast.com [216.205.24.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DC6C6131A93 for <nfsv4@ietf.org>; Tue, 18 Jul 2017 02:16:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=PrimaryData.onmicrosoft.com; s=selector1-primarydata-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=OvTBlOIZfROBl6yFxIJV2ttcQDhiKYZ9/lk4XmknL0U=; b=gJIhuI7f7DQ2arsbx+6CKl7IzM01x0NoV5mzFd+ItaEX8xhHuvNTqn8wrlwngzSSB9pzi+XTZhfb/QYM1wysl2suiG03CF50lxVxDrPGuh3t2OSSEiSpfVR8aRPhiktehJvXNxHcRbLGAk/E+WphpVxeRsmdV0x9pYknEUIQsfQ=
Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03lp0049.outbound.protection.outlook.com [216.32.180.49]) (Using TLS) by us-smtp-1.mimecast.com with ESMTP id us-mta-9-8yl_wwk9PhSpaxYPMVmBpg-1; Tue, 18 Jul 2017 05:16:16 -0400
Received: from BY2PR1101MB1093.namprd11.prod.outlook.com (10.164.166.21) by BY2PR1101MB1094.namprd11.prod.outlook.com (10.164.166.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1261.13; Tue, 18 Jul 2017 09:16:13 +0000
Received: from BY2PR1101MB1093.namprd11.prod.outlook.com ([10.164.166.21]) by BY2PR1101MB1093.namprd11.prod.outlook.com ([10.164.166.21]) with mapi id 15.01.1261.022; Tue, 18 Jul 2017 09:16:13 +0000
From: Thomas Haynes <loghyr@primarydata.com>
To: Dave Noveck <davenoveck@gmail.com>
CC: Benny Halevy <bhalevy@gmail.com>, Rick Macklem <rmacklem@uoguelph.ca>, "nfsv4@ietf.org" <nfsv4@ietf.org>
Thread-Topic: [nfsv4] Possible change to Flex Files layout
Thread-Index: AQHRjEnu1nmP4CaBDEut2MulEFy966JcNGqA
Date: Tue, 18 Jul 2017 09:16:13 +0000
Message-ID: <B51ED720-CED2-4F9A-8FC6-16E6FB6683A0@primarydata.com>
References: <1244659329.10251491.1457494754382.JavaMail.zimbra@uoguelph.ca> <CAABAsM7hN_FSC7VUCvjOpCoJvii0PK7LvJjFy1u_dRiDtzxNZQ@mail.gmail.com> <2092494483.11935609.1457581578961.JavaMail.zimbra@uoguelph.ca> <CA+isNR+w9Qw39jfayOnmPsU74kF+-bEUL0qTG-esqA=p1QqUew@mail.gmail.com> <1985271727.13393755.1457659381248.JavaMail.zimbra@uoguelph.ca> <CA+isNRJbnPe+eFHw+k-kAii_2BcC5qiwA0oQEy31iKasoipPdQ@mail.gmail.com> <1344440686.14694101.1457748366315.JavaMail.zimbra@uoguelph.ca> <CA+isNRKnR8QdvDTk+_wcHJ2Gbg39PtR7kimG1SjUqt8aDgCQ6A@mail.gmail.com> <CADaq8jf-_mWr1ibLqq7UtyDTto2aOmY4YVTvAMSpVRaksRndQA@mail.gmail.com>
In-Reply-To: <CADaq8jf-_mWr1ibLqq7UtyDTto2aOmY4YVTvAMSpVRaksRndQA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [2001:67c:370:128:c9f0:8d97:a2a4:4e70]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BY2PR1101MB1094; 20:/lAZSnkBPwH9ZLzmQ2kQE5/AyBbNaYKMlCWqeQcL71ZVMfvzJyq0/mEngNp4RIAJ0zXaxUVA7BfrTCRsHllftSzqKfQaehkw49lEd2ySiRUxGa228q1PhgGGw+h6OeEO+q01LiqZo55W8hhcMYk7I7XQAO/pXzmkD1NZVl216rE=
x-ms-office365-filtering-correlation-id: 920a3d53-1e71-4f94-68f1-08d4cdbda322
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(2017052603031)(201703131423075)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BY2PR1101MB1094;
x-ms-traffictypediagnostic: BY2PR1101MB1094:
x-exchange-antispam-report-test: UriScan:(158342451672863)(236129657087228)(48057245064654)(148574349560750)(247924648384137);
x-microsoft-antispam-prvs: <BY2PR1101MB1094A558340BC9805F5F7AC7CEA10@BY2PR1101MB1094.namprd11.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(2017060910075)(5005006)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6041248)(20161123558100)(20161123564025)(20161123560025)(2016111802025)(20161123562025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(6043046)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY2PR1101MB1094; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY2PR1101MB1094;
x-forefront-prvs: 037291602B
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39410400002)(39450400003)(39400400002)(39840400002)(24454002)(377454003)(54896002)(36756003)(6486002)(6512007)(77096006)(478600001)(54356999)(8676002)(8936002)(1411001)(7736002)(6436002)(76176999)(6116002)(93886004)(50986999)(2906002)(102836003)(81166006)(6506006)(54906002)(2900100001)(236005)(99286003)(3280700002)(38730400002)(229853002)(53936002)(39060400002)(6246003)(189998001)(3660700001)(110136004)(6916009)(4326008)(82746002)(53546010)(2950100002)(83716003)(25786009)(86362001)(14454004)(5660300001)(33656002)(42262002); DIR:OUT; SFP:1102; SCL:1; SRVR:BY2PR1101MB1094; H:BY2PR1101MB1093.namprd11.prod.outlook.com; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en;
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
MIME-Version: 1.0
X-OriginatorOrg: primarydata.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jul 2017 09:16:13.3661 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 03193ed6-8726-4bb3-a832-18ab0d28adb7
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR1101MB1094
X-MC-Unique: 8yl_wwk9PhSpaxYPMVmBpg-1
Content-Type: multipart/alternative; boundary="_000_B51ED720CED24F9A8FC616E6FB6683A0primarydatacom_"
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/lRbXeXt-pA6z_IXzUWH_UhvENAc>
Subject: Re: [nfsv4] Possible change to Flex Files layout
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.22
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: Tue, 18 Jul 2017 09:16:24 -0000

On Mar 12, 2016, at 4:34 PM, David Noveck <davenoveck@gmail.com<mailto:davenoveck@gmail.com>> wrote:


> Aside for the stability of written data there is the requirement for visibility.

Or at least potential requirements as to visibility.

> That is, a clustered server needs to mimic as much as possible the functional behavior of a monolithic server.

True, but a lot of the deployments will not be clustered servers.  In fact, in many cases in which one is replicating data, the two replicas will be far enough apart that a natural disaster is unlikely to simultaneously affect both.

In any case, pNFS does not strive to precisely emulate clustered server semantics.  Instead, it seeks to provide many of the benefits of clustered operation, while allowing requirements that depend on the clients being aware of the distributed  nature of the arrangement.  Use of LAYOUTCOMMIT is an example.

>With that in mind, the newly written data is visible to all clients in a monolithic server regardless if its stable_how value. The application level relies on that for close-to-open semantics.

True.

> This implies that in a clustered server configuration with multiple DSs, the MDS must make sure all mirrored copies will return the new data before the WRITE reply is sent.

It would imply that if an MDS with multiple DS's were a clustered server configuration.

Since it isn't, I'd like us to consider how we might avoid a requirement to immediately propagate writes to all replicas.  Given that there may be good reasons to have some of these hundreds or thousands of miles away from the others, I think we want to avoid a situation in which the client writes to the closest replica but has to wait for all  replicas to receive and reply to the write.  This adds a latency of 16μs/mi based on the distance to the farthest replica.

I'm thinking we need something like the following to deal with this issue:


When stable writes are done to the MDS or to a single replica (if allowed by the appropriate  layout flag), it is the responsibility of the receiving node to propagate the written data stably, before replying to the client.

In the corresponding cases in which unstable writes are done, the receiving node does not have any such obligation, although it may choose to asynchronously propagate the updates.  However, once a COMMIT is replied to, all replicas must reflect the writes that have been done, and these data must have been committed to stable storage on all replicas.

In order to avoid situations in which stale data is read from replicas to which writes have not been propagated:


  *   A client which has outstanding unstable writes made to single node (MDS or DS) MUST do all reads from that same node.
  *   When writes are flushed to the server, for example to implement, close-to-open semantics, a COMMIT must be done by the client to ensure that up-to-date written data will be available irrespective of the particular replica read.




Better late than never, draft-11 will encompass Rick’s change for FF_FLAGS_WRITE_ONE_MIRROR, your change above, and my change for error handling in this case.