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 (improvement 1) | 7421c69 Use native query to delete data nodes |
8 | Commit ID (improvement 2) | a0aa860 CmHandle batch deletion |
# | 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
Total CM Handles | Total Time | CM handles/sec | ||||||
---|---|---|---|---|---|---|---|---|
# | Before | Deleted | 9c56b30 | 7421c69 | 9c56b30 | a0aa860 | ||
1 | 500 | 500 | 2m 9s | 12 s | 6 s | 3.86 | 43 | 87 |
2 | 1,000 | 1,000 | 8m 3s | 34 s | 12 s | 2.07 | 30 | 85 |
3 | 2,000 | 2,000 | 32m 8s | 105s | 32 s | 1.04 | 19 | 62 |
4 | 3,000 | 3,000 | - | 3m 41s | 1m 4s | - | 14 | 47 |
5 | 4,000 | 4,000 | - | 8m 53s | 1m 33s | - | 8 | 43 |
6 | 5,000 | 5,000 | - | 11m 23s | 2m 19s | - | 7 | 36 |
7 | 1,000 | 500 | 5m 58s | 19.6 s | 6.4 s | 1.40 | 26 | 78 |
8 | 1,500 | 500 | 9m 46s | 27.2 s | 7.8 s | 0.85 | 18 | 65 |
9 | 2,000 | 500 | 12m 5s | 37.8 s | 9.6 s | 0.69 | 13 | 52 |
10 | 2,500 | 500 | - | 42.3 s | 9.7 s | - | 12 | 51 |
11 | 2,000 | 1,000 | 23m 33s | 70.0 s | 17.0 s | 0.71 | 14 | 59 |
Test Results before any improvement (Commit Id: 9c56b30)
Total CM Handles | Total Time | CM handles/sec | ||
---|---|---|---|---|
# | Before deletion | Deleted | ||
1 | 500 | 500 | 2m 9s | 3.86 |
2 | 1,000 | 1,000 | 8m 3s | 2.07 |
3 | 2,000 | 2,000 | 32m 8s | 1.04 |
4 | 1,000 | 500 | 5m 58s | 1.40 |
5 | 1,500 | 500 | 9m 46s | 0.85 |
6 | 2,000 | 500 | 12m 5s | 0.69 |
7 | 2,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 over 9c56b30 | ||
---|---|---|---|---|---|
# | Before deletion | Deleted | |||
1 | 500 | 500 | 11.5 s | 43 | 11 |
2 | 1,000 | 1,000 | 33.7 s | 30 | 14 |
3 | 2,000 | 2,000 | 1m 45s | 19 | 18 |
4 | 3,000 | 3,000 | 3m 41s | 14 | - |
5 | 4,000 | 4,000 | 8m 53s | 8 | - |
6 | 5,000 | 5,000 | 11m 23s | 7 | - |
7 | 1,000 | 500 | 19.6 s | 26 | 18 |
8 | 1,500 | 500 | 27.2 s | 18 | 22 |
9 | 2,000 | 500 | 37.8 s | 13 | 19 |
10 | 2,500 | 500 | 42.3 s | 12 | - |
11 | 2,000 | 1,000 | 1m 10s | 14 | 20 |
Test Results after improvement (Commit Id : a0aa860 CmHandle batch deletion)
Total CM Handles | Total Time | CM handles/sec | Speedup over 7421c69 | ||
---|---|---|---|---|---|
# | Before deletion | Deleted | |||
1 | 500 | 500 | 5.7 s | 87 | 2.0 |
2 | 1,000 | 1,000 | 11.7 s | 85 | 2.9 |
3 | 2,000 | 2,000 | 32.2 s | 62 | 3.3 |
4 | 3,000 | 3,000 | 1m 4s | 47 | 3.5 |
5 | 4,000 | 4,000 | 1m 33s | 43 | 5.7 |
6 | 5,000 | 5,000 | 2m 19s | 36 | 4.9 |
7 | 1,000 | 500 | 6.4 s | 78 | 3.1 |
8 | 1,500 | 500 | 7.8 s | 65 | 3.5 |
9 | 2,000 | 500 | 9.6 s | 52 | 3.9 |
10 | 2,500 | 500 | 9.7 s | 51 | 4.4 |
11 | 2,000 | 1,000 | 17.0 s | 59 | 3.7 |
Performance of CM Handle Deregistration 2023-02-02.xlsx
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
- 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 |