PTF - Data Import Create/Update multi tenant (Quesnelia) [ECS]

Overview

  • This document contains the results of testing  Data Import for MARC Bibliographic records with an create and update jobs on the Quesnelia [ECS] release on qcon environment. 

PERF-859 - Getting issue details... STATUS  

Summary

  • Data Import tests finished successfully on qcon environment using the PTF - Create 2 profile and file with 10k, 25k and 50k records.
  • Data Import test for PTF - Updates Success - 2 profile with 25k records file on 3 tenants concurrently finished with errors for two records. 
  • Comparing with previous testing results Poppy and Quesnelia releases
    • Data Import processed DI MARC Bib Create jobs including test on 2 and 3 tenants concurrently without errors for Quesnelia releases.
    • Data Import processed DI MARC Bib Update job with 25k file for 3 tenants concurrently with two errors.
    • Data Import durations for Create job has performance improvement around 50% for Quesnelia releases.
    • Data Import durations for Update job stayed in the same time range in Average for Quesnelia releases.
  • When comparing the durations of the 'main' job on the first tenant and observing how the second and third jobs affect and slow down the main job, it becomes evident that processing times are twice as slow for three tenants compared to two tenants when handling a 10k file.
  • Additionally, for a DI MARC Bib Update job with 25k file , the duration increases by only 6%.

Test Runs and Results

This table contains durations for Data Import. 

ProfileTest #TenantMARC File

DI Duration by Tenant Quesnelia
(hh:mm:ss)

Results
DI MARC Bib Create (PTF - Create 2)




1

College
(cs00000int_0001)
10K.mrc0:04:52Completed
Professional 
(cs00000int_0002)
10K.mrc0:05:24Completed
2


