Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
outlinetrue

...

Test with 1k, 10k, 25k and 50k records files DI started on one tenant only(qcp1-00)and comparative results between Poppy and Quesnelia.

...

  • Сomparative Baseline Check-In\Check-Out results without Data Import between Poppy and Quesnelia.

CICO, Median time without
DI
(Poppy)

CICO, 95% time without
DI
(Poppy)
CICO, Median time without
DI
(Quesnelia)
CICO, 95% time without
DI
(Quesnelia)
CICO, Avg time without
DI
(Quesnelia)
Check-In516 ms567 ms503 ms
-2.5%

593 ms
+4.5%

511 ms

Check-Out910 ms2094 ms 836 ms
-8%
1117 ms
-46%
876 ms


...

  • Сomparative Data Import and Check-In\Check-Out results between Poppy and Quesnelia.

# of records 
(Poppy)

DI Duration with CICO
(Poppy)

CI time Avg
(Poppy)

CI time 95th pct
(Poppy)

CO time Avg
(Poppy)

CO time 95th pct
(Poppy)

# of records
(Quesnelia)

DI Duration with CICO
(Quesnelia)

CI time Avg
(Quesnelia)
CI time 95th pct
(Quesnelia)
CO time Avg
(Quesnelia)
CO time 95th pct
(Quesnelia)
1,00035 sec0.5250.5761.0781.3261,000

20 sec
-42.8%

0.560
+6%
0.754
+30%
1.164
+8%
1.313
-1%
5,0001 min 41 sec0.5130.6120.91.0195,0001 min 19 sec
-21.7%
0.701
+36%
1.171
+91%
1.141
+26%
1.790
+75%
10,0003 min 4 sec0.5810.6851.0161.32110,0002 min 35 sec
-15.7%
0.723
+24%
1.024
+49%
1.179
+16%
1.494
+13%
22,7786 min 32 sec0.5981.5421.2441.72925,0006 min 26 sec
-1.5%
0.722
+20%
1.024
-33%
1.180
-5%
1.494
-13%
50,00013 min 48 sec0.6711.9531.512.0950,000

12 min 16 sec
-11%

0.777
+15%
1.045
-46%

1.265
-16%

1.550
-25%


...

PTF - environment Quesnelia (qcp1)

  • 10 db.r6g.xlarge EC2 instances located in US East (N. Virginia)us-east-1
  • 1 database  instances, writer


    NameMemory GIBvCPUs

    db.r6g.xlarge

    32 GiBvCPUs


  • MSK ptf-mobius-testing2
    • 4 m5.2xlarge brokers in 2 zones
    • Apache Kafka version 2.8.0

    • EBS storage volume per broker 300 GiB

    • auto.create.topics.enable=true
    • log.retention.minutes=480
    • default.replication.factor=3

...

  • 09:55:16 [526300/metadata-provider] [fs07000001] [] [mod-authtoken] ERROR Api Access for user 'folio' (9eb67301-6f6e-468f-9b1a-6134dc39a684) requires permission: metadata-provider.incomingrecords.get
  • 09:55:16 [815600/metadata-provider] [fs07000001] [9eb67301-6f6e-468f-9b1a-6134dc39a684] [mod_source_record_manager] ERROR PostgresClient queryAndAnalyze: ERROR: invalid input syntax for type uuid: "undefined" (22P02) - SELECT * FROM get_record_processing_log('3e63f944-40ea-477c-ac21-79bb24780bc5', 'undefined')
  • 09:55:16 [526300/metadata-provider] [fs07000001] [] [mod-authtoken] ERROR FilterApi Permission missing in []

...

Also we used different order for Tenants when load files, we decided started load files from Tenant 3(qcp1-02) → Tenant 2(qcp1-01) → Tenant 1(qcp1-00) to avoid problem when mod-permissions spiked and  system stacked.

...

CPU Utilization when mod-permissions spiked and  system stacked.


Recommendations & Jiras (Optional)

Link to Jira ticket: https://folio-org.atlassian.net/browse/PERF-801


Methodology/Approach

DI tests scenario a data import job profile that creates new MARC authority records for non-matches (Job Profile: KG - Create SRS MARC Authority on nonmatches to 010 $a DUBLICATE for Q) were started from UI on Quesnelia (qcp1) env with  file splitting features enabled on a non-ecs environment.

...

  • The above files are all stored here - MARC Resources
    - 22k file what was provided from MARC Resources  does nor work, so 50k file was split to file with 25k records and used instead of 22k file.
  • At the time of the test run, Grafana was not available. As a result, response times for Check-In/Check-Out were parsed manually from a .jtl file, using the start and finish dates of the data import tests. These results were visualized in JMeter using a Listener (Response Times Over Time).

Test set

  • Test 1: Manually tested 1k, 10k, 25k and 50k records files DI started on one tenant(qcp1-00) only.
  • Test 2: Manually tested 1k, 10k, 25k and 50k records files DI started on one tenant(qcp1-00) only plus Check-in and Checkout (CICO) for 5 concurrent users.
  • Test 3: Manually tested 1k, 10k, 25k and 50k records files DI started on 3 tenants concurrentlyOrder for load file without pause between files: 50k, 25k, 10k, 5k, and 1k for order tenantsTenant 3(qcp1-02), Tenant 2(qcp1-01) and Tenant 1(qcp1-00)
  • Test 4: Manually tested 1k, 10k, 25k and 50k records files DI started on 3 tenants concurrently. Order for load file with pause between files: 50k, 25k, 10k, 5k, and 1k for order tenantsTenant 3(qcp1-02), Tenant 1(qcp1-00) and Tenant 2(qcp1-01)
  • Test 5: Manually tested 1k, 10k, 25k and 50k records files DI started on 3 tenants concurrentlyOrder for load file without pause between files: 1k, 5k, 10k, 25k and 50k for order tenantsTenant 3(qcp1-02), Tenant 2(qcp1-01) and Tenant 1(qcp1-00)

...