In Progress(in review) + retesting results will be add to these report in scope of the Jira Legacy |
---|
server | System Jira |
---|
serverId | 01505d01-b853-3c2e-90f1-ee9b165564fc |
---|
key | PERF-681 |
---|
|
...
- One record on one tenant could be discarded with error: io.netty.channel.StacklessClosedChannelException.
Jira Legacy |
---|
server | System Jira |
---|
serverId | 01505d01-b853-3c2e-90f1-ee9b165564fc |
---|
key | MODDATAIMP-748 |
---|
|
Reproduces in both cases with and without splitting feature enabled in at least 30% of test runs with 500k record files and multitenant testing. - During the new Data Import splitting feature testing, items for update were discarded with the error: io.vertx.core.impl.NoStackTraceThrowable: Cannot get actual Item by id: org.folio.inventory.exceptions.InternalServerErrorException: Access for user 'data-import-system-user' (f3486d35-f7f7-4a69-bcd0-d8e5a35cb292) requires permission: inventory-storage.items.item.get. Less than 1% of records could be discarded due to missing permission for 'data-import-system-user'. Permission was not added automatically during the service deployment. I added permission manually to the database and the error does not occur anymore.
Jira Legacy |
---|
server | System Jira |
---|
serverId | 01505d01-b853-3c2e-90f1-ee9b165564fc |
---|
key | MODDATAIMP-930 |
---|
|
- UI issue, when canceled or completed with error Job progress bar cannot be deleted from the screen.
Jira Legacy |
---|
server | System Jira |
---|
serverId | 01505d01-b853-3c2e-90f1-ee9b165564fc |
---|
key | MODDATAIMP-929 |
---|
|
- Usage:
- Should not use less than 1000 for RECORDS_PER_SPLIT_FILE. The system is stable enough to ingest 1000 records consistently and smaller amounts will incur more overheads, resulting in longer jobs' durations. Â CPU utilization for mod-di-converter-storage for 500 RECORDS_PER_SPLIT_FILE(RPSF) = 160%, for 1000RPSF =180%, for 5K RPSF =380% and for 10K RPSF =433%, so in the case of selecting configurations 5K or 10K we recommend to add more CPU to mod-di-converter-storage service.
- When toggling the file-splitting feature, mod-source-record-storage, mod-source-record-manager's tasks need to be restarted.
- Keep in mind about the Kafka broker's disk size (as bigger jobs - up to 500K - can be run now), consecutive jobs may use up the disk quickly because the messages' retention time currently is set at 8 hours. For example with 300GB disk size, consecutive jobs of 250K, 500K, 500K sizes will exhaust the disk.Â
- More CPU could be allocated to mod-inventory and mod-di-converter-storage
...
 ** - up to 10 items were discarded with the error: io.vertx.core.impl.NoStackTraceThrowable: Cannot get actual Item by id: org.folio.inventory.exceptions.InternalServerErrorException: Access for user 'data-import-system-user' (f3486d35-f7f7-4a69-bcd0-d8e5a35cb292) requires permission: inventory-storage.items.item.get. Less than 1% of records could be discarded due to missing permission for 'data-import-system-user'. Permission was not added automatically during the service deployment. I added permission manually to the database and the error does not occur anymore. Jira Legacy |