College
(cs00000int_0001)
10K.mrc0:06:35Completed
Professional 
(cs00000int_0002)
10K.mrc0:06:18Completed
School
(cs00000int_0003)
10K.mrc0:08:13Completed
3College
(cs00000int_0001)
25K.mrc0:11:04Completed
Professional 
(cs00000int_0002)
25K.mrc0:16:16Completed
4College
(cs00000int_0001)
25K.mrc0:11:47Completed
Professional 
(cs00000int_0002
25K.mrc0:19:12Completed
School
(cs00000int_0003)
25K.mrc0:23:41Completed
5College
(cs00000int_0001)
50K.mrc0:36:02Completed
Professional 
(cs00000int_0002)
50K.mrc0:42:50Completed
School
(cs00000int_0003)
50K.mrc0:47:13Completed
DI MARC Bib Update (PTF - Updates Success - 2)











6College
(cs00000int_0001)
10K.mrc0:11:53Completed
Professional 
(cs00000int_0002)
10K.mrc0:14:49Completed
7College
(cs00000int_0001)
10K.mrc0:20:39Completed
Professional 
(cs00000int_0002)
10K.mrc0:20:07Completed
School
(cs00000int_0003)
10K.mrc0:21:05Completed
8College
(cs00000int_0001)
25K.mrc0:38:41Completed
Professional 
(cs00000int_0002)
25K.mrc0:39:09Completed
9College
(cs00000int_0001)
25K.mrc0:41:32Completed
with errors*
Professional 
(cs00000int_0002)
25K.mrc0:42:34Completed
School
(cs00000int_0003)
25K.mrc0:16:27Completed
10


College
(cs00000int_0001)
50K.mrc1:43:17Completed
Professional 
(cs00000int_0002)
50K.mrc1:50:34Completed
School
(cs00000int_0003)
50K.mrc1:59:29Completed


This table contains durations for Data Import by each tests. 

ProfileTest #TenantsMARC FileDI Duration by Test Quesnelia
(hh:mm:ss)

DI MARC Bib Create (PTF - Create 2)

1

College (cs00000int_0001)
Professional (cs00000int_0002)

10K.mrc0:09:17
2College (cs00000int_0001)
Professional (cs00000int_0002)
School (cs00000int_0003)
10K.mrc0:12:01
3College (cs00000int_0001)
Professional (cs00000int_0002)
25K.mrc0:20:09
4College (cs00000int_0001)
Professional (cs00000int_0002)
School (cs00000int_0003)
25K.mrc0:30:54
5College (cs00000int_0001)
Professional (cs00000int_0002)
School (cs00000int_0003)
50K.mrc1:00:44

DI MARC Bib Update (PTF - Updates Success - 2)

6College (cs00000int_0001)
Professional (cs00000int_0002)
10K.mrc00:20:07
7College (cs00000int_0001)
Professional (cs00000int_0002)
School (cs00000int_0003)
10K.mrc00:27:56
8College (cs00000int_0001)
Professional (cs00000int_0002)
25K.mrc00:47:08
9College (cs00000int_0001)
Professional (cs00000int_0002)
School (cs00000int_0003)
25K.mrc00:26:46
10College (cs00000int_0001)
Professional (cs00000int_0002)
School (cs00000int_0003)
50K.mrc02:22:13

Comparison

This table compares the DI durations of the 'main' job on the first tenant and how the second and third jobs affect and slow down the main job during Data Import.

ProfileMARC FileDI Duration "main" job
for 1 tenants
DI Duration "main" job
for 2 tenants
DI Duration "main" job
for 3 tenants

DI MARC Bib Create (PTF - Create 2)

10K.mrc

0:05:35

*test run in other day

0:04:520:06:35
25K.mrc0:15:27
*test run in other day
0:11:040:11:47

DI MARC Bib Update (PTF - Updates Success - 2)

10K.mrc0:07:550:11:530:20:39
25K.mrc0:22:390:38:410:41:32

This table contains сompare durations for second and third jobs compare to the main job for Data Import. 

ProfileTest #TenantMARC File

DI Duration for second and third jobs
сompare to main job
(hh:mm:ss)

DI MARC Bib Create (PTF - Create 2)




1

College
(cs00000int_0001)
10K.mrc0:04:52
Professional 
(cs00000int_0002)
10K.mrc0:05:24
+11%
2


College
(cs00000int_0001)
10K.mrc0:06:35
Professional 
(cs00000int_0002)
10K.mrc0:06:18
-4%
School
(cs00000int_0003)
10K.mrc0:08:13
+25%
3College
(cs00000int_0001)
25K.mrc0:11:04
Professional 
(cs00000int_0002)
25K.mrc0:16:16
+47%
4College
(cs00000int_0001)
25K.mrc0:11:47
Professional 
(cs00000int_0002
25K.mrc0:19:12
+63%
School
(cs00000int_0003)
25K.mrc0:23:41
+101%
5College
(cs00000int_0001)
50K.mrc0:36:02
Professional 
(cs00000int_0002)
50K.mrc0:42:50
+19%
School
(cs00000int_0003)
50K.mrc0:47:13
+31%
DI MARC Bib Update (PTF - Updates Success - 2)











6College
(cs00000int_0001)
10K.mrc0:11:53
Professional 
(cs00000int_0002)
10K.mrc0:14:49
+24%
7College
(cs00000int_0001)
10K.mrc0:20:39
Professional 
(cs00000int_0002)
10K.mrc0:20:07
-3%
School
(cs00000int_0003)
10K.mrc0:21:05
+2%
8College
(cs00000int_0001)
25K.mrc0:38:41
Professional 
(cs00000int_0002)
25K.mrc0:39:09
+1%
9College
(cs00000int_0001)
25K.mrc0:41:32
Professional 
(cs00000int_0002)
25K.mrc0:42:34
+2.5%
School
(cs00000int_0003)
25K.mrc0:16:27
-60%
10


College
(cs00000int_0001)
50K.mrc1:43:17
Professional 
(cs00000int_0002)
50K.mrc1:50:34
+7%
School
(cs00000int_0003)
50K.mrc1:59:29
+16%

This table contains durations comparison between Poppy and Quesnelia releases.

ProfileTest #TenantMARC FileDI Duration
Poppy 
(hh:mm:ss)
DI Duration
Quesnelia
(hh:mm:ss)
DI Delta
(hh:mm:ss)
DI MARC Bib Create




1

College
(cs00000int_0001)
10K.mrc00:10:430:04:52-0:05:51
-54%
Professional 
(cs00000int_0002)
10K.mrc00:10:370:05:24-0:05:13
-49%
2


College
(cs00000int_0001)
10K.mrc00:21:120:06:35-0:14:37
-69%
Professional 
(cs00000int_0002)
10K.mrc00:21:060:06:18-0:14:48
-70%
School
(cs00000int_0003)
10K.mrc00:20:570:08:13-0:12:44
-61%
3College
(cs00000int_0001)
25K.mrc00:23:440:11:04-0:12:40
-53%
Professional 
(cs00000int_0002)
25K.mrc00:23:300:16:16-0:07:14
-31%
4College
(cs00000int_0001)
25K.mrc00:37:110:11:47-0:25:24
-68%
Professional 
(cs00000int_0002
25K.mrc00:37:050:19:12-0:17:53
-48%
School
(cs00000int_0003)
25K.mrc00:36:580:23:41-0:13:17
-36%
5College
(cs00000int_0001)
50K.mrc01:12:540:36:02-0:36:52
-50%
Professional 
(cs00000int_0002)
50K.mrc01:12:440:42:50-0:29:54
-41%
School
(cs00000int_0003)
50K.mrc01:12:350:47:13-0:25:22
-35%
DI MARC Bib Update 











6College
(cs00000int_0001)
10K.mrc00:09:470:11:53+0:02:06
+21%
Professional 
(cs00000int_0002)
10K.mrc00:11:260:14:49+0:03:23
+29%
7College
(cs00000int_0001)
10K.mrc00:19:080:20:39+0:01:31
+8%
Professional 
(cs00000int_0002)
10K.mrc00:19:060:20:07+0:01:01
+5%
School
(cs00000int_0003)
10K.mrc00:18:310:21:05+0:02:34
+14%
8College
(cs00000int_0001)
25K.mrc00:30:490:38:41+0:07:52
+25%
Professional 
(cs00000int_0002)
25K.mrc00:30:520:39:09+0:08:17
+27%
9College
(cs00000int_0001)
25K.mrc00:47:470:41:32-0:06:15
-13%
Professional 
(cs00000int_0002)
25K.mrc00:48:170:42:34-0:05:43
-11%
School
(cs00000int_0003)
25K.mrc00:47:540:16:27-0:31:27
-65%
10


College
(cs00000int_0001)
50K.mrcnot tested1:43:17
Professional 
(cs00000int_0002)
50K.mrcnot tested1:50:34
School
(cs00000int_0003)
50K.mrcnot tested1:59:29


Resource utilization for Test Set №1

 Resource utilization table
CPURAM
mod-data-import-b107%mod-inventory-b73%
mod-inventory-b79%mod-source-record-manager-b50%
nginx-okapi47%mod-source-record-storage-b44%
mod-di-converter-storage-b44%mod-data-import-b38%
okapi-b27%mod-di-converter-storage-b34%
mod-inventory-storage-b22%okapi-b33%
mod-source-record-storage-b15%mod-feesfines-b30%
mod-source-record-manager-b13%mod-patron-blocks-b27%
mod-quick-marc-b7.40%mod-configuration-b26%
mod-pubsub-b7.20%mod-quick-marc-b26%
mod-authtoken-b6.00%mod-circulation-storage-b25%
mod-remote-storage-b3.50%mod-users-bl-b24%
mod-configuration-b2.90%mod-pubsub-b24%
mod-circulation-item-b2.70%mod-authtoken-b19%
mod-feesfines-b2.40%mod-inventory-storage-b17%
mod-circulation-storage-b1.80%mod-remote-storage-b17%
mod-users-bl-b0.70%mod-circulation-b14%
mod-patron-blocks-b0.30%nginx-okapi4.60%
pub-okapi0.10%pub-okapi4.40%

Service CPU Utilization

Here we can see that mod-data-import used 105% CPU in spike and mod-inventory used 95% CPU in spike.

Service Memory Utilization

Here we can see that all modules show a stable trend.

DB CPU Utilization

DB CPU was 96%.

DB Connections

Max number of DB connections was 1650.

DB load

                                                                                                                     

Top SQL-queries


#TOP 5 SQL statements
1
  INSERT INTO cs00000int_mod_search.consortium_instance (tenant_id, instance_id, json, created_date, updated_date)
  VALUES ($1, $2, $3::json, $4, $5)
  ON CONFLICT (tenant_id, instance_id)
  DO UPDATE SET json = EXCLUDED.json, updated_date = EXCLUDED.updated_date
2
insert into "marc_records_lb" ("id", "content") values (cast($1 as uuid), cast($2 as jsonb)) on conflict ("id") do update set "content" = cast($3 as jsonb)
3
INSERT INTO cs00000int_0002_mod_source_record_manager.events_processed (handler_id, event_id) VALUES ($1, $2)
4
INSERT INTO cs00000int_0001_mod_source_record_manager.journal_records (id, job_execution_id, source_id, source_record_order, entity_type, entity_id, entity_hrid, action_type, action_status, error, action_date, title, instance_id, holdings_id, order_id, permanent_location_id, tenant_id) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17)
5
insert into "marc_records_lb" ("id", "content") values (cast($1 as uuid), cast($2 as jsonb)) on conflict ("id") do update set "content" = cast($3 as jsonb)

Resource utilization for Test Set №2

 Resource utilization table
CPURAM
nginx-okapi193%mod-source-record-storage-b63%
mod-inventory-b99%mod-inventory-b59%
mod-di-converter-storage-b94%mod-source-record-manager-b51%
okapi-b62%mod-data-import-b36%
mod-source-record-storage-b44%okapi-b35%
mod-inventory-storage-b23%mod-di-converter-storage-b35%
mod-source-record-manager-b8%mod-feesfines-b31%
mod-quick-marc-b7.50%mod-patron-blocks-b29%
mod-pubsub-b7.50%mod-configuration-b27%
mod-circulation-item-b3.10%mod-quick-marc-b27%
mod-configuration-b2.80%mod-circulation-storage-b26%
mod-feesfines-b2.30%mod-users-bl-b25%
mod-data-import-b2.30%mod-pubsub-b25%
mod-remote-storage-b2.20%mod-authtoken-b20%
mod-authtoken-b1.90%mod-inventory-storage-b18%
mod-circulation-storage-b1.70%mod-remote-storage-b17%
mod-users-bl-b0.60%mod-circulation-b14%
mod-patron-blocks-b0.30%nginx-okapi4.60%
pub-okapi0.10%pub-okapi4.50%

Service CPU Utilization

Here we can see that nginx-okapi used 195% CPU in spike, mod-inventory used 150% CPU in spike and mod-data-import used 140% CPU in spike.

Service Memory Utilization

Here we can see that all modules show a stable trend.

DB CPU Utilization

DB CPU was 96%.

DB Connections

Max number of DB connections was 1650.

DB load

                                                                                                                     

Top SQL-queries


#TOP 5 SQL statements
1
WITH deleted_rows AS (     delete from marc_indexers mi     where exists(         select 1         from marc_records_tracking mrt         where mrt.is_dirty = true           
and mrt.marc_id = mi.marc_id and mrt.version > mi.version ) returning mi.marc_id), deleted_rows2 AS ( delete from marc_indexers mi
where exists( select 1 from records_lb where records_lb.id = mi.marc_id and records_lb.state = 'OLD' ) returning mi.marc_id)
INSERT INTO marc_indexers_deleted_ids SELECT DISTINCT marc_id FROM deleted_rows UNION SELECT marc_id FROM deleted_rows2
2
insert into "marc_records_lb" ("id", "content") values (cast($1 as uuid), cast($2 as jsonb)) on conflict ("id") do update set "content" = cast($3 as jsonb)
3
INSERT INTO cs00000int_mod_search.consortium_instance (tenant_id, instance_id, json, created_date, updated_date)
  VALUES ($1, $2, $3::json, $4, $5)
  ON CONFLICT (tenant_id, instance_id)
  DO UPDATE SET json = EXCLUDED.json, updated_date = EXCLUDED.updated_date
4
INSERT INTO cs00000int_0001_mod_source_record_manager.events_processed (handler_id, event_id) VALUES ($1, $2)
5
insert into "marc_records_lb" ("id", "content") values (cast($1 as uuid), cast($2 as jsonb)) on conflict ("id") do update set "content" = cast($3 as jsonb)

Errors

Data Import test for PTF - Updates Success - 2 profile with 25k records file on 3 tenants concurrently finished with errors for two records. 

Felid records:

Record ID Record NameStart TimeAnd TimeDuration
987db8ab-91e4-43ab-9c4f-8456da2466c51718545962860-25k-333_14.mrc2024-06-16 13:53:01.597+002024-06-16 14:07:58.232+000:14:57
4b55ca82-9fb1-4d42-b116-c3d3df75b3121718545962860-25k-333_13.mrc2024-06-16 13:53:01.596+002024-06-16 14:07:13.958+000:14:12

Error Logs:

#Data Import Log for Records
1
io.vertx.core.impl.NoStackTraceThrowable: Failed to update MARC record in SRS, instanceId: '830273a3-459b-4a81-945e-139719dd1b71', jobExecutionId: '4b55ca82-9fb1-4d42-b116-c3d3df75b312', status code: 504, 
Record: <html>
<head><title>
504 Gateway Time-out</title></head>
<body>
<center><h
1>504 Gateway Time-out</h1></center>
</body>
</html>
2
io.vertx.core.impl.NoStackTraceThrowable: Failed to update MARC record in SRS, instanceId: '8d74d733-7c8e-40bf-974c-a2e19a01a389', jobExecutionId: '987db8ab-91e4-43ab-9c4f-8456da2466c5', status code: 422, 
Record: {
"errors":[{"message":"must not be null","type":"1","code":"jakarta.validation.constraints.NotNull.message","parameters":[{"key":"matchedId","value":"null"}]}]}

Appendix

Infrastructure

PTF - environment Quesnelia (qcon)

  • 11 m6i.2xlarge EC2 instances located in US East (N. Virginia)us-east-1 [Number of ECS instances, instance type, location region]

  • 1 instance of db.r6.xlarge database instance: Writer instance

  • Number of records in DB:
    •  cs00000int_0001
      • instances - 6828236
      • items - 7859770
      • holdings - 7328737
    • cs00000int_0002
      • nstances - 1163315
      • items - 1754121
      • holdings - 1332559
    • cs00000int_0003
      • nstances - 1135806
      • items - 1735291
      • holdings - 1309387
  • OpenSearch

    • domain: fse

    • Data nodes Instance type: r6g.xlarge.search
    • Number of nodes: 9

    • Version: OpenSearch_2_7_R20240502

  • MSK - tenat

    • 4 kafka.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

    • Kafka consolidated topics enabled


 Quesnelia modules memory and CPU parameters
ModuleTask Def. RevisionModule VersionTask CountMem Hard LimitMem Soft limitCPU unitsXmxMetaspaceSizeMaxMetaspaceSize
qcon-pvt








Thu May 23 10:47:25 UTC 2024








mod-remote-storage1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-remote-storage:3.2.024920447210243960512512
mod-finance-storage1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-finance-storage:8.6.021024896102470088128
mod-ncip1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-ncip:1.14.42102489612876888128
mod-agreements1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-agreements:7.0.0215921488128000
mod-ebsconet1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-ebsconet:2.2.0212481024128700128256
mod-consortia1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-consortia:1.1.023072204812820485121024
mod-organizations1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-organizations:1.9.02102489612870088128
mod-serials-management1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-serials-management:1.0.02248023121281792384512
mod-settings1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-settings:1.0.32102489620076888128
mod-search9579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-search:3.3.0-SNAPSHOT.224225922480204814405121024
edge-dematic1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-dematic:2.2.01102489612876888128
mod-data-import1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-data-import:3.1.01204818442561292384512
mod-tags1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-tags:2.2.02102489612876888128
mod-authtoken3579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-authtoken:2.15.121440115251292288128
edge-courses1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-courses:1.4.02102489612876888128
mod-inventory-update1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-inventory-update:3.3.02102489612876888128
mod-notify1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-notify:3.2.02102489612876888128
mod-configuration1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-configuration:5.10.02102489612876888128
mod-orders-storage1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-orders-storage:13.7.02102489651270088128
edge-caiasoft1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-caiasoft:2.2.02102489612876888128
mod-login-saml1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-login-saml:2.8.02102489612876888128
mod-erm-usage-harvester1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-erm-usage-harvester:4.5.02102489612876888128
mod-password-validator1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-password-validator:3.2.0214401298128768384512
mod-licenses1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-licenses:6.0.02248023121281792384512
mod-gobi1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-gobi:2.8.02102489612870088128
mod-bulk-operations1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-bulk-operations:2.0.023072260010241536384512
mod-fqm-manager1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-fqm-manager:2.0.12300026001282048384512
edge-dcb1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-dcb:1.1.02102489612876888128
mod-graphql1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-graphql:1.12.12102489612876888128
mod-finance1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-finance:4.9.02102489612870088128
mod-erm-usage1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-erm-usage:4.7.02102489612876888128
mod-batch-print1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-batch-print:1.1.02102489612876888128
mod-copycat1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-copycat:1.6.02102451212876888128
mod-lists1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-lists:2.0.02300026001282048384512
mod-entities-links1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-entities-links:3.0.0225922480400144001024
mod-permissions2579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-permissions:6.5.02168415445121024384512
pub-edge1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/pub-edge:2023.06.142102489612876800
mod-orders1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-orders:12.8.022048144010241024384512
edge-patron1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-patron:5.1.02102489625676888128
edge-ncip1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-ncip:1.9.22102489612876888128
mod-users-bl1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-users-bl:7.7.021440115251292288128
mod-invoice1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-invoice:5.8.021440115251292288128
mod-inventory-storage2579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-inventory-storage:27.2.0-SNAPSHOT.73824096369020483076384512
mod-user-import1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-user-import:3.8.02102489612876888128
mod-sender1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-sender:1.12.02102489612876888128
edge-oai-pmh1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-oai-pmh:2.9.021512136010241440384512
mod-data-export-worker1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-data-export-worker:3.2.123072204810242048384512
mod-rtac1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-rtac:3.6.02102489612876888128
mod-circulation-storage1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-circulation-storage:17.2.022880259215361814384512
mod-source-record-storage1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-source-record-storage:5.8.025600500020483500384512
mod-calendar1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-calendar:3.1.02102489612876888128
mod-event-config1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-event-config:2.7.02102489612876888128
mod-courses1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-courses:1.4.102102489612876888128
mod-circulation-item1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-circulation-item:1.0.021024896128000
mod-inventory3579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-inventory:20.2.022880259210241814384512
mod-email1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-email:1.17.02102489612876888128
mod-circulation2579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-circulation:24.2.122880259215361814384512
mod-pubsub1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-pubsub:2.13.02153614401024922384512
mod-di-converter-storage2579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-di-converter-storage:2.2.22102489612876888128
edge-orders1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-orders:3.0.02102489612876888128
edge-rtac1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-rtac:2.7.12102489612876888128
mod-users1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-users:19.3.12102489612876888128
mod-template-engine1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-template-engine:1.20.02102489612876888128
mod-patron-blocks1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-patron-blocks:1.10.021024896102476888128
mod-audit1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-audit:2.9.02102489612876888128
edge-fqm1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-fqm:2.0.02102489612876888128
mod-source-record-manager1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-source-record-manager:3.8.025600500020483500384512
nginx-edge1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/nginx-edge:2023.06.1421024896128000
mod-quick-marc1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-quick-marc:5.1.01228821761281664384512
nginx-okapi1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/nginx-okapi:2023.06.1421024896128000
okapi-b1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/okapi:5.3.03168414401024922384512
mod-feesfines1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-feesfines:19.1.02102489612876888128
mod-invoice-storage1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-invoice-storage:5.8.021872153610241024384512
mod-service-interaction1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-service-interaction:4.0.12204818442561290384512
mod-dcb1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-dcb:1.1.02102489612876888128
mod-patron1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-patron:6.1.02102489612876888128
mod-data-export1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-data-export:5.0.01204815241024000
mod-oai-pmh1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-oai-pmh:3.13.024096369020483076384512
edge-connexion1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/edge-connexion:1.2.02102489612876888128
mod-notes1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-notes:5.2.021024896128952384512
mod-kb-ebsco-java1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-kb-ebsco-java:4.0.02102489612876888128
mod-login1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-login:7.11.02144012981024768384512
mod-organizations-storage1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-organizations-storage:4.7.02102489612870088128
mod-data-export-spring1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-data-export-spring:3.2.01204818442561536384512
pub-okapi1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/pub-okapi:2023.06.142102489612876800
mod-eusage-reports1579891902283.dkr.ecr.us-east-1.amazonaws.com/folio/mod-eusage-reports:2.1.12102489612876888128


Methodology/Approach

DI tests scenario (DI MARC Bib Create\Update) were started from UI.

Test set №1:

  • Test 1: Manually tested 10k records files DI MARC Bib Create started on College tenant(cs00000int_0001) and Professional tenant(cs00000int_0002) concurrently, step 30%.
  • Test 2: Manually tested 10k records files DI MARC Bib Create started on College tenant(cs00000int_0001), Professional tenant(cs00000int_0002) and School tenant(cs00000int_0003) concurrently, step 30%.
  • Test 3: Manually tested 25k records files DI MARC Bib Create started on College tenant(cs00000int_0001) and Professional tenant(cs00000int_0002) concurrently, step 30%.
  • Test 4: Manually tested 25k records files DI MARC Bib Create started on College tenant(cs00000int_0001), Professional tenant(cs00000int_0002) and School tenant(cs00000int_0003) concurrently, step 30%.
  • Test 5: Manually tested 150k records files DI MARC Bib Create started on College tenant(cs00000int_0001), Professional tenant(cs00000int_0002) and School tenant(cs00000int_0003) concurrently, step 30%.

Test set №2:

  • Test 6: Manually tested 10k records files DI MARC Bib Update started on College tenant(cs00000int_0001) and Professional tenant(cs00000int_0002) concurrently, step 30%.
  • Test 7: Manually tested 10k records files DI MARC Bib Update started on College tenant(cs00000int_0001), Professional tenant(cs00000int_0002) and School tenant(cs00000int_0003) concurrently, step 30%.
  • Test 8: Manually tested 25k records files DI MARC Bib Update started on College tenant(cs00000int_0001) and Professional tenant(cs00000int_0002) concurrently, step 30%.
  • Test 9: Manually tested 25k records files DI MARC Bib Update started on College tenant(cs00000int_0001), Professional tenant(cs00000int_0002) and School tenant(cs00000int_0003) concurrently, step 30%.
  • Test 10: Manually tested 150k records files DI MARC Bib Update started on College tenant(cs00000int_0001), Professional tenant(cs00000int_0002) and School tenant(cs00000int_0003) concurrently, step 30%.

To get status and time range for import jobs the query used: 

SQL Query
select file_name,started_date,completed_date, completed_date - started_date as duration ,status
from cs00000int_0001_mod_source_record_manager.job_execution order by started_date desc limit 1000;

select file_name,started_date,completed_date, completed_date - started_date as duration ,status
from cs00000int_0002_mod_source_record_manager.job_execution order by started_date desc limit 1000;

select file_name,started_date,completed_date, completed_date - started_date as duration ,status
from cs00000int_0003_mod_source_record_manager.job_execution order by started_date desc limit 1000;