Re: [netconf] restconf collections

Martin Björklund <mbj+ietf@4668.se> Thu, 01 October 2020 14:57 UTC

Return-Path: <mbj+ietf@4668.se>
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 03DED3A0EA5 for <netconf@ietfa.amsl.com>; Thu, 1 Oct 2020 07:57:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.1
X-Spam-Level:
X-Spam-Status: No, score=-0.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, PDS_NAKED_TO_NUMERO=1.997, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=4668.se header.b=N11/8cTi; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=MthX6wFy
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 1zIu5etP17Ig for <netconf@ietfa.amsl.com>; Thu, 1 Oct 2020 07:57:18 -0700 (PDT)
Received: from wout4-smtp.messagingengine.com (wout4-smtp.messagingengine.com [64.147.123.20]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B254E3A0B3A for <netconf@ietf.org>; Thu, 1 Oct 2020 07:57:18 -0700 (PDT)
Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id 9A086917; Thu, 1 Oct 2020 10:57:17 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Thu, 01 Oct 2020 10:57:17 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=4668.se; h=date :message-id:to:cc:subject:from:in-reply-to:references :mime-version:content-type:content-transfer-encoding; s=fm2; bh= OpMOBlBP5iC7NiOvFaKsazYF905xkGO4rfKAoFP5IB0=; b=N11/8cTiW8via4L5 9D0EnNHBKe2VR/Rp8tNAHOBAgfaYgxZpyswdN600kMX5sHXgEnBEDGKEdO4SNl+F QBHfJVVnuBHiCo2WP2MVC4sQ5Ln4I6oj5LDg52+1Qwl8Y+8lqkkJ5Pl4liK0Kn9h Lw7YuPCKD7BQtZimiftUoqyU/Oe2ln6q4EO7z6b0EQaweBjjSq9OCLa+wE1Id8QL ohj05SXw7xyi4mn3shR2fzcAU1D0Tn8JDfvNecFg9+c1tsA+JG0d/YFap64zBs/5 WuDj1Ca4loHKzvSYPimR0q5nxrPWmSsjgErFRWubMTLXiVKk2nlZ/tnZPOfal8Qo 0dWQaQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; bh=OpMOBlBP5iC7NiOvFaKsazYF905xkGO4rfKAoFP5I B0=; b=MthX6wFygPdPbgm3Ww/xOx6KZKhLxyWKB1MTxVQvxfI/kLigGIpSXMv5d IdLMyoQxeIlYrYH/9ticLO1DRMOeAPwq7eeGUMN1nIxdK89ljijfkMaa2pPYdP+m +PFidH3C3AXsKoGn5Icfk4TmHMTEwgP6WJOVVA6kOF2lsgEgBgb+iciyBrS9XQYX OGhGU9vK48kOvWPHLrsMUFjc8LMByWeEY+j0dfuSsKJHZDSsjJ/tznhW7oVJ/jI1 2NnTqdcz2un8Lsu518lZheBGx1tK1X2aM80NaIucQfzI2MiFJvMPMY+R4y8HVzYG lcWRR1cTcmmiJZy9tBCgRUlSWcVAA==
X-ME-Sender: <xms:TO51X7Tp4g5HdT35_29Hn4B9yp5hlNQLg3fJoDkakYIlAyxO4fdqnw> <xme:TO51X8xVewZtmKdN4GcbuL-czVXxnOKEK1bzIz9Cf1UrrCFsm00Ca3g9A2AmZLb8F 7tZ2VYglkfbxNIqL7U>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedrfeeggdekgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepfffkvffuhfgjfhfogggtgfesthgsre dtredtjeenucfhrhhomhepofgrrhhtihhnuceujhpnrhhklhhunhguuceomhgsjhdoihgv thhfseegieeikedrshgvqeenucggtffrrghtthgvrhhnpeehteegtdffgfegffekvdejke evleetuedutddtfffhlefgtedvveehvdeguedtudenucfkphepudehkedrudejgedrgedr vdduheenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmsghjodhivghtfhesgeeiieekrdhsvg
X-ME-Proxy: <xmx:TO51Xw0oCYl6ud3IukMX_DyH4hrBY6BRi3fNGVHuOZgfSvWmx15SoQ> <xmx:TO51X7AnwQn0c8r_tmWJsDtKtxK_JF_UKygABW7Pbv0DNTRyQSQ3Ew> <xmx:TO51X0jKaSPIH7W4yYnUlbkzUuphmR1lKDQISSM1z7BRU3UktD9Q4w> <xmx:Te51X8JZPF_eO4qE-n9mnFy0FYtNkQH6f2TElch8wJEkbO__okp6SA>
Received: from localhost (unknown [158.174.4.215]) by mail.messagingengine.com (Postfix) with ESMTPA id 208DC306467E; Thu, 1 Oct 2020 10:57:16 -0400 (EDT)
Date: Thu, 01 Oct 2020 16:57:15 +0200
Message-Id: <20201001.165715.770697558669717572.id@4668.se>
To: kent+ietf@watsen.net
Cc: bill.wu@huawei.com, netconf@ietf.org
From: Martin Björklund <mbj+ietf@4668.se>
In-Reply-To: <01000174e45cdb27-6ee646b5-42e6-4547-9366-91b86bf8ac84-000000@email.amazonses.com>
References: <01000174e42a0ab6-d29a9843-5a7a-4804-acba-276a859e4612-000000@email.amazonses.com> <20201001.152335.649983049956449669.id@4668.se> <01000174e45cdb27-6ee646b5-42e6-4547-9366-91b86bf8ac84-000000@email.amazonses.com>
X-Mailer: Mew version 6.8 on Emacs 26.3
Mime-Version: 1.0
Content-Type: Text/Plain; charset="utf-8"
Content-Transfer-Encoding: base64
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/-Nb-LWovuIscVE7LbwcKxGCO9fk>
Subject: Re: [netconf] restconf collections
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 01 Oct 2020 14:57:20 -0000

Kent Watsen <kent+ietf@watsen.net> wrote:
> 
> 
> > On Oct 1, 2020, at 9:23 AM, Martin Björklund <mbj+ietf@4668.se> wrote:
> > 
> > Kent Watsen <kent+ietf@watsen.net> wrote:
> >> Hi Qin,
> >> 
> >>> Some opstate must be persisted, e.g., long-lived counters, logs, etc.,
> >>> but it’s a good point about other opstate not being persisted.
> >>> Perhaps “node-tags” can be used here, to differentiate which is
> >>> which…and servers can indicate if/how they support the ephemeral
> >>> opstate leafs in queries?
> >>> 
> >>> [Qin]:That's a good case for node tag, in earlier discussion, we
> >>> discussed operation type, which distinguishs cumulative statistics
> >>> value from current value. The case discussed here is very close to
> >>> operation type proposal discussed earlier.
> >> 
> >> Yes.  Thank you for pointing that out.  I meant to make the same
> >> observation before.  Indeed, such node-tags could have dual-purpose:
> >> to guide a streaming-strategy and a querying-strategy for certain
> >> nodes.
> >> 
> >> 
> >>> Note sure how others feel about “direction: (c), but my primary
> >>> use-case revolves around time-series data (e.g., logs), where the
> >>> interest is commonly on the most-recent entries, so
> >>> "reverse-->offset—>limit” works nicely.
> >>> 
> >>> Perhaps an alternative would be to lift a concept from Python with
> >>> negative indexes so, for instance, offset=-N and limit=-N gives the
> >>> last N entries?
> >>> [Qin]: Yes, that's what I thought as well, with negative indexes, (b)
> >>> and (c) seems to me, can be combined.
> >> 
> >> Can others comment on this?
> > 
> > Isn't this just another syntax for the same function?
> 
> No, it is not.

How so?  Isn't the idea that you can first ask for offset=-10, then
-20, etc, essentially walking the list backwards?  (I don't understand
what a negative limit means though).


/martin


> 
> K.
> 
> 
> > 
> > /martin
> > 
> > 
> >> Presumably, we could eliminate “direction” (c) with this approach.  
> >> 
> >> Without “direction”, I think that UIs can still support the ability to
> >> do column-sorts, whereby the user clicks on a column’s header to
> >> toggle ascending vs. descending presentation, but they’ll have to do
> >> it client-side.
> >> 
> >> That is, if wanting to see the 2nd page of results sorted by a column,
> >> something like:
> >> 
> >> 	sort(column-name) --> offset(-2*pagesize) --> limit(pagesize)
> >> 
> >> Followed by the client then flipping the results to present the
> >> results in the user-selected order, right?
> >> 
> >> That said, given that DB-backends that support sorts commonly also
> >> support direction, it's unclear what this buys us.
> >> 
> >> 
> >>>>> Sure, but I wonder if, e.g., a netmask filter, is supportable by 
> >>>>> common DB-backends.  I’m hoping we have some DB-experts on the list!
> >>>> 
> >>>> See above.  It can be quite efficient even if the backend doesn't 
> >>>> support it.
> >>> 
> >>> I don’t see that above, but I don’t doubt that it can be so, it’s just
> >>> a whole lot of implementation complexity.  It seems that we
> >>> should/must support servers doing it, we just need to find a way
> >>> (node-tags?) to enable them to express that ability.
> >>> [Qin]: My feeling is this efficiency more depends on the amount of
> >>> data we need to request. If amount of data we request is huge, maybe,
> >>> client-> server-> backend may be the better choice.
> >> 
> >> Is it the amount of data requested or the number of entries in the
> >> list?  At least, in my worldview, clients are always requesting a
> >> “page” of data, so that part is rather consistently small.
> >> 
> >> If the intention is to get a complete dump, then maybe the comment
> >> from yesterday applies, whereby streaming to an external repository
> >> that can be queried offline makes more sense?  - especially
> >> considering that the number of on-box logs is likely to be only the
> >> most recent (e.g., days), whereas the complete-dump type queries
> >> likely wish to extend well-past that.
> >> 
> >> K.
> >> 
> >> 
>