Re: [netconf] restconf collections

Kent Watsen <> Sat, 26 September 2020 18:57 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 910C43A03C9 for <>; Sat, 26 Sep 2020 11:57:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.894
X-Spam-Status: No, score=-1.894 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id TfIGK4o6DzKR for <>; Sat, 26 Sep 2020 11:57:53 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 2FEBE3A0317 for <>; Sat, 26 Sep 2020 11:57:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=224i4yxa5dv7c2xz3womw6peuasteono;; t=1601146672; h=From:Message-Id:Content-Type:Mime-Version:Subject:Date:In-Reply-To:Cc:To:References:Feedback-ID; bh=DpIKh0e/f0rcysCoeCBLKTgF/J7FydeNwsOI8sysK94=; b=CbFaLNoKacELU0kR7CFMT7k7djJCZi6BdrAuZS3qnKPgjGQ7+Jrkc5Qc633j8ngy O+Nh+DaTjgFg82ETVtuJlLeh899TNY6gm+nmZNwkTSXI8kA/0ADa2jDKEUHUXqnKYnI FKzExaV072RVZ+Y1w1+ZRxzTUpOI0Ahup3JooydI=
From: Kent Watsen <>
Message-ID: <>
Content-Type: multipart/alternative; boundary="Apple-Mail=_3877FE33-0692-4B20-9219-E5823051AAB4"
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.\))
Date: Sat, 26 Sep 2020 18:57:51 +0000
In-Reply-To: <>
Cc: "" <>
To: Andy Bierman <>
References: <> <> <>
X-Mailer: Apple Mail (2.3608.
X-SES-Outgoing: 2020.09.26-
Archived-At: <>
Subject: Re: [netconf] restconf collections
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Sat, 26 Sep 2020 18:57:54 -0000

> The <get-bulk> operation is not stateful.
> <>
This RPC is effectively 1-1 with RC query params approach being discussed.  I like it.

The “count” param is like “limit”, and “list-test” is like a “where”.

One difference is that <get-bulk> uses "last-keys” instead of an integral “offset”.   Any thoughts about the pros and cons?  I imagine performance depends on the backend database used.  For instance, SQL supports “offset” so, to support "last-keys” instead would entail a first query to determine the offset for a key.

Missing is a “sort”.  That said, of the four params mentioned (limit, offset, where, sort), it might be least important.  At least, a general sort is…and then there is the nasty issue of sorting a user-sorted list.  A likely must-have fallback would be “direction” so, e.g., queries return the most-recent (not the oldest) entires in a time-series list (e.g., a log).  A “direction” parameter would also work well on a user-sorted list.

> There are 3 completely different approaches:
>   1) stateless
>   2) stateful
>   3) stateful snapshot
> How to efficiently iterate through data that is changing constantly?
> This problem is harder than it looks.

Agreed.  I recommend we NOT try to solve that problem.