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

"Wisotzky, Sven (Nokia - DE/Stuttgart)" <sven.wisotzky@nokia.com> Thu, 14 March 2019 09:24 UTC

Return-Path: <sven.wisotzky@nokia.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 14FF512867A for <netconf@ietfa.amsl.com>; Thu, 14 Mar 2019 02:24:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.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 q1sLi5wjy67u for <netconf@ietfa.amsl.com>; Thu, 14 Mar 2019 02:23:57 -0700 (PDT)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-db5eur03on0723.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0a::723]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D6A9F12865E for <netconf@ietf.org>; Thu, 14 Mar 2019 02:23:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com; s=selector1-nokia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wJX/kHuHSGndkLn2KcD7jGjkrhsnGESqMYXxhwJz+q4=; b=XZzbNnEeAtDy787ON325fxUGvXPPLOjaxH/AlQFbQSAekwZ9oRRJrO5eW+ARdMGro031hcmsaoVE9piak2q9BOu4FfkAZv45GJgNVUbkqqoFwZhVvTFlpIO169hcIpkANhP5cgxAjSvfTKaaKXgDAiV7bWM8TtPEZQoUIXbctV4=
Received: from DB7PR07MB5386.eurprd07.prod.outlook.com (20.178.46.26) by DB7PR07MB5418.eurprd07.prod.outlook.com (20.178.84.76) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1709.8; Thu, 14 Mar 2019 09:23:54 +0000
Received: from DB7PR07MB5386.eurprd07.prod.outlook.com ([fe80::181c:32c6:16f2:7433]) by DB7PR07MB5386.eurprd07.prod.outlook.com ([fe80::181c:32c6:16f2:7433%3]) with mapi id 15.20.1709.011; Thu, 14 Mar 2019 09:23:54 +0000
From: "Wisotzky, Sven (Nokia - DE/Stuttgart)" <sven.wisotzky@nokia.com>
To: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: Current activities on RESTCONF/NETCONF to support paging
Thread-Index: AQHU2kekdlWyfgR30USJDGKLseBWag==
Date: Thu, 14 Mar 2019 09:23:53 +0000
Message-ID: <C88A38CA-44B5-42A0-9DFA-A67AE5456951@nokia.com>
Accept-Language: de-DE, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/10.17.0.190309
authentication-results: spf=none (sender IP is ) smtp.mailfrom=sven.wisotzky@nokia.com;
x-originating-ip: [188.97.190.16]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 9133f481-cef4-4e19-ac1d-08d6a85ec717
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4618075)(2017052603328)(7193020); SRVR:DB7PR07MB5418;
x-ms-traffictypediagnostic: DB7PR07MB5418:
x-microsoft-antispam-prvs: <DB7PR07MB541845C314211C6FE69EFC4EE94B0@DB7PR07MB5418.eurprd07.prod.outlook.com>
x-forefront-prvs: 09760A0505
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39860400002)(396003)(366004)(346002)(376002)(136003)(189003)(199004)(6436002)(68736007)(7736002)(256004)(316002)(99286004)(6486002)(36756003)(2351001)(105586002)(106356001)(33656002)(58126008)(71190400001)(83716004)(81166006)(81156014)(71200400001)(8676002)(97736004)(14444005)(66066001)(53936002)(2616005)(8936002)(476003)(1730700003)(3846002)(5640700003)(25786009)(486006)(6306002)(54896002)(6512007)(5660300002)(2501003)(6506007)(2906002)(478600001)(102836004)(14454004)(6916009)(86362001)(6116002)(82746002)(186003)(26005); DIR:OUT; SFP:1102; SCL:1; SRVR:DB7PR07MB5418; H:DB7PR07MB5386.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: nokia.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: TNH71Gg0RoA/4DpO9NuPFEVYq1R48BZLhJz0L4ny2ZBbZF4NBroqX/lkIQAbtGhUqQCHwWZLHld8Iz17SHzEg4AIm5wwu18B08x3c/uDWEr+M6BuwM0qKno5ATC6qvqRtc0zD7lg6MWrjRk2OYF3nmtlngpGwA2cn9RyTvr3/SsrgZDFbv1fkj/IG5P5YjeFSkWAFoIiUpYuloeJLmU7fc3pgJARXcqG9ufJLrwhw/+2ymb0tTWx4UV3ML5KV96vKNwDldOuvCdXJq03aVcemNNcyComKX6wsOcBg/i7Op9kRsNEhuWtZvSDbs56mbTlKCvBtzNFTbqTThat8JQDXsNGFj9gOWdD3JxNfkyZ+D5sfeyojY8S8FHyUqgsiEeqwqm7u48wcG+d0N3LppE8X8A7pPmC42PN4vzr/D7V2m4=
Content-Type: multipart/alternative; boundary="_000_C88A38CA44B542A09DFAA67AE5456951nokiacom_"
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9133f481-cef4-4e19-ac1d-08d6a85ec717
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Mar 2019 09:23:53.8912 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR07MB5418
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/QMrh5ucyGNjz5tc9rMPPMKcANTo>
Subject: [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 09:24:01 -0000

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