---|
server | System Jira |
---|
serverId | 01505d01-b853-3c2e-90f1-ee9b165564fc |
---|
key | MODDATAIMP-930 |
---|
|
...
With CI/CO 20 users and DI 25k records on each of the 3 tenants Splitting Feature Disabled
ocp3-mod-data-import:12
Image Modified
Data Import Robustness Enhancement
...
Memory utilization rich maximal value for mod-source-record-storage-b 88%Â and for mod-source-record-manager-b 85%.
Test 2. Test with 1, 2, and 3 tenants' concurrent jobs with configuration RECORDS_PER_SPLIT_FILE = 10K, 2 runs for each test.
...
Test 2. Test with 1, 2, and 3 tenants' concurrent jobs with configuration RECORDS_PER_SPLIT_FILE = 10K, 2 runs for each test.
Â
RDS CPU UtilizationÂ
Test 1. Test with 1, 2, and 3 tenants' concurrent jobs with configuration RECORDS_PER_SPLIT_FILE = 500, 2 runs for each test. Maximal  CPU Utilization = 95%
...
Service CPU UtilizationÂ
Memory Utilization
Image Modified
RDS CPU Utilization Â
RDS Database Connections
Image Modified
Appendix
Infrastructure ocp3Â with the "Bugfest" Dataset
Records count :
- tenant0_mod_source_record_storage.marc_records_lb = 9674629
- tenant2_mod_source_record_storage.marc_records_lb = 0
- tenant3_mod_source_record_storage.marc_records_lb = 0
- tenant0_mod_source_record_storage.raw_records_lb = 9604805
- tenant2_mod_source_record_storage.raw_records_lb = 0
- tenant3_mod_source_record_storage.raw_records_lb = 0
- tenant0_mod_source_record_storage.records_lb = 9674677
- tenant2_mod_source_record_storage.records_lb = 0
- tenant3_mod_source_record_storage.records_lb = 0
- tenant0_mod_source_record_storage.marc_indexers = Â 620042011
- tenant2_mod_source_record_storage.marc_indexers =Â 0
- tenant3_mod_source_record_storage.marc_indexers =Â 0
- tenant0_mod_source_record_storage.marc_indexers with field_no 010 = 3285833
- tenant2_mod_source_record_storage.marc_indexers with field_no 010 = 0
- tenant3_mod_source_record_storage.marc_indexers with field_no 010 = 0
- tenant0_mod_source_record_storage.marc_indexers with field_no 035 = 19241844
- tenant2_mod_source_record_storage.marc_indexers with field_no 035 = 0
- tenant3_mod_source_record_storage.marc_indexers with field_no 035 = 0
- tenant0_mod_inventory_storage.authority = 4
- tenant2_mod_inventory_storage.authority = 0
- tenant3_mod_inventory_storage.authority = 0
- tenant0_mod_inventory_storage.holdings_record = 9592559
- tenant2_mod_inventory_storage.holdings_record = 16
- tenant3_mod_inventory_storage.holdings_record = 16
- tenant0_mod_inventory_storage.instance = 9976519
- tenant2_mod_inventory_storage.instance = 32
- tenant3_mod_inventory_storage.instance = 32Â
- tenant0_mod_inventory_storage.item = 10787893
- tenant2_mod_inventory_storage.item = 19
- tenant3_mod_inventory_storage.item = 19
PTF -environment ocp3Â
...
2 database instances, one reader, and one writer
...
...
Before Splitting Feature released
...
Test 1.2. Data-import of 250K records file with "PTF - Update" job profile
Service CPU UtilizationÂ
Image Added
Memory Utilization
Image Added
RDS CPU UtilizationÂ
Image Added
RDS Database Connections
Image Added
Test 1.3. Multitenant MARC Create (100k, 50k, and 1 record)
Service CPU UtilizationÂ
Image Added
Memory Utilization
Image Added
RDS CPU UtilizationÂ
Image Added
RDS Database Connections
Image Added
Test 1.4. Data-import of 250K records file with "PTF - Update" job profile
Service CPU UtilizationÂ
Image Added
Memory UtilizationÂ
Image Added
RDS CPU UtilizationÂ
Image Added
RDS Database Connections
Image Added
CICO responce time graph
Image Added
Appendix
Infrastructure ocp3Â with the "Bugfest" Dataset
Records count :
- tenant0_mod_source_record_storage.marc_records_lb = 9674629
- tenant2_mod_source_record_storage.marc_records_lb = 0
- tenant3_mod_source_record_storage.marc_records_lb = 0
- tenant0_mod_source_record_storage.raw_records_lb = 9604805
- tenant2_mod_source_record_storage.raw_records_lb = 0
- tenant3_mod_source_record_storage.raw_records_lb = 0
- tenant0_mod_source_record_storage.records_lb = 9674677
- tenant2_mod_source_record_storage.records_lb = 0
- tenant3_mod_source_record_storage.records_lb = 0
- tenant0_mod_source_record_storage.marc_indexers = Â 620042011
- tenant2_mod_source_record_storage.marc_indexers =Â 0
- tenant3_mod_source_record_storage.marc_indexers =Â 0
- tenant0_mod_source_record_storage.marc_indexers with field_no 010 = 3285833
- tenant2_mod_source_record_storage.marc_indexers with field_no 010 = 0
- tenant3_mod_source_record_storage.marc_indexers with field_no 010 = 0
- tenant0_mod_source_record_storage.marc_indexers with field_no 035 = 19241844
- tenant2_mod_source_record_storage.marc_indexers with field_no 035 = 0
- tenant3_mod_source_record_storage.marc_indexers with field_no 035 = 0
- tenant0_mod_inventory_storage.authority = 4
- tenant2_mod_inventory_storage.authority = 0
- tenant3_mod_inventory_storage.authority = 0
- tenant0_mod_inventory_storage.holdings_record = 9592559
- tenant2_mod_inventory_storage.holdings_record = 16
- tenant3_mod_inventory_storage.holdings_record = 16
- tenant0_mod_inventory_storage.instance = 9976519
- tenant2_mod_inventory_storage.instance = 32
- tenant3_mod_inventory_storage.instance = 32Â
- tenant0_mod_inventory_storage.item = 10787893
- tenant2_mod_inventory_storage.item = 19
- tenant3_mod_inventory_storage.item = 19
PTF -environment ocp3Â
- 10 m6i.2xlarge EC2 instances located in US East (N. Virginia)us-east-1
2 database instances, one reader, and one writer
Name | API Name | Memory GIB | vCPUs | max_connections |
R6G Extra Large | db.r6g.xlarge | 32 GiB | 4 vCPUs | 2731 |
- MSKÂ ptf-kakfa-3
- Kafka topics partitioning: - 2 partitions for DI topics
Before Splitting Feature released
Service versions for Splitting Feature test
Module ocp3-pvt Mon Sep 25 12:43:06 UTC 2023 | Task Def. Revision | Module Version | Task Count | Mem Hard Limit | Mem Soft limit | CPU units | Xmx | MetaspaceSize | MaxMetaspaceSize | R/W |
---|
split enabledmod-remote-storage | 13 | mod-remote-storage:2.0.3 | 2 | 4920 | 4472 | 1024 | 3960 | 512 | 512 | false |
mod-agreements | 8 | mod-agreements:5.5.2 | 2 | 1592 | 1488 | 128 | 968 | 384 | 512 | false |
split enabled |
---|
mod-data-import |
71authtoken7authtoken213014401152512922configurationconfiguration59110248961287688812811888943500 | 384 | 512 | false | nginx-edge | 7 | nginx-edge:2023.06.14 | 2 | 1024 | 896 | 128 | 0 | 0 | 072 | 1024 | 896 | 128 | 768 | 88 | 128 | false | mod-patron | 7 | mod-patron:5.5.2Service versions for retesting Splitting Feature test on Poppy release.Â
ocp3-pvtMon Sep 25 12:43:06 UTC 2023Task Def. Revision | Module Version | Task Count | Mem Hard Limit | Mem Soft limit | CPU units | Xmx | MetaspaceSize | MaxMetaspaceSize | R/W split enabled |
mod-data-import |
10 | 27.2-SNAPSHOT.1370.3 | 1 | 2048 | 1844 | 256 | 1292 | 384 | 512 |
false | mod-search | 30 | 210 | 2 | 2592 | 2480 | 2048 | 1440 | 512 | 1024 |
false81false7.6false | FALSE |
edge-ncip | 8 | edge-ncip:1.9.0 | 2 | 1024 | 896 | 128 | 768 | 88 | 128 | FALSE |
mod-inventory-storage |
1261-SNAPSHOT.66502208195210241440falseFALSE |
mod-circulation-storage |
1516.1falseFALSE |
mod-source-record-storage |
1267false742false12.6false92356falseFALSE |
mod-di-converter-storage |
8.5false991false911false98falseFALSE |
mod-source-record-manager |
126.5-SNAPSHOT.2457.0 | 2 | 5600 | 5000 | 2048 | 3500 | 384 | 512 |
false735.0.0 | 1 | 2288 | 2176 | 128 | 1664 | 384 | 512 |
false7false801.1 | 3 | 1684 | 1440 | 1024 | 922 | 384 | 512 |
false81821false7.1false7false
Methodology/Approach
To set splitting feature: Detailed Release Notes for Data Import Splitting Feature
...