Re: [netconf] Current activities on RESTCONF/NETCONF to support paging

"Rob Wilton (rwilton)" <rwilton@cisco.com> Thu, 14 March 2019 10:24 UTC

Return-Path: <rwilton@cisco.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 439FA1295D8 for <netconf@ietfa.amsl.com>; Thu, 14 Mar 2019 03:24:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.501
X-Spam-Level:
X-Spam-Status: No, score=-14.501 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 E-jGMC1EWp-x for <netconf@ietfa.amsl.com>; Thu, 14 Mar 2019 03:24:11 -0700 (PDT)
Received: from alln-iport-4.cisco.com (alln-iport-4.cisco.com [173.37.142.91]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6242C128CB7 for <netconf@ietf.org>; Thu, 14 Mar 2019 03:24:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=6232; q=dns/txt; s=iport; t=1552559051; x=1553768651; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=tB2OGEj23f0dOaGHsEKUSJPKquTbOxo5HoQKhMG9ORY=; b=U6gr95l2V/oO5/keFtjT3yoFJfmqoxMhiA1dfZrsmtx/o4fGCPWBmdx/ Dv16/Sz8vhJTND5C4+YLU5p9qcXeacc7v74QnztDHelQNeaMHPOy34XzG 3WNzmcD5zPyomA51fUGBYBWsR0X/TM3IZEvD9r3Es7tukpxIhmLMfL6zW E=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0ADAABZKopc/5BdJa1hAxkBAQEBAQEBAQEBAQEHAQEBAQEBgVEEAQEBAQELAYFgL2iBAycKhAGIHI0smDCBewsBARgLhANGAheENyI0CQ0BAQMBAQkBAwJtHAyFSgEBAQQBASEROgsFBwICAgEGAg4CAQQBAQECAiYCAgIZDAsVCAgCBA4FCBODCIF1D5Irm2aBL4oyBQWBBiQBiywXgUA/hCODHgEBgTsQLQomgkOCVwOJfRJDggCXbgkCkxUhk0udZgIRFYEoHziBVnAVO4JsghYXg36EYYU/QTGNW4EtgR8BAQ
X-IronPort-AV: E=Sophos;i="5.58,478,1544486400"; d="scan'208";a="244807997"
Received: from rcdn-core-8.cisco.com ([173.37.93.144]) by alln-iport-4.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 14 Mar 2019 10:24:10 +0000
Received: from XCH-ALN-008.cisco.com (xch-aln-008.cisco.com [173.36.7.18]) by rcdn-core-8.cisco.com (8.15.2/8.15.2) with ESMTPS id x2EAOAkh008823 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 14 Mar 2019 10:24:10 GMT
Received: from xch-rcd-007.cisco.com (173.37.102.17) by XCH-ALN-008.cisco.com (173.36.7.18) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Thu, 14 Mar 2019 05:24:09 -0500
Received: from xch-rcd-007.cisco.com ([173.37.102.17]) by XCH-RCD-007.cisco.com ([173.37.102.17]) with mapi id 15.00.1473.003; Thu, 14 Mar 2019 05:24:09 -0500
From: "Rob Wilton (rwilton)" <rwilton@cisco.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, "Wisotzky, Sven (Nokia - DE/Stuttgart)" <sven.wisotzky@nokia.com>
CC: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [netconf] Current activities on RESTCONF/NETCONF to support paging
Thread-Index: AQHU2kekdlWyfgR30USJDGKLseBWaqYLMeMA//+yIDA=
Date: Thu, 14 Mar 2019 10:24:09 +0000
Message-ID: <c74ec9cdca13442b93ee575e11b25610@XCH-RCD-007.cisco.com>
References: <C88A38CA-44B5-42A0-9DFA-A67AE5456951@nokia.com> <20190314093552.3pwa7ptrre4t2stk@anna.jacobs.jacobs-university.de>
In-Reply-To: <20190314093552.3pwa7ptrre4t2stk@anna.jacobs.jacobs-university.de>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.63.23.135]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Outbound-SMTP-Client: 173.36.7.18, xch-aln-008.cisco.com
X-Outbound-Node: rcdn-core-8.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/H5z9Li2NhEUy6umX4UKUSKxlyh0>
Subject: Re: [netconf] Current activities on RESTCONF/NETCONF to support paging
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, 14 Mar 2019 10:24:15 -0000

