NCMP De-Register API Performance
De-Register CM Handles (Removed CM Handles)
Test Configurations
# | Environment/Workload | Description |
---|---|---|
1 | Tested on | laptop : |
2 | Docker-compose | Docker-compose file: https://gerrit.onap.org/r/gitweb?p=cps.git;a=blob_plain;f=docker-compose/docker-compose.yml;hb=aa29f24b0da9b9d2c86a0c528357a17ff3d7a871 |
3 | cURL | De-Register CM Handles cURL Expand source |
4 | Number of CPS Instance | 1 |
5 | Number Modules per Cm Handle | 10 |
6 | Commit ID (before improvement) | |
7 | Commit ID (improvement 1) |
# | Component | Configuration Parameters | Value |
---|---|---|---|
1 | CPS | notifactions:enabled | true |
2 | CPS | config.additional.notification.data-updated.filters.dataspaces.enabled-dataspaces | "NON-EXISTING-DATASPACE" |
3 | NCMP | modules-sync-watchdog:async-executor:parallelism-level | 10 |
Summary of test results
Tests were performed after all CM handles are in the READY state.
Baseline 9c56b30 (11th January) | Commit 373cdf2 (27th February) | ||||
Total | Removed | Time (sec) | CmHandles/sec | Time (sec) | CmHandles/sec |
100 | 100 | 15.06 | 6.64 | 1.73 | 57.75 |
200 | 200 | 40.11 | 4.99 | 2.95 | 67.91 |
300 | 300 | 83.31 | 3.60 | 4.07 | 73.64 |
400 | 400 | 146.09 | 2.74 | 5.17 | 77.39 |
500 | 500 | 219.36 | 2.28 | 6.34 | 78.81 |
600 | 600 | 315.37 | 1.90 | 9.69 | 61.92 |
700 | 700 | 421.50 | 1.66 | 8.38 | 83.50 |
800 | 800 | 541.94 | 1.48 | 9.61 | 83.25 |
900 | 900 | 682.21 | 1.32 | 11.36 | 79.22 |
1000 | 1000 | 838.24 | 1.19 | 11.64 | 85.93 |
2000 | 2000 | 3189.52 | 0.63 | 22.38 | 89.35 |
3000 | 3000 | 7074.47 | 0.42 | 32.19 | 93.18 |
4000 | 4000 | 12199.83 | 0.33 | 45.63 | 87.66 |
5000 | 5000 | 19045.40 | 0.26 | 56.23 | 88.92 |
10000 | 154.95 | 64.54 | |||
20000 | 413.68 | 48.35 |
Deregistration Performance-230227.ods
Delete performance scenario on Nordix : (Commit id : 7421c69)
# | Test Scenario | Nordix Build 1 (ms) | Nordix Build 2 (ms) | Nordix Build 3 (ms) | Groovy test deleteDurationInMillis (ms) |
---|---|---|---|---|---|
1 | Delete root node with many descendants | 165 | 168 | 166 | 200 |
2 | Delete data nodes for an anchor | 172 | 210 | 169 | 250 |
3 | Delete 50 grandchildren (that have no descendants): | 304 | 232 | 263 | 350 |
4 | Delete 5 whole lists with many elements | 796 | 852 | 758 | 1,000 |
5 | Delete 5 children with grandchildren | 222 | 232 | 225 | 300 |
6 | Delete 10 list elements with keys | 1,019 | 1,097 | 990 | 1,200 |
7 | Delete 1 large data node with many descendants: | 2,008 | 1,938 | 2,136 | 2,500 |
Delete performance scenario on Nordix : (Commit id : 230b111)
# | Test Scenario | Nordix Build 1 (ms) | Nordix Build 2 (ms) | Nordix Build 3 (ms) | Nordix Build 4 (ms) | Average (ms) | Groovy test deleteDurationInMillis (ms) |
---|---|---|---|---|---|---|---|
1 | Delete 5 children | 249 | 259 | 251 | 263 | 256 | 350 |
2 | Batch delete 100 children | 216 | 227 | 230 | 231 | 226 | 350 |
3 | Delete 50 grandchildren | 234 | 361 | 304 | 254 | 283 | 350 |
4 | Batch delete 500 grandchildren | 226 | 234 | 227 | 219 | 227 | 350 |
5 | Delete 5 whole lists | 1,120 | 1,156 | 1,047 | 1,124 | 1112 | 1,500 |
6 | Batch delete 100 whole lists | 310 | 311 | 340 | 329 | 323 | 350 |
7 | Delete 10 lists elements | 501 | 499 | 476 | 492 | 492 | 750 |
8 | Batch delete 500 lists elements | 230 | 238 | 227 | 223 | 230 | 350 |
9 | Delete one large node | 214 | 233 | 251 | 226 | 231 | 300 |
10 | Batch delete one large node | 156 | 182 | 156 | 176 | 168 | 300 |
11 | Delete root node | 168 | 173 | 166 | 166 | 168 | 300 |
12 | Delete data nodes for anchor | 170 | 172 | 164 | 168 | 168 | 300 |
Instrumentation sample #1
Register, read and de-register 1,000 CM Handles
Docker environment on Laptop
Name | Max | Count | Sum (sec) | Avg (sec) |
---|---|---|---|---|
CPS Custom Instrumentation | ||||
cps_utils_yangparser_nodedata_with_parent_parse | 0.121 | 3,000 | 1.128 | 0.000 |
cps_ncmp_lcm_events_publish | 0.131 | 4,000 | 1.061 | 0.000 |
cps_ncmp_cmhandle_state_update_batch | 5.886 | 15 | 33.485 | 2.232 |
cps_ncmp_inventory_persistence_schemaset_delete | 0.130 | 1,000 | 13.132 | 0.013 |
cps_data_service_datanode_batch_delete | 0.060 | 1,000 | 1.525 | 0.002 |
cps_ncmp_inventory_controller_update | 49.925 | 2 | 62.482 | 31.241 |
cps_data_service_list_delete | 0.172 | 1,000 | 25.226 | 0.025 |
cps_data_service_datanode_get | 0.558 | 4,057 | 283.310 | 0.070 |
cps_data_service_list_element_batch_save | 0.000 | 15 | 11.980 | 0.799 |
cps_data_service_datanode_descendants_batch_updat | 5.776 | 15 | 19.923 | 1.328 |
cps_ncmp_inventory_persistence_datanode_get | 0.230 | 2 | 0.242 | 0.121 |
Hibernation Auto Generated Instrumentation | ||||
FragmentRepository | ||||
findByAnchorAndCpsPath | 118 | 0.985 | 0.008 | |
identifyNewModuleReferences | 1,000 | 6.559 | 0.007 | |
findByName | 2,242 | 17.978 | 0.008 | |
deleteOrphans | 1,000 | 5.670 | 0.006 | |
getResourceIdsByModuleReferences | 1,000 | 6.366 | 0.006 | |
findAllBySchemaSet | 1,000 | 0.379 | 0.000 | |
save | 1,000 | 1.475 | 0.001 | |
findAllByChecksumIn | 1,004 | 1.857 | 0.002 | |
findByAnchorIdAndParentXpath | 3,002 | 12.050 | 0.004 | |
findByAnchorAndMultipleCpsPaths | 1 | 0.077 | 0.077 | |
findRootsByAnchorId | 2,059 | 102.334 | 0.050 | |
deleteByAnchorIn | 1,000 | 0.630 | 0.001 | |
findByDataspaceAndAnchorAndXpath | 4,000 | 2.365 | 0.001 | |
DataspaceRepository | ||||
findAll | 1 | 0.006 | 0.006 | |
saveAll | 1,019 | 6.940 | 0.007 | |
AnchorRepository | ||||
findByDataspaceAndName | 16,237 | 10.307 | 0.001 | |
save | 1,000 | 1.138 | 0.001 | |
delete | 1,000 | 0.094 | 0.000 | |
YangResourceRepository | ||||
saveAll SUCCESS | 1 | 0.014 | 0.014 | |
savaAll ERROR | 4 | 0.208 | 0.052 | |
insertSchemaSetIdYangResourceId | 1,000 | 1.081 | 0.001 | |
SchemaSetRepository | ||||
findByDataspaceAndName | 5,001 | 3.525 | 0.001 | |
delete | 1,000 | 0.135 | 0.000 | |
save | 1,000 | 1.104 | 0.001 |
Instrumentation sample #2
Register, read and de-register 20,000 CM Handles
Docker environment on Laptop
Results: deregister-2023-02-27T20:23:58+00:00-20000-20000.tsv