[Ramsons] List App test report for Contains any, Contains all, Not contains any, Not contains all Operators
Overview
This document contains the results of testing List App refreshing of records in the Ramsons release for Contains any, Contains all, Not contains any, Not contains all Operators. https://folio-org.atlassian.net/browse/PERF-892
Summary
Some lists can’t be created at all, and even if they are, there's a high chance they’ll fail when trying to refresh.
Memory utilization increasing for mod-fgm-manager up to 80% during lists refresh then goes down in few minutes - OOM issue for mod-fqm-managerhttps://folio-org.atlassian.net/browse/MODFQMMGR-501 but only for creating new lists while the test query is running.
For mod-lists, CPU utilization was up to 237% for the test with 10 concurrent users and R/W split enabled. Average CPU usage did not exceed 14 % for all other modules.
Approximately DB CPU usage is up to 98.5%.
Recommendations and Jiras
To have the possibility of refreshing lists for a large number of records, we need to increase QUERY RETENTION DURATION (mod-fqm-manager) and mod-lists.general.refresh-query-timeout-minutes to at least 10 hours.
https://folio-org.atlassian.net/browse/MODFQMMGR-506
https://folio-org.atlassian.net/browse/MODLISTS-149
https://folio-org.atlassian.net/browse/MODLISTS-150
https://folio-org.atlassian.net/browse/MODFQMMGR-522
https://folio-org.atlassian.net/browse/MODFQMMGR-501
https://folio-org.atlassian.net/browse/MODFQMMGR-505
https://folio-org.atlassian.net/browse/MODFQMMGR-510
https://folio-org.atlassian.net/browse/MODLISTS-147
https://folio-org.atlassian.net/browse/MODFQMMGR-518
Results
List name | Search from the number of records | Records found | 1 user | 4 users | 8 users | 10 users | query |
|---|---|---|---|---|---|---|---|
Holdings all statistical code | 28,016,666 | 500,000 | 00:05:40 | 00:17:41 | 00:18:04 | 00:24:32 | "holdings.statistical_code_names contains all [PTF: PTF1 - PTF1, University of Chicago: ebooks - Books, electronic (ebooks)]" |
Holdings any statistical code | 28,016,666 | 5,347,866 | 02:03:17 | 04:56:23 | 05:01:34 | 09:04:10 | holdings.statistical_code_names contains any [PTF: PTF1 - PTF1, University of Chicago: ebooks - Books, electronic (ebooks)] |
Holdings not all statistical code | 28,016,666 | 5,453,772 | 02:24:23 if success
| 05:08:48 | 05:08:24 | 04:31:33 | holdings.statistical_code_names does not contain all [PTF: PTF1 - PTF1, University of Chicago: ebooks - Books, electronic (ebooks)] |
Holdings not any statistical code | 28,016,666 | 105,908 | 00:03:21 | 00:18:36 | 00:05:29 | 00:06:38 | holdings.statistical_code_names does not contain any [PTF: PTF1 - PTF1, University of Chicago: ebooks - Books, electronic (ebooks)] |
Items all statistical code | 27,957,839 | 100,000 | 00:06:02 | 00:09:55 | 00:07:03 | 00:12:37 | items.statistical_code_names contains all [University of Chicago: books - Books, print (books), University of Chicago: mfilm - Microfilm (mfilm)] |
Items any statistical code | 27,957,839 | 4,874,982 | 02:36:32 | 03:22:25 | FAILED SQL [select cast(array["item.item".id, 'tenant'] as varchar[]) from... | FAILED in 03:42:33 | items.statistical_code_names contains any [University of Chicago: books - Books, print (books), University of Chicago: mfilm - Microfilm (mfilm)] |
Items not all statistical code | 27,957,839 | 5,184,433 | 02:01:15 | 02:16:12 | 04:58:38 | FAILED in 03:43:02 | items.statistical_code_names does not contain all [University of Chicago: books - Books, print (books), University of Chicago: mfilm - Microfilm (mfilm)] |
Items not any statistical code | 27,957,839 | 409,451 | 00:08:39 | 00:17:33 | 00:19:32 | 00:21:39 | items.statistical_code_names does not contain any [University of Chicago: mfilm - Microfilm (mfilm), University of Chicago: books - Books, print (books)] |
Users all departments | 250,085 | 7,686 | 00:00:13 | 00:00:12 | 00:00:12 | 00:00:13 | users.departments contains all [9af255eb-b87c-4045-9407-d9c324bf0e8c, b1318aeb-0273-42b3-ba57-f1ee5d5cc59e] |
Users any departments | 250,085 | 29,216 | 00:00:18 | 00:00:19 | 00:00:22 | 00:00:22 | users.departments contains any [b1318aeb-0273-42b3-ba57-f1ee5d5cc59e, fa6b405f-311e-493c-be6f-41610552742c, 9af255eb-b87c-4045-9407-d9c324bf0e8c] |
Users not all departments | 250,085 | 36,445 | 00:00:24 | 00:00:24 | 00:00:25 | 00:00:27 | users.departments does not contain all [b1318aeb-0273-42b3-ba57-f1ee5d5cc59e, 2eceb91f-6230-4fdb-9d22-8b34216ab800, 9af255eb-b87c-4045-9407-d9c324bf0e8c] |
Users not any departments | 250,085 | 7,229 | 00:00:12 | 00:00:12 | 00:00:12 | 00:00:13 | users.departments does not contain any [b1318aeb-0273-42b3-ba57-f1ee5d5cc59e, fa6b405f-311e-493c-be6f-41610552742c, 9af255eb-b87c-4045-9407-d9c324bf0e8c] |
POL all Acquisition units | any | 0 | not able to find POL https://folio-org.atlassian.net/browse/MODFQMMGR-506 | - | - | - | vendor_organization.accounts[*]->acq_unit_ids contains all [d7515bef-206f-4f23-be80-563f9bca866b, 0ebb1f7d-983f-3026-8a4c-5318e0ebc041] |
POL any Acquisition units | any | 0 | not able to find POL https://folio-org.atlassian.net/browse/MODFQMMGR-506 | - | - | - | vendor_organization.accounts[*]->acq_unit_ids contains any [d7515bef-206f-4f23-be80-563f9bca866b, 0ebb1f7d-983f-3026-8a4c-5318e0ebc041] |
POL not all Acquisition units | any | 0 | not able to find POL https://folio-org.atlassian.net/browse/MODFQMMGR-506 | - | - | - | vendor_organization.accounts[*]->acq_unit_ids does not contain all [d7515bef-206f-4f23-be80-563f9bca866b, 0ebb1f7d-983f-3026-8a4c-5318e0ebc041] |
POL not any Acquisition units | any | 0 | not able to find POL https://folio-org.atlassian.net/browse/MODFQMMGR-506 | - | - | - | vendor_organization.accounts[*]->acq_unit_ids does not contain any [d7515bef-206f-4f23-be80-563f9bca866b, 0ebb1f7d-983f-3026-8a4c-5318e0ebc041] |
Instance all statistical code | 29,105,407 | 20,000 or "FAILED" | Condition with org.folio.list.services.refresh.ListRefreshService was not fulfilled within 1 hours 30 minutes. https://folio-org.atlassian.net/browse/MODLISTS-147 | FAILED in 02:35:45 | FAILED | 03:56:59 | instance.statistical_code_names contains all [University of Chicago: books - Books, print (books), RECM (Record management): XOCLC - Do not share with OCLC] |
Instance any statistical code | 29,105,407 | "FAILED" | Not able to create the list | - | - | instance.statistical_code_names contains any [PTF: PTF1 - PTF1, PTF: PTF3 - PTF3, University of Chicago: books - Books, print (books), RECM (Record management): XOCLC - Do not share with OCLC] | |
Instance not all statistical code | 29,105,407 | "FAILED" | Not able to create the list https://folio-org.atlassian.net/browse/MODFQMMGR-501 | - | - | instance.statistical_code_names not contain all [PTF: PTF1 - PTF1, PTF: PTF3 - PTF3, University of Chicago: books - Books, print (books), RECM (Record management): XOCLC - Do not share with OCLC] | |
Instance not any statistical code | 29,105,407 | 534,975 or "FAILED" | 02:51:29 | 02:47:14 | FAILED | 04:17:27 | instance.statistical_code_names not contain any [PTF: PTF1 - PTF1, PTF: PTF3 - PTF3, University of Chicago: books - Books, print (books), RECM (Record management): XOCLC - Do not share with OCLC] |
Instance CPU Utilization
Service Memory Utilization
mod-lists & mod-fqm-manager
Service CPU Utilization
Service CPU Utilization without mod-fqm-manager
Service CPU Utilization with mod-fqm-manager
mod-lists
RDS CPU Utilization
RDS Database Connections
Long-running queries:
select cast(array["instance.inst".id, ?] as varchar[]) from [tenant]_mod_fqm_manager.src_inventory_instance "instance.inst" left join [tenant]_mod_fqm_manager.src_inventory_mode_of_issuance "instance.mode_of_issuance" ON "instance.mode_of_issuance".id = "instance.inst".modeOfIssuanceId left join [tenant]_mod_fqm_manager.src_inventory_instance_type "instance.instance_type" ON "instance.instance_type".id = "instance.inst".instanceTypeId left join [tenant]_mod_fqm_manager.src_inventory_instAppendix
Infrastructure
Records count :
mod_inventory_storage.instance = 29105407
mod_inventory_storage.item = 27957839
mod_inventory_storage.holdings_record = 28016666
mod_users.users = 260000
PTF-environment rcp1
10 m6g.2xlarge EC2 instances located in US East (N. Virginia)us-east-1
2 instances of db.r6g.xlarge database, writer instance, and reader instance.
MSK - fse-tenant
4 kafka.m7g.xlarge brokers in 2 zonesApache Kafka version 3.7.x
EBS storage volume per broker 300 GiB
auto.create.topics.enable=true
log.retention.minutes=480
default.replication.factor=3
OpenSearch ptf-test cluster
OpenSearch version 2.13
Data nodes
Availability Zone(s) - 2-AZ without standby
Instance type - r6g.2xlarge.search
Number of nodes - 4
EBS volume size (GiB) - 300
Provisioned IOPS - 3000IOPS
Provisioned Throughput (MiB/s) - 250 MiB/s
Module versions
mod-fqm-manager -R/W split enabled
Cluster Resources - rcp1 |
|
|
|
|
|
|
|
|
|
Module | Task Definition Revision | Module Version | Task Count | Mem Hard Limit | Mem Soft Limit | CPU Units | Xmx | Metaspace Size | Max Metaspace Size |
mod-authtoken | 1 | mod-authtoken:2.16.0-SNAPSHOT.303 | 2 | 1440 | 1152 | 512 | 922 | 88 | 128 |
mod-configuration | 1 | mod-configuration:5.11.0-SNAPSHOT.355 | 2 | 1024 | 896 | 0 | 768 | 88 | 128 |
mod-orders-storage | 1 | mod-orders-storage:13.8.0-SNAPSHOT.243 | 2 | 1024 | 896 | 512 | 700 | 88 | 128 |
mod-fqm-manager | 10 | mod-fqm-manager:2.1.0-SNAPSHOT.1197 | 2 | 3000 | 2600 | 128 | 2048 | 384 | 512 |
mod-finance | 1 | mod-finance:5.0.0-SNAPSHOT.174 | 2 | 1024 | 896 | 0 | 700 | 88 | 128 |
mod-lists | 5 | mod-lists:2.1.0-SNAPSHOT.1303 | 2 | 1024 | 896 | 0 | 768 | 88 | 128 |