[netconf] Re: Yangdoctors last call review of draft-ietf-netconf-transaction-id-06

Michal Vasko <mvasko@cesnet.cz> Mon, 07 October 2024 14:04 UTC

Return-Path: <mvasko@cesnet.cz>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 47524C1519A9; Mon, 7 Oct 2024 07:04:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.105
X-Spam-Level:
X-Spam-Status: No, score=-2.105 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=cesnet.cz
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mFfwCOXwmWGp; Mon, 7 Oct 2024 07:04:23 -0700 (PDT)
Received: from office2.cesnet.cz (office2.cesnet.cz [78.128.248.237]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DD45EC15199C; Mon, 7 Oct 2024 07:04:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cesnet.cz; s=office2-2020; t=1728309854; bh=Jnj1GX0eEGs2880Jg1okoFhkdbTzya35g13vwlV4ADo=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=VvYZTnJpLnU/Z8r17mzD4GE01siR6TR7bxvHui3wTTHIaH8adI4KFahoQf5QQFJsA JHEN0ve6PdsSDVL2y4tuhKzEr/JvWRi+Id02pFKP/krNa+MqHutX15zftnRAxWZ9Y/ CBc75+rnNySeRJ5VnPssUpwdJItvIf9tBrYpgftI9fFbqA26VNr0668yUUzMDYao4/ dMN5K1GHef4QR66+A6VEnm0p713yL0wkE2zTElsQsdKQhjnPQbUgsQyhi1tdYYvMwy RL3rF5ZxFkGc9euZTKTEbEXbbRJgr0SNRnE58wtH4Mwstouk0AtA0YsNwaCt8dm76k cIJLPFptbnNxw==
Received: from [IPV6:2001:718:812:27::10] (gtx10.cesnet.cz [IPv6:2001:718:812:27::10]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by office2.cesnet.cz (Postfix) with ESMTPSA id 79C201180072; Mon, 7 Oct 2024 16:04:14 +0200 (CEST)
Message-ID: <a4bfa352-6fff-49e1-9213-192f84847f4d@cesnet.cz>
Date: Mon, 07 Oct 2024 16:04:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: "Jan Lindblad (jlindbla)" <jlindbla@cisco.com>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>
References: <172803674311.189.3889357308407884091@dt-datatracker-cb674fff7-jr9km> <PH0PR11MB494907F1D3EDD7378E6A026DCA7D2@PH0PR11MB4949.namprd11.prod.outlook.com>
Content-Language: en-US
From: Michal Vasko <mvasko@cesnet.cz>
In-Reply-To: <PH0PR11MB494907F1D3EDD7378E6A026DCA7D2@PH0PR11MB4949.namprd11.prod.outlook.com>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha-256"; boundary="------------ms080409030805060009050604"
Message-ID-Hash: X7S7CP2A4VBTJPSGULE5J7OG2KV4KL5J
X-Message-ID-Hash: X7S7CP2A4VBTJPSGULE5J7OG2KV4KL5J
X-MailFrom: mvasko@cesnet.cz
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-netconf.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: "draft-ietf-netconf-transaction-id.all@ietf.org" <draft-ietf-netconf-transaction-id.all@ietf.org>, "last-call@ietf.org" <last-call@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
X-Mailman-Version: 3.3.9rc5
Precedence: list
Subject: [netconf] Re: Yangdoctors last call review of draft-ietf-netconf-transaction-id-06
List-Id: NETCONF WG list <netconf.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/BOnh6Ru4f4FkNnQ5X6C0lM1U4hw>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Owner: <mailto:netconf-owner@ietf.org>
List-Post: <mailto:netconf@ietf.org>
List-Subscribe: <mailto:netconf-join@ietf.org>
List-Unsubscribe: <mailto:netconf-leave@ietf.org>

Hi Jan,

regarding the clocks, yes, I suppose I have some practical experience 
with this and I think I was even facing similar issues. At some point we 
have decided to use real timestamps for data versioning. Long story 
short, even ignoring the problem of backward time jumps, we ended up 
switching to a simple iterator because there were too many issues and 
corner cases with real time. Actually, I can illustrate them on a 
paragraph from the draft

It is RECOMMENDED that server implementors choose the number of digits 
of precision used for the fractional second timestamps high enough so 
that there is no risk that multiple transactions on the server would get 
the same timestamp.

The risk of 2 timestamps actually being the same despite data having 
changed is always there. Because there is always certain clock 
precision, no matter how many precision digits you decide to use, and, 
to make matters worse, on Linux the real-time timestamp is being cached 
from my experience, which lessens the precision even more. I mean, our 
use-case was a local app so this happening over NETCONF/RESTCONF seems 
pretty much impossible, but it cannot be completely ruled out.

So, my question would be, what exactly is the advantage of using 
/last-modified/ instead of /txid/? I see that the document also mentions 
RESTCONF, which I have no experience with, but I would generally suggest 
using only txid or accepting all the problems of real-time timestamps 
and fully accepting them with just warnings describing the issues that 
may arise.

Regards,
Michal

On 7. 10. 2024 15:30, Jan Lindblad (jlindbla) wrote:
>
> Thank you for your review, Michal!
>
> Find comments below marked [janl].
>
> *From: *Michal Vaško via Datatracker <noreply@ietf.org>
> *Date: *Friday, 4 October 2024 at 12:12
> *To: *yang-doctors@ietf.org <yang-doctors@ietf.org>
> *Cc: *draft-ietf-netconf-transaction-id.all@ietf.org 
> <draft-ietf-netconf-transaction-id.all@ietf.org>, last-call@ietf.org 
> <last-call@ietf.org>, netconf@ietf.org <netconf@ietf.org>
> *Subject: *Yangdoctors last call review of 
> draft-ietf-netconf-transaction-id-06
>
> Reviewer: Michal Vaško
> Review result: Ready with Nits
>
> This is my YANG doctor review of draft-ietf-netconf-transaction-id.
>
> As far as the YANG modules are concerned, they are fairly short and
> straightforward. Except for outdated revisions, I have noticed no issues.
>
> [janl] Very good.
>
> I have also quickly read through the whole document and managed to 
> understand
> the main idea of the document, also thanks to the numerous examples, 
> so that is
> appreciated. I only have 2 comments. In Section 3.9. there is "The
> <copy-config>` operation...", a stray ` should be removed.
>
> [janl] Ah, thanks. Markdown issue fixed.
>
> Also, in Section
> 4.2. there is a text about how the timestamp value should be generated. In
> short and using POSIX clocks, it is RECOMMENDED to be close to 
> CLOCK_REALTIME
> but MUST have no jumps backward just like CLOCK_MONOTONIC. So what 
> exactly is
> an implementation supposed to do, maintain its own clock that 
> satisfies both
> conditions? Some more guidance would be useful. Even if going with 
> something
> like taking CLOCK_REALTIME on boot and manually adding CLOCK_MONOTONIC 
> to it,
> after some time jumps you will end up with a different time than the 
> system
> CLOCK_REALTIME, so the actual real time, is this really desired and 
> acceptable?
>
> [janl] I see what you are saying. You obviously know a lot more about 
> clocks than I do. What would you recommend that we write? It needs to 
> be monotonic for the algorithm to work, so should we say 
> CLOCK_MONOTONIC (and skip all that about close to real time) with some 
> POSIX reference, or is it enough to say that the time stamps need to 
> be strictly increasing?
>
> Best Regards,
> /jan
>