PTF - Data Export Test Report (Quesnelia) [ECS]

PTF - Data Export Test Report (Quesnelia) [ECS]

Overview

  • This document contains the results of testing Data Export (MARC BIB) on the Quesnelia [ECS] release on qcon environment.

https://folio-org.atlassian.net/browse/PERF-844 

Summary

  • Data Export tests finished successfully on qcon environment using the profiles Default instances export job profile and srs - holdings and items job profile.

  • Data Export test were run on College and Central tenants, but results for comparing between environment releases were taken from College tenant.

  • Comparing with and Quesnelia releases

    • Data Export processed all files including file with 500k records without errors for Quesnelia releases.

    • Data Export durations improved  - 80% in Average for Quesnelia releases.

  • During testing, we noticed spikes in the mod-data-export up to 593% CPU

  • For Test №5 Data Export started on College tenant(cs00000int_0001), Central tenant(cs00000int) and Professional tenant(cs00000int_0002) concurrently using the Default instances export job profile, we observed that the CPU usage of the mod-data-export module was initially at 44% before the test began then it spiked to 109% during the test and remained elevated without returning to the initial state

Test Results

This table contains durations for Data Export with 2 job profiles. 

Profile

CSV  File

Tenant College (cs00000int_0001)

Central Tenant (cs00000int)

Result

Status

Result

Status

DE MARC Bib (Default instances export job profile)

1k.csv

0:00:02

COMPLETED

0:00:05

COMPLETED

100k.csv

0:02:39

COMPLETED

0:04:24

COMPLETED

500k.csv

0:05:21

COMPLETED

0:06:17

COMPLETED

DE MARC Bib (srs - holdings and items)

1k.csv

0:00:05

COMPLETED

0:00:05

COMPLETED

100k.csv

0:08:15

COMPLETED

0:05:58

COMPLETED

500k.csv

0:09:22

COMPLETED

0:08:28

COMPLETED

 

This table contains durations for Test №5 Data Export for 3 tenants concurrently.

Tenant

CSV  File

Result

Status

Tenant

CSV  File

Result

Status

Tenant College

(cs00000int_0001)

500k.csv

0:10:24

COMPLETED

Tenant Professional

(cs00000int_0002)

500k.csv

0:06:47

COMPLETED

Central Tenant

(cs00000int)

500k.csv

0:07:56

COMPLETED

 

Comparison

This table contains durations comparison between Poppy and Quesnelia releases.

Profile

CSV  File

DE Duration/Status Orchid

DE Duration/Status Poppy 1 set

DE Duration/Status Quesnelia
Tenant College (cs00000int_0001)

DE Duration, DELTA Poppy/Quesnelia

Result

Status

Result

Status

Result

Status

hh:mm:ss / percent

DE MARC Bib (Default instances export job profile)

1k.csv

 

 

00:00:08

COMPLETED

0:00:02

COMPLETED

-00:00:06
-75%

100k.csv

 

 

00:15:36

COMPLETED

0:02:39

COMPLETED

-00:12:57
-83.02%

500k.csv

 

 

00:57:25

FAIL

0:05:21

COMPLETED

-00:52:04
-90.68%

DE MARC Bib (srs - holdings and items)

1k.csv

00:00:27

COMPLETED

00:00:29

COMPLETED

0:00:05

COMPLETED

-00:00:24
-82.76%

100k.csv

00:47:51

COMPLETED

00:47:23

COMPLETED

0:08:15

COMPLETED

-00:39:08
-82.59%

500k.csv

04:00:26

COMPLETED

04:11:09

FAIL

0:09:22

COMPLETED

-04:01:47
-96.27%

 

Resource utilization for Test #1 and Test #2

CPU

RAM

CPU

RAM

mod-data-export-b

452%

mod-data-export-b

75%

mod-inventory-b

13%

mod-source-record-manager-b

53%

mod-source-record-storage-b

2.40%

mod-inventory-b

48%

mod-source-record-manager-b

1.80%

okapi-b

32%

okapi-b

1.10%

mod-source-record-storage-b

30%

mod-authtoken-b

0.90%

mod-authtoken-b