I agree that this would be a useful problem to solve.

I also agree with Juergen that there will likely be consistency issues depending on implementation, particularly if the data is coming from <operational>.  But I suspect that this issue already exists for many non-trivial implementations (e.g. where the operational data is distributed to daemons, linecards, or remote slave devices).

Requiring that a consistent view of the conventional configuration datastores can be provided (without locking) might be a reasonable compromise.

Thanks,
Rob


-----Original Message-----
From: netconf <netconf-bounces@ietf.org> On Behalf Of Juergen Schoenwaelder
Sent: 14 March 2019 09:36
To: Wisotzky, Sven (Nokia - DE/Stuttgart) <sven.wisotzky@nokia.com>
Cc: netconf@ietf.org
Subject: Re: [netconf] Current activities on RESTCONF/NETCONF to support paging

One of the issues to consider is that depending on the datastore accessed, the data can change more or less rapidly and it is unclear whether you want servers to maintain potentially big amounts of state between requests. If you retrieve data in chunks, the question is whether you can simply put the data back together or the client side or whether this may lead to data that never really existed in that form on the server. With RESTCONF, etags may help to check whether the resource queried remains consistent (but then the server still has to be able to decide etag changes).

But backing up for this discussion of details, I agree that this is a problem worth solving by standardizing a common solution.

/js

On Thu, Mar 14, 2019 at 09:23:53AM +0000, Wisotzky, Sven (Nokia - DE/Stuttgart) wrote:
> All,
> 
> There was some discussion in earlier days (back in 2012/2014) to 
> support paging for extra-long lists. The main use-case is clearly to 
> improve support for interactive user-frontends, as loading entire 
> lists with potentially more than 100.000’s objects easily can become a 
> nightmare: loading time, memory consumption, crashes, …
> 
> For the sake of implementation, one would simply provide an attribute called “max-count”, “max-entries”, “max-elements” or “limit” – which basically defines the upper limit of list entries to be returned. Asking for limit=10 – even if the list contains a 100k the result would simply show 10. From an user-interface point of view, this might be enough – as users would see how the list entries look like to narrow down the search by adding additional search/filter criteria. So to protect the client system and improvements on loading time/memory consumptions – this might be just enough.
> 
> More advanced implementations might allow the NETCONF client to specify the “offset” which is basically the index of the first list entry to be returned. In such case, the client could continue to load further pages on customer demand (like dynamically while scrolling down the list or pressing on the next button). Even if people are not curious that much about memory consumption, even it should be possible to continue loading the remaining list in the background – while showing the first X items faster on the user-interfaces.
> 
> To make such paging solution even more complete, following use-cases are to be reviewed from a RESTCONF/NETCONF API point of view:
> /1/ How to figure out the number of list entries matching the given criteria for a given list, without the need to poll the entire list? This could be helpful to operators straight away, but also allows easier implementation for things like progress bars.
> /2/ Define a sorting criteria for search results /3/ Improve filtering 
> capabilities for subtree filters (e.g. contains operator)
> 
> I did not found any active DRAFT or RFC for this. That said, we can see various vendors implementing proprietary solutions for this in their RESTCONF stacks.
> Would really like to see an IETF defined approach for this, to avoid multi-vendor clients need to deal various vendors implementations.
> 
> /wiso

> _______________________________________________
> netconf mailing list
> netconf@ietf.org
> https://www.ietf.org/mailman/listinfo/netconf


-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>

_______________________________________________
netconf mailing list
netconf@ietf.org
https://www.ietf.org/mailman/listinfo/netconf