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 |
4 | Number of CPS Instance | 1 |
5 | Number Modules per Cm Handle | 10 |
6 | Commit ID (before improvement) | |
7 | Commit ID (after improvement) | 7421c69 Use native query to delete data nodes |
# | 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 |
Test Results before any improvement
Total CM Handles | Total Time | CM handles/sec | |||
---|---|---|---|---|---|
# | Before deletion | After deletion | Deleted | ||
1 | 500 | 0 | 500 | 2m 9s | 3.86 |
2 | 1,000 | 0 | 1,000 | 8m 3s | 2.07 |
3 | 2,000 | 0 | 2,000 | 32m 8s | 1.04 |
4 | 2,300 | 0 | 2,300 | 37m 58s | 1.01 |
5 | 1,000 | 500 | 500 | 5m 58s | 1.40 |
6 | 1,500 | 1,000 | 500 | 9m 46s | 0.85 |
7 | 2,000 | 1,500 | 500 | 12m 5s | 0.69 |
8 | 2,000 | 1,000 | 1,000 | 23m 33s | 0.71 |
Test Results after improvement (Commit Id : 7421c69) Use native query to delete data nodes
Total CM Handles | Total Time | CM handles/sec | Speedup | |||
---|---|---|---|---|---|---|
# | Before deletion | After deletion | Deleted | |||
1 | 500 | 0 | 500 | 11.5 s | 43.33 | 11 x |
2 | 1,000 | 0 | 1,000 | 33.7 s | 29.69 | 14 x |
3 | 2,000 | 0 | 2,000 | 1m 45s | 19.08 | 18 x |
4 | 2,300 | 0 | 2,300 | 2m 22s | 16.23 | 16 x |
5 | 1,000 | 500 | 500 | 19.6 s | 25.48 | 18 x |
6 | 1,500 | 1,000 | 500 | 27.2 s | 18.41 | 22 x |
7 | 2,000 | 1,500 | 500 | 37.8 s | 13.22 | 19 x |
8 | 2,000 | 1,000 | 1,000 | 1m 10s | 14.22 | 20 x |
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 |
Performance of CM Handle Deregistration.xlsx
Instrumentation sample
- Register, read and de-register 1,000 CM Handles
- Docker environment on Laptop
- Commit: https://gerrit.onap.org/r/c/cps/+/132960
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 |