20%

mod-users-bl-b

0.50%

mod-users-bl-b

19%

nginx-okapi

0.40%

mod-inventory-storage-b

16%

mod-inventory-storage-b

0.40%

nginx-okapi

5%

Service CPU Utilization

Here we can see that mod-data-export used 452% CPU in spike.

Service Memory Utilization

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

DB CPU Utilization

DB CPU spike was 32%.

DB Connections

DB connections was 1470.

DB load

Top SQL-queries

 

#

TOP 5 SQL statements

#

TOP 5 SQL statements

1

INSERT INTO job_executions_export_ids (job_execution_id, instance_id) VALUES ($1, $2) ON CONFLICT DO NOTHING

2

INSERT INTO job_executions_export_ids (job_execution_id, instance_id) VALUES ($1, $2) ON CONFLICT DO NOTHING

3

select mre1_0.id,mre1_0.content,mre1_0.external_id,mre1_0.leader_record_status,mre1_0.record_type,mre1_0.state,mre1_0.suppress_discovery from v_marc_records_lb mre1_0 where mre1_0.external_id in ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$70,$71,$72,$73,$74,$75,$76,$77,$78,$

4

select iwhe1_0.id,iwhe1_0.hrid from v_instance_hrid iwhe1_0 where iwhe1_0.id in ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$90,$91,$92,$93,$94,$95,$96,$97,$98,$99,$100,$101,$102,$103,$104,$105,$1

5

select hre1_0.id,hre1_0.instance_id,hre1_0.jsonb from v_holdings_record hre1_0 where hre1_0.instance_id=$1

 

Resource utilization for Test #3 and Test #4

CPU

RAM

CPU

RAM

mod-data-export-b

336%

mod-data-export-b

73%

mod-inventory-b

14%

mod-source-record-manager-b

53%

mod-source-record-storage-b

2.20%

mod-inventory-b

46%

mod-source-record-manager-b

1.70%

okapi-b

33%

okapi-b

0.90%

mod-source-record-storage-b

30%

mod-authtoken-b

0.80%

mod-users-bl-b

21%

mod-users-bl-b

0.50%

mod-authtoken-b

21%

mod-inventory-storage-b

0.30%

mod-inventory-storage-b

16%

nginx-okapi

0.20%

nginx-okapi

5%

Service CPU Utilization

Here we can see that mod-data-export used 336% CPU in spike.

Service Memory Utilization

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

DB CPU Utilization

DB CPU was 35%.

DB Connections

DB connections was 1377.

DB load

Top SQL-queries

#

TOP 5 SQL statements

#

TOP 5 SQL statements

1

select mre1_0.id,mre1_0.content,mre1_0.external_id,mre1_0.leader_record_status,mre1_0.record_type,mre1_0.state,mre1_0.suppress_discovery from v_marc_records_lb mre1_0 where mre1_0.external_id in ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$70,$71,$72,$73,$74,$75,$76,$77,$78,$

2

INSERT INTO job_executions_export_ids (job_execution_id, instance_id) VALUES ($1, $2) ON CONFLICT DO NOTHING

3

select ie1_0.id,ie1_0.holdings_record_id,ie1_0.jsonb from v_item ie1_0 where ie1_0.holdings_record_id in ($1)

4

select hre1_0.id,hre1_0.instance_id,hre1_0.jsonb from v_holdings_record hre1_0 where hre1_0.instance_id=$1

5

select eie1_0.id,eie1_0.instance_id,eie1_0.job_execution_id from job_executions_export_ids eie1_0 where eie1_0.job_execution_id=$1 and eie1_0.instance_id>=$2 and eie1_0.instance_id<=$3 order by eie1_0.instance_id offset $4 rows fetch first $5 rows only

Resource utilization for Test #5

CPU

RAM

CPU

RAM

mod-data-export-b

592%

mod-data-export-b

108%

mod-inventory-b

10%

mod-inventory-b

78%

mod-source-record-storage-b

1.80%

mod-source-record-storage-b

40%

mod-authtoken-b

1.70%

mod-source-record-manager-b

39%

mod-source-record-manager-b

1.50%