Re: [netconf] restconf collections

Andy Bierman <andy@yumaworks.com> Thu, 01 October 2020 16:17 UTC

Return-Path: <andy@yumaworks.com>
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 29EB83A0C00 for <netconf@ietfa.amsl.com>; Thu, 1 Oct 2020 09:17:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.887
X-Spam-Level:
X-Spam-Status: No, score=-1.887 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-com.20150623.gappssmtp.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 jz3naiXggtGh for <netconf@ietfa.amsl.com>; Thu, 1 Oct 2020 09:17:18 -0700 (PDT)
Received: from mail-lf1-x143.google.com (mail-lf1-x143.google.com [IPv6:2a00:1450:4864:20::143]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EFAFE3A0B93 for <netconf@ietf.org>; Thu, 1 Oct 2020 09:17:17 -0700 (PDT)
Received: by mail-lf1-x143.google.com with SMTP id b12so7271276lfp.9 for <netconf@ietf.org>; Thu, 01 Oct 2020 09:17:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=+3wWhTIHfkOTX3Eviz8WW6K65JhlIjmV914yW9Q23wI=; b=MyWXCy9xyXFXxJyc/u60iGltRUcu1dBmaLwWTLwkwjJ6Z7hLSi0MGjcyZv7qLi4xFG Y0PvbmogJa95MmpEN1QkBF8p+du1vfau/U9sTtCKDqvceH9myNaEDakfzWlMVoleAXME WGG8MoOunNB+vdQHIM95HluO8PKtLJ+YwGy57EvdA+96kGdxsp4B0ZMZoPiwutR+STg+ 2kuMjMH7rkCMzra4v/nwTyJI1+c8ap85LUOMRt1rTrgVEaXty5ryoLJHwYvhLhfhyD+k ZRuFg6Lu9dMZn/daVvWkrozecD23l+3CZxhgESnoNWFfkIufV2vYhmJnwGfRQyuxfYZQ jWUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=+3wWhTIHfkOTX3Eviz8WW6K65JhlIjmV914yW9Q23wI=; b=rhI0p1p0rpgk5zJblvcXxj7jpLL+/QWoOy6iJZs9etLpmdmtLUdia+FIRhPf4Sz0x0 mt44qZqBURlS/tF0H7iWUROtKlITEasKvbD6gNu0hpGC2V4ybGmq3IGj1bGUi6GuappS qW8I2CctlTZoEV74ZC8U4zAQehlW3cF6SPCLojsNJsCDjXXd+skWzb4fEgtf12i1Brkw 3nSCCl60JY4HcjrW9g3QgtHpAYJt+7kQ55sGF/7jUyqaaFqmExTNbJOsqEHsYnZO06TT h9hKGuSvHTQ4LthkwptW3p75c/lLKYD0mYpnf1JzzzLDkh/wvmuIAL7DQLC1uCgWy941 JVyw==
X-Gm-Message-State: AOAM530Yy+SEp8pKBERSt2OHIJJeFMq6CDwtvizPk5wdDAoZDSrSaqWY Z/yPiCp/oGyA9gRnb71dA7eNHtDH19D+q79pqf5Gaw==
X-Google-Smtp-Source: ABdhPJwp2rPCZ92hvZVS+tG58WCzx6oJHm8KGgKHpPqJ73ObBdPblwvMP9wL8PEekOF9nIkhT/BO4eKvx7smhoMCT7g=
X-Received: by 2002:a19:5214:: with SMTP id m20mr2734491lfb.138.1601569035916; Thu, 01 Oct 2020 09:17:15 -0700 (PDT)
MIME-Version: 1.0
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> <20201001.165715.770697558669717572.id@4668.se>
In-Reply-To: <20201001.165715.770697558669717572.id@4668.se>
From: Andy Bierman <andy@yumaworks.com>
Date: Thu, 01 Oct 2020 09:17:01 -0700
Message-ID: <CABCOCHTBk52yyGH5Y2CrGcbV3FqEh8_c4od6LnXQdjT9rigKgg@mail.gmail.com>
To: Martin Björklund <mbj+ietf@4668.se>
Cc: Kent Watsen <kent+ietf@watsen.net>, Netconf <netconf@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000007839f305b09e5922"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/2qgz0k959HNF4a3oqehcI-tROV8>
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 16:17:20 -0000

On Thu, Oct 1, 2020 at 7:57 AM Martin Björklund <mbj+ietf@4668.se> wrote:

> 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).
>
>


Can somebody explain the use-case for iterating a list backwards?
No customer has ever asked for this so I am wondering what we are all
missing.

I guess it isn't clear that offsets do not work for lists where entries
are added and/or deleted over time, unless lots of state is kept by the
server.
I guess if you are looking for the most expensive heavyweight solution
possible
then this is a good start.



>
> /martin
>

Andy


>
>
> >
> > 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.
> > >>
> > >>
> >
> _______________________________________________
> netconf mailing list
> netconf@ietf.org
> https://www.ietf.org/mailman/listinfo/netconf
>