[NETCONF-1202] Optimize Restconf-Netconf operations for List and Leaf-List items Created: 28/Nov/23 Updated: 28/Nov/23 |
|
| Status: | Confirmed |
| Project: | netconf |
| Component/s: | netconf-client-mdsal, restconf-nb |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Medium |
| Reporter: | Ruslan Kashapov | Assignee: | Ivan Hrasko |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | pt | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Description |
|
When new list elements are inserted via Restconf/Netconf (topology connected device) each list element is processed in a separate edit-config request causing significant performance impact. For example if there is PUT of a new element with insert=first into a list of 10 items, then there will be 1 (`replace` for new item) + 10 * 2 (`remove` + `replace` for each earlier item) = 21 See NetconfRestconfTransaction.java -> createImpl() and replaceImpl() methods, It seems reasonable to move list recognition (and conversion into multiple elements within same request) to NetconfDataTreeService implementation (netconf-client-mdsal) -> see AbstractNetconfDataTreeService Alternatively or in addition the NetconfDataTreeService API can be extended to accept multiple data nodes, not single node per request. The NetconfRestconfTransaction to be adjusted accordingly |