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

"Wisotzky, Sven (Nokia - DE/Stuttgart)" <sven.wisotzky@nokia.com> Thu, 14 March 2019 10:41 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 CAE5A128B36 for <netconf@ietfa.amsl.com>; Thu, 14 Mar 2019 03:41:57 -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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=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 I86JMZ13ztFM for <netconf@ietfa.amsl.com>; Thu, 14 Mar 2019 03:41:54 -0700 (PDT)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80101.outbound.protection.outlook.com [40.107.8.101]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7A2A0127918 for <netconf@ietf.org>; Thu, 14 Mar 2019 03:41:54 -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=0j8WrnpE0Z9I5FYOa56GARcJjG6PsFv7cneHIcEcDHI=; b=qbjILwg69bkgChaihotCZuoyNgkXY+h1GOemkLOGADRHv67CfRgeTSfXgLBXivIxpEIJ1d7FeuS8mzb2I87qFop90q8GvicCK4N1Wj7G2OwL01bK1ThHAvixGd464vJrzZX6sh9TM+/bZXqMGwo/sK30hzuHXZ/6x4K5LmVhOi0=
Received: from DB7PR07MB5386.eurprd07.prod.outlook.com (20.178.46.26) by DB7PR07MB4650.eurprd07.prod.outlook.com (52.135.134.158) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1730.6; Thu, 14 Mar 2019 10:41:51 +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 10:41:51 +0000
From: "Wisotzky, Sven (Nokia - DE/Stuttgart)" <sven.wisotzky@nokia.com>
To: "Rob Wilton (rwilton)" <rwilton@cisco.com>, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
CC: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [netconf] Current activities on RESTCONF/NETCONF to support paging
Thread-Index: AQHU2kekdlWyfgR30USJDGKLseBWaqYK3hEAgAANfoCAABW0AA==
Date: Thu, 14 Mar 2019 10:41:51 +0000
Message-ID: <721AEEB2-BE3B-465D-A6BB-DBBEEBACFD75@nokia.com>
References: <C88A38CA-44B5-42A0-9DFA-A67AE5456951@nokia.com> <20190314093552.3pwa7ptrre4t2stk@anna.jacobs.jacobs-university.de> <c74ec9cdca13442b93ee575e11b25610@XCH-RCD-007.cisco.com>
In-Reply-To: <c74ec9cdca13442b93ee575e11b25610@XCH-RCD-007.cisco.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
x-originating-ip: [188.97.190.16]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: fb369f2a-dc36-4488-b37f-08d6a869ab34
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:DB7PR07MB4650;
x-ms-traffictypediagnostic: DB7PR07MB4650:
x-ms-exchange-purlcount: 2
authentication-results: spf=none (sender IP is ) smtp.mailfrom=sven.wisotzky@nokia.com;
x-microsoft-antispam-prvs: <DB7PR07MB46509A311073DA89A319B74DE94B0@DB7PR07MB4650.eurprd07.prod.outlook.com>
x-forefront-prvs: 09760A0505
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(376002)(136003)(346002)(39860400002)(396003)(366004)(13464003)(199004)(189003)(486006)(76176011)(3846002)(6512007)(6246003)(53936002)(256004)(14444005)(476003)(6116002)(66066001)(11346002)(2616005)(82746002)(446003)(6436002)(186003)(478600001)(36756003)(97736004)(86362001)(316002)(4326008)(6486002)(6306002)(7736002)(305945005)(26005)(58126008)(102836004)(106356001)(68736007)(33656002)(81166006)(25786009)(5660300002)(105586002)(8936002)(229853002)(2906002)(71200400001)(53546011)(6506007)(71190400001)(110136005)(81156014)(99286004)(83716004)(14454004)(966005)(8676002); DIR:OUT; SFP:1102; SCL:1; SRVR:DB7PR07MB4650; H:DB7PR07MB5386.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX: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: mY36aV1wTC6t+knzvqcP97Vj8ic1PY/wICy9OfVGFmt/1hXXnX3MBvEF2OJp0mQUMDL1uhsKv28fJYaa71yKi4dJPHedJB42VUoe5Y40fESYwv3fLvNq38mF2THj15tKQlz1IkriLLYYJeSwahlDJfX+LU11eVz7JoJqff7DvsWL4JzznjnsMKLRFnqeNHt1c8F2UMtcVj7XofDkX3geNs/HvdqkFIdsacVNHutumsfFHw/c2b36bpeM52SOS8zLlsNMy+6fBGfJ5Xm+/TmkTdmv5J3GFXPW4tMU2TF7JYogsM8igjp4jurwfTYcMWzfTnn3KPX/VQ3DaJfHEtX/KCrWCcVREiVAZYFSR2mIpYK7ODpFQDVytjgyozI0gHAHtE3Lb6lS0Ui3+XGmWR6f2gN6fM+61VxEWbV6dJ+clTc=
Content-Type: text/plain; charset="utf-8"
Content-ID: <1CA0C23A15F7D14695406453210E58DB@eurprd07.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fb369f2a-dc36-4488-b37f-08d6a869ab34
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Mar 2019 10:41:51.5893 (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: DB7PR07MB4650
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/HTU-h-TbF4qWOjW6cTl3pJzcFmE>
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:41:58 -0000

Hi Rob,

In that case we would somehow require to cache the result and to have some sort of query-identifier, to reference back to the result vector. Sounds a bit like overkill to me. Really pushes the server-side requirements (e.g. memory footprint) - but also keeps the question open, on how long you would like the keep the result in the query cache.

/wiso



On 14.03.19, 11:24, "Rob Wilton (rwilton)" <rwilton@cisco.com> wrote:

    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