/
PTF - Data Export Test Report (Ramsons) [ECS]

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

Overview

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

PERF-977 - Getting issue details... STATUS  

Summary

  • Data Export tests finished successfully on RCON environment using the profiles Default instances export job profile and srs - holdings and items job profile.
  • Data Export test executed on College tenant only.
  • Ramsons release results 
    • Data Export:
      • Default instances export job profile
        • File with 1k records     - 2 seconds
        • File with 100k records - 1 minute 55 seconds
        • File with 500k records - 4 minute 26 seconds
      • srs - holdings and items
        • File with 1k records     - 7 seconds
        • File with 100k records - 5 minute 13 seconds
        • File with 500k records - 8 minute 19 seconds
  • Comparing Quesnelia (previous results) and Ramsons releases results. DE perform better in Ramsons. Improvement depends on file size and job profile.
    • Default instances export job profile
      • File with 100k records - 27%
      • File with 500k records - 36%
    • srs - holdings and items
      • File with 100k records - 17%
      • File with 500k records - 11%
  • Mod-data-export used most of CPU with Default instances export job profile - 51% and srs - holdings and items - 33% with the 500k records file
  • Concurrent Data Export testing with srs - holdings and items job profile revealed the slowness on central tenant. It completed with errors on UI side. It should be investigated.

Test Runs

ProfileTest #CSV  File
DE MARC Bib (Default instances export job profile)  11k.csv
2100k.csv
3500k.csv
DE MARC Bib (srs - holdings and items)  41k.csv
5100k.csv
6500k.csv

Test Results

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

Profile

CSV  FileTenant College (cs00000int_0001)
ResultStatus
DE MARC Bib (Default instances export job profile)

1k.csv0:00:02COMPLETED
100k.csv0:01:55COMPLETED
500k.csv0:04:26COMPLETED
DE MARC Bib (srs - holdings and items)

1k.csv0:00:07COMPLETED
100k.csv0:05:13COMPLETED
500k.csv0:08:19COMPLETED


This table contains durations for Data Export for 3 tenants concurrently (this additional experiment was not in scope of the ticket).

Job ProfileFile SizeCentral TenantCollege tenantProfessional tenant
Default instances export job profile500k00:06:1200:06:35no data

100k00:04:2100:01:5500:02:31
srs - holdings and items500k00:41:33*00:11:44no data

100k00:33:58*00:06:5100:08:09

* DE with srs - holdings and items job on central tenant completed with errors (2025-01-31T13:47:10.291+00:00 ERROR ui-data-export.error.instance.noPermission).

Errors

Errors occurred possibly  because of central tenant has no items and holding records.

ERROR onsFunctionHolder$18 Location is not found by the given id: null

ItemsResolverService retrieveHoldingsAndItemsByInstanceId

Comparison

This table contains durations comparison between Poppy and Quesnelia releases.

ProfileCSV  File Quesnelia (cs00000int_0001) College tenant Ramsons (cs00000int_0001) College tenantDE Duration, DELTA Quesnelia/Ramsons
Duration (hh:mm:ss)percent / time
DE MARC Bib (Default instances export job profile)1k.csv00:00:0200:00:020.00% / 0 sec
100k.csv00:02:3900:01:55-27.67% / 44 sec
500k.csv00:05:2100:04:26-17.13% / 55 sec
DE MARC Bib (srs - holdings and items)1k.csv00:00:0500:00:0740.00% / 2 sec
100k.csv00:08:1500:05:13-36.77% / 3 min 2 sec
500k.csv00:09:2200:08:19-11.21% / 1 min 3 sec


Resource utilization

 Resource utilization table, 500k file
srs - holdings and items

Default instances export job profil
ModuleCPU
ModuleCPU
mod-data-export-b33.01
mod-data-export-b51.34
mod-pubsub-b2.99
mod-pubsub-b2.87
mod-inventory-b1.33
mod-inventory-b1.24
mod-source-record-storage-b0.38
mod-source-record-storage-b0.36
mod-data-export-worker-b0.35
mod-data-export-worker-b0.34
mod-inn-reach-b0.29
mod-consortia-b0.28
mod-consortia-b0.28
mod-inn-reach-b0.26
mod-search-b0.25
mod-search-b0.23
mod-inventory-storage-b0.22
mod-inventory-storage-b0.21
okapi-b0.19
mod-orders-storage-b0.16
mod-circulation-storage-b0.18
mod-source-record-manager-b0.14
mod-orders-storage-b0.18
mod-circulation-storage-b0.14
mod-source-record-manager-b0.15
okapi-b0.12
mod-dcb-b0.12
mod-remote-storage-b0.12
mod-data-export-spring-b0.12
mod-dcb-b0.11
mod-remote-storage-b0.11
mod-users-b0.11
mod-entities-links-b0.11
mod-data-export-spring-b0.1
mod-users-b0.1
mod-entities-links-b0.1
mod-quick-marc-b0.1
mod-quick-marc-b0.1
mod-audit-b0.09
mod-audit-b0.09

Service CPU Utilization

Maximum CPU utilization was in 500k file: Default instances export job profile - 51%, srs - holdings and items - 33%

Service Memory Utilization

Maximum memory consumption was in mod-agreements - 92%, data-export-worker - 86%, mod-data-export - 81%, mod-oa - 75%


DB CPU Utilization

Maximum RDS CPU 500k file: srs - holdings and items job - 32%, Default instances export job - 23%

DB Connections

DB connections - 1173 in average. No spikes with different file size or job profile.

DB load

DE MARC Bib (srs - holdings and items) job profile

DE MARC Bib (Default instances export job profile)

Top SQL-queries

DE MARC Bib (srs - holdings and items) job profile

#TOP SQL statements - DE MARC Bib (srs - holdings and items) job profile
1
SELECT id, jsonb, holdings_record_id FROM cs00000int_0001_mod_data_export.v_item WHERE holdings_record_id in ($1)
2
select hre1_0.id,hre1_0.instance_id,hre1_0.jsonb from v_holdings_record hre1_0 where hre1_0.instance_id=$1
3
select mre1_0.id,mre1_0.content,mre1_0.external_id,mre1_0.generation,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,$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,$106,$107,$108,$109,$110,$111,$112,$113,$114,$115,$116,$117,$118,$119,$120,$121,$122,$123,$124,$125,$126,$127,$128,$129,$130,$131,$132,$133,$134,$135,$136,$137,$138,$139,$140,$141,$142,$143,$144,$145,$146,$147,$148,$149,$150,$151,$152,$153,$154,$155,$156,$157,$158,$159,$160,$161,$162,$163,$164,$165,$166,$167,$168,$169,$170,$171,$172,$173,$174,$175,$176,$177,$178,$179,$180,$181,$182,$183,$184,$185,$186,$187,$188,$189,$190,$191,$192,$193,$194,$195,$196,$197,$198,$199,$200,$201,$202,$203,$204,$205,$206,$207,$208,$209,$210,$211,$212,$213,$214,$215,$216,$217,$218,$219,$220,$221,$222,$223,$224,$225,$226,$227,$228,$229,$230,$231,$232,$233,$234,$235,$236,$237,$238,$239,$240,$241,$242,$243,$244,$245,$246,$247,$248,$249,$250,$251,$252,$253,$254,$255,$256,$257,$258,$259,$260,$261,$262,$263,$264,$265,$266,$267,$268,$269,$270,$271,$272,$273,$274,$275,$276,$277,$278,$279,$280,$281,$282,$283,$284,$285,$286,$287,$288,$289,$290,$291,$292,$293,$294,$295,$296,$297,$298,$299,$300,$301,$302,$303,$304,$305,$306,$307,$308,$309,$310,$311,$312,$313,$314,$315,$316,$317,$318,$319,$320,$321,$322,$323,$324,$325,$326,$327,$328,$329,$330,$331,$332,$333,$334,$335,$336,$337,$338,$339,$340,$341,$342,$343,$344,$345,$346,$347,$348,$349,$350,$351,$352,$353,$354,$355,$356,$357,$358,$359,$360,$361,$362,$363,$364,$365,$366,$367,$368,$369,$370,$371,$372,$373,$374,$375,$376,$377,$378,$379,$380,$381,$382,$383,$384,$385,$386,$387,$388,$389,$390,$391,$392,$393,$394,$395,$396,$397,$398,$399,$400,$401,$402,$403,$404,$405,$406,$407,$408,$409,$410,$411,$412,$413,$414,$415,$416,$417,$418,$419,$420,$421,$422,$423,$424,$425,$426,$427,$428,$429,$430,$431,$432,$433,$434,$435,$436,$437,$438,$439,$440,$441,$442,$443,$444,$445,$446,$447,$448,$449,$450,$451,$452,$453,$454,$455,$456,$457,$458,$459,$460,$461,$462,$463,$464,$465,$466,$467,$468,$469,$470,$471,$472,$473,$474,$475,$476,$477,$478,$479,$480,$481,$482,$483,$484,$485,$486,$487,$488,$489,$490,$491,$492,$493,$494,$495,$496,$497,$498,$499,$500,$501,$502,$503,$504,$505,$506,$507,$508,$509,$510,$511,$512,$513,$514,$515,$516,$517,$518,$519,$520,$521,$522,$523,$524,$525,$526,$527,$528,$529,$530,$531,$532,$533,$534,$535,$536,$537,$538,$539,$540,$541,$542,$543,$544,$545,$546,$547,$548,$549,$550,$551,$552,$553,$554,$555,$556,$557,$558,$559,$560,$561,$562,$563,$564,$565,$566,$567,$568,$569,$570,$571,$572,$573,$574,$575,$576,$577,$578,$579,$580,$581,$582,$583,$584,$585,$586,$587,$588,$589,$590,$591,$592,$593,$594,$595,$596,$597,$598,$599,$600,$601,$602,$603,$604,$605,$606,$607,$608,$609,$610,$611,$612,$613,$614,$615,$616,$617,$618,$619,$620,$621,$622,$623,$624,$625,$626,$627,$628,$629,$630,$631,$632,$633,$634,$635,$636,$637,$638,$639,$640,$641,$642,$643,$644,$645,$646,$647,$648,$649,$650,$651,$652,$653,$654,$655,$656,$657,$658,$659,$660,$661,$662,$663,$664,$665,$666,$667,$668,$669,$670,$671,$672,$673,$674,$675,$676,$677,$678,$679,$680,$681,$682,$683,$684,$685,$686,$687,$688,$689,$690,$691,$692,$693,$694,$695,$696,$697,$698,$699,$700,$701,$702,$703,$704,$705,$706,$707,$708,$709,$710,$711,$712,$713,$714,$715,$716,$717,$718,$719,$720,$721,$722,$723,$724,$725,$726,$727,$728,$729,$730,$731,$732,$733,$734,$735,$736,$737,$738,$739,$740,$741,$742,$743,$744,$745,$746,$747,$748,$749,$750,$751,$752,$753,$754,$755,$756,$757,$758,$759,$760,$761,$762,$763,$764,$765,$766,$767,$768,$769,$770,$771,$772,$773,$774,$775,$776,$777,$778,$779,$780,$781,$782,$783,$784,$785,$786,$787,$788,$789,$790,$791,$792,$793,$794,$795,$796,$797,$798
4
SELECT cs00000int_0001_mod_feesfines.count_estimate('SELECT * FROM cs00000int_0001_mod_feesfines.accounts WHERE (((((((((((((((((((((((((((((((((((((((((((((((((CASE WHEN length(lower(f_unaccent(''ea7f7711-be83-4182-905b-624be9b64b7c''))) <= 600 THEN left(lower(f_unaccent(accounts.jsonb->>''loanId'')),600) LIKE lower(f_unaccent(''ea7f7711-be83-4182-905b-624be9b64b7c'')) ELSE left(lower(f_unaccent(accounts.jsonb->>''loanId'')),600) LIKE left(lower(f_unaccent(''ea7f7711-be83-4182-905b-624be9b64b7c'')),600) AND lower(f_unaccent(accounts.jsonb->>''loanId'')) LIKE lower(f_unaccent(''ea7f7711-be83-4182-905b-624be9b64b7c'')) END) OR (CASE WHEN length(lower(f_unaccent(''681cc527-c044-41af-96d1-e6e7d171f824''))) <= 600 THEN left(lower(f_unaccent(accounts.jsonb->>''loanId'')),600) LIKE lower(f_unaccent(''681cc527-c044-41af-96d1-e6e7d171f824'')) ELSE left(lower(f_unaccent(accounts.jsonb->>''loanId'')),600) LIKE left(lower(f_unaccent(''681cc527-c044-41af-96d1-e6e7d171f824'')),600) AND lower(f_unaccent(accounts.jsonb->>''loanId'')) LIKE lower(f_unaccent(''681cc527-c044-41af-96d1-e6e7d171f824'')) END)) OR (CASE WHEN length(lower(f_unaccent(''341f6aa4-aa7f-453d-a21d-8e6b475439ff''))) <= 600 THEN left(lower(f_unaccent(accounts.jsonb->>''loanId'')),600) LIKE lower(f_unaccent(''341f6aa4-aa7f-453d-a21d-8e6b475439ff'')) ELSE left(lower(f_unaccent(accounts.jsonb->>''loanId'')),600) LIKE left(lower(f_unaccent(''341f6aa4-aa7f-453d-a21d-8e6b475439ff'')),600) AND lower(f_unaccent(accounts.jsonb->>''loanId'')) LIKE lower(f_unaccent(''341f6aa4-aa7f-453d-a21d-8e6b475439ff'')) END)) OR (CASE WHEN length(lower(f_unaccent(''02c0a65a-8205-461a-aaf3-36d1b92a3133''))) <= 600 THEN left(lower(f_unaccent(accounts.jsonb->>''loanId'')),600) LIKE lower(f_unaccent(''02c0a65a-8205-461a-aaf3-36d1b92a3133'')) ELSE left(lower(f_unaccent(accounts.jsonb->>''loanId'')),600) LIKE left(lower(f_unaccent(''02c0a65a-8205-461a-aaf3-36d1b92a3133'')),600) AND lower(f_unaccent(accounts.jsonb->>''loanId'')) LIKE lower(f_unaccent(''02c0a65a-8205-461a-aaf3-36d1b92a3133'')) END)) OR (CASE WHEN length(lower(f_unaccent(''d57f6388-0791-4bb9-86a5-86b19b6ede58''))) <= 600 THEN left(lower(f_unaccent(accounts.jsonb->>''loanId'')),600) LIKE lower(f_unaccent(''d57f6388-0791-4bb9-86a5-86b19b6ede58'')) ELSE left(lower(f_unaccent(accounts.jsonb->>''loanId'')),600) LIKE left(lower(f_unaccent(''d57f6388-0791-4bb9-86a5-86b19b6ede58'')),600) AND lower(f_unaccent(accounts.jsonb->>''loanId'')) LIKE lower(f_unaccent(''d57f6388-0791-4bb9-86a5-86b19b6ede58'')) END)) OR (CASE WHEN length(lower(f_unaccent(''28254d08-9c41-4d17-bb78-179e18f7c81a''))) <= 600 THEN left(lower(f_unaccent(accounts.jsonb->>''loanId'')),600) LIKE lower(f_unaccent(''28254d08-9c41-4d17-bb78-179e18f7c81a'')) ELSE left(lower(f_unaccent(accounts.jsonb->>''loanId'')),600) LIKE left(lower(f_unaccent(''28254d08-9c41-4d17-bb78-179e18f7c81a'')),600) AND lower(f_unaccent(accounts.jsonb->>''loanId'')) LIKE lower(f_unaccent(''28254d08-9c41-4d17-bb78-179e18f7c81a'')) END)) OR (CASE WHEN length(lower(f_unaccent(''bc123126-a5c0-4588-8a5d-35012ea66964''))) <= 600 THEN left(lower(f_unaccent(accounts.jsonb->>''loanId'')),600) LIKE lower(f_unaccent(''bc123126-a5c0-4588-8a5d-35012ea66964'')) ELSE left(lower(f_unaccent(accounts.jsonb->>''loanId'')),600) LIKE left(lower(f_unaccent(''bc123126-a5c0-4588-8a5d-35012ea66964'')),600) AND lower(f_unaccent(accounts.jsonb->>''loanId'')) LIKE lower(f_unaccent(''bc123126-a5c0-4588-8a5d-35012ea66964'')) END)) OR (CASE WHEN length(lower(f_unaccent(''8d4ccfce-34c3-476c-bdcf-b06cb58a0a54''))) <= 600 THEN left(lower(f_unaccent(accounts.jsonb->>''loanId'')),600) LIKE lower(f_unaccent(''8d4ccfce-34c3-476c-bdcf-b06cb58a0a54'')) ELSE left(lower(f_unaccent(accounts.jsonb->>''loanId'')),600) LIKE left(lower(f_unaccent(''8d4ccfce-34c3-476c-bdcf-b06cb58a0a54'')),600) AND lower(f_unaccent(accounts.jsonb->>''loanId'')) LIKE lower(f_unaccent(''8d4ccfce-34c3-476c-bdcf-b06cb58a0a54'')) END)) OR (CASE WHEN length(lower(f_unaccent(''7b38f350-3b5e-494e-8496-8365631f85bb''))) <= 600 THEN left(lower(f_unaccent(accounts.jsonb->>''loan
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
6
INSERT INTO job_executions_export_ids (job_execution_id, instance_id) VALUES ($1, $2) ON CONFLICT DO NOTHING
7
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,$106,$107,$108,$109,$110,$111,$112,$113,$114,$115,$116,$117,$118,$119,$120,$121,$122,$123,$124,$125,$126,$127,$128,$129,$130,$131,$132,$133,$134,$135,$136,$137,$138,$139,$140,$141,$142,$143,$144,$145,$146,$147,$148,$149,$150,$151,$152,$153,$154,$155,$156,$157,$158,$159,$160,$161,$162,$163,$164,$165,$166,$167,$168,$169,$170,$171,$172,$173,$174,$175,$176,$177,$178,$179,$180,$181,$182,$183,$184,$185,$186,$187,$188,$189,$190,$191,$192,$193,$194,$195,$196,$197,$198,$199,$200,$201,$202,$203,$204,$205,$206,$207,$208,$209,$210,$211,$212,$213,$214,$215,$216,$217,$218,$219,$220,$221,$222,$223,$224,$225,$226,$227,$228,$229,$230,$231,$232,$233,$234,$235,$236,$237,$238,$239,$240,$241,$242,$243,$244,$245,$246,$247,$248,$249,$250,$251,$252,$253,$254,$255,$256,$257,$258,$259,$260,$261,$262,$263,$264,$265,$266,$267,$268,$269,$270,$271,$272,$273,$274,$275,$276,$277,$278,$279,$280,$281,$282,$283,$284,$285,$286,$287,$288,$289,$290,$291,$292,$293,$294,$295,$296,$297,$298,$299,$300,$301,$302,$303,$304,$305,$306,$307,$308,$309,$310,$311,$312,$313,$314,$315,$316,$317,$318,$319,$320,$321,$322,$323,$324,$325,$326,$327,$328,$329,$330,$331,$332,$333,$334,$335,$336,$337,$338,$339,$340,$341,$342,$343,$344,$345,$346,$347,$348,$349,$350,$351,$352,$353,$354,$355,$356,$357,$358,$359,$360,$361,$362,$363,$364,$365,$366,$367,$368,$369,$370,$371,$372,$373,$374,$375,$376,$377,$378,$379,$380,$381,$382,$383,$384,$385,$386,$387,$388,$389,$390,$391,$392,$393,$394,$395,$396,$397,$398,$399,$400,$401,$402,$403,$404,$405,$406,$407,$408,$409,$410,$411,$412,$413,$414,$415,$416,$417,$418,$419,$420,$421,$422,$423,$424,$425,$426,$427,$428,$429,$430,$431,$432,$433,$434,$435,$436,$437,$438,$439,$440,$441,$442,$443,$444,$445,$446,$447,$448,$449,$450,$451,$452,$453,$454,$455,$456,$457,$458,$459,$460,$461,$462,$463,$464,$465,$466,$467,$468,$469,$470,$471,$472,$473,$474,$475,$476,$477,$478,$479,$480,$481,$482,$483,$484,$485,$486,$487,$488,$489,$490,$491,$492,$493,$494,$495,$496,$497,$498,$499,$500,$501,$502,$503,$504,$505,$506,$507,$508,$509,$510,$511,$512,$513,$514,$515,$516,$517,$518,$519,$520,$521,$522,$523,$524,$525,$526,$527,$528,$529,$530,$531,$532,$533,$534,$535,$536,$537,$538,$539,$540,$541,$542,$543,$544,$545,$546,$547,$548,$549,$550,$551,$552,$553,$554,$555,$556,$557,$558,$559,$560,$561,$562,$563,$564,$565,$566,$567,$568,$569,$570,$571,$572,$573,$574,$575,$576,$577,$578,$579,$580,$581,$582,$583,$584,$585,$586,$587,$588,$589,$590,$591,$592,$593,$594,$595,$596,$597,$598,$599,$600,$601,$602,$603,$604,$605,$606,$607,$608,$609,$610,$611,$612,$613,$614,$615,$616,$617,$618,$619,$620,$621,$622,$623,$624,$625,$626,$627,$628,$629,$630,$631,$632,$633,$634,$635,$636,$637,$638,$639,$640,$641,$642,$643,$644,$645,$646,$647,$648,$649,$650,$651,$652,$653,$654,$655,$656,$657,$658,$659,$660,$661,$662,$663,$664,$665,$666,$667,$668,$669,$670,$671,$672,$673,$674,$675,$676,$677,$678,$679,$680,$681,$682,$683,$684,$685,$686,$687,$688,$689,$690,$691,$692,$693,$694,$695,$696,$697,$698,$699,$700,$701,$702,$703,$704,$705,$706,$707,$708,$709,$710,$711,$712,$713,$714,$715,$716,$717,$718,$719,$720,$721,$722,$723,$724,$725,$726,$727,$728,$729,$730,$731,$732,$733,$734,$735,$736,$737,$738,$739,$740,$741,$742,$743,$744,$745,$746,$747,$748,$749,$750,$751,$752,$753,$754,$755,$756,$757,$758,$759,$760,$761,$762,$763,$764,$765,$766,$767,$768,$769,$770,$771,$772,$773,$774,$775,$776,$777,$778,$779,$780,$781,$782,$783,$784,$785,$786,$787,$788,$789,$790,$791,$792,$793,$794,$795,$796,$797,$798,$799,$800,$801,$802,$803,$804,$805,$806,$807,$808,$809,$810,$811,$812,$813,$814,$815,$816,$817,$818,$819,$820,$821,$822,$823,$824,$8


DE MARC Bib (Default instances export job profile)

#TOP 5 SQL statements - DE MARC Bib (Default instances export job profile)
1
select mre1_0.id,mre1_0.content,mre1_0.external_id,mre1_0.generation,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,$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,$106,$107,$108,$109,$110,$111,$112,$113,$114,$115,$116,$117,$118,$119,$120,$121,$122,$123,$124,$125,$126,$127,$128,$129,$130,$131,$132,$133,$134,$135,$136,$137,$138,$139,$140,$141,$142,$143,$144,$145,$146,$147,$148,$149,$150,$151,$152,$153,$154,$155,$156,$157,$158,$159,$160,$161,$162,$163,$164,$165,$166,$167,$168,$169,$170,$171,$172,$173,$174,$175,$176,$177,$178,$179,$180,$181,$182,$183,$184,$185,$186,$187,$188,$189,$190,$191,$192,$193,$194,$195,$196,$197,$198,$199,$200,$201,$202,$203,$204,$205,$206,$207,$208,$209,$210,$211,$212,$213,$214,$215,$216,$217,$218,$219,$220,$221,$222,$223,$224,$225,$226,$227,$228,$229,$230,$231,$232,$233,$234,$235,$236,$237,$238,$239,$240,$241,$242,$243,$244,$245,$246,$247,$248,$249,$250,$251,$252,$253,$254,$255,$256,$257,$258,$259,$260,$261,$262,$263,$264,$265,$266,$267,$268,$269,$270,$271,$272,$273,$274,$275,$276,$277,$278,$279,$280,$281,$282,$283,$284,$285,$286,$287,$288,$289,$290,$291,$292,$293,$294,$295,$296,$297,$298,$299,$300,$301,$302,$303,$304,$305,$306,$307,$308,$309,$310,$311,$312,$313,$314,$315,$316,$317,$318,$319,$320,$321,$322,$323,$324,$325,$326,$327,$328,$329,$330,$331,$332,$333,$334,$335,$336,$337,$338,$339,$340,$341,$342,$343,$344,$345,$346,$347,$348,$349,$350,$351,$352,$353,$354,$355,$356,$357,$358,$359,$360,$361,$362,$363,$364,$365,$366,$367,$368,$369,$370,$371,$372,$373,$374,$375,$376,$377,$378,$379,$380,$381,$382,$383,$384,$385,$386,$387,$388,$389,$390,$391,$392,$393,$394,$395,$396,$397,$398,$399,$400,$401,$402,$403,$404,$405,$406,$407,$408,$409,$410,$411,$412,$413,$414,$415,$416,$417,$418,$419,$420,$421,$422,$423,$424,$425,$426,$427,$428,$429,$430,$431,$432,$433,$434,$435,$436,$437,$438,$439,$440,$441,$442,$443,$444,$445,$446,$447,$448,$449,$450,$451,$452,$453,$454,$455,$456,$457,$458,$459,$460,$461,$462,$463,$464,$465,$466,$467,$468,$469,$470,$471,$472,$473,$474,$475,$476,$477,$478,$479,$480,$481,$482,$483,$484,$485,$486,$487,$488,$489,$490,$491,$492,$493,$494,$495,$496,$497,$498,$499,$500,$501,$502,$503,$504,$505,$506,$507,$508,$509,$510,$511,$512,$513,$514,$515,$516,$517,$518,$519,$520,$521,$522,$523,$524,$525,$526,$527,$528,$529,$530,$531,$532,$533,$534,$535,$536,$537,$538,$539,$540,$541,$542,$543,$544,$545,$546,$547,$548,$549,$550,$551,$552,$553,$554,$555,$556,$557,$558,$559,$560,$561,$562,$563,$564,$565,$566,$567,$568,$569,$570,$571,$572,$573,$574,$575,$576,$577,$578,$579,$580,$581,$582,$583,$584,$585,$586,$587,$588,$589,$590,$591,$592,$593,$594,$595,$596,$597,$598,$599,$600,$601,$602,$603,$604,$605,$606,$607,$608,$609,$610,$611,$612,$613,$614,$615,$616,$617,$618,$619,$620,$621,$622,$623,$624,$625,$626,$627,$628,$629,$630,$631,$632,$633,$634,$635,$636,$637,$638,$639,$640,$641,$642,$643,$644,$645,$646,$647,$648,$649,$650,$651,$652,$653,$654,$655,$656,$657,$658,$659,$660,$661,$662,$663,$664,$665,$666,$667,$668,$669,$670,$671,$672,$673,$674,$675,$676,$677,$678,$679,$680,$681,$682,$683,$684,$685,$686,$687,$688,$689,$690,$691,$692,$693,$694,$695,$696,$697,$698,$699,$700,$701,$702,$703,$704,$705,$706,$707,$708,$709,$710,$711,$712,$713,$714,$715,$716,$717,$718,$719,$720,$721,$722,$723,$724,$725,$726,$727,$728,$729,$730,$731,$732,$733,$734,$735,$736,$737,$738,$739,$740,$741,$742,$743,$744,$745,$746,$747,$748,$749,$750,$751,$752,$753,$754,$755,$756,$757,$758,$759,$760,$761,$762,$763,$764,$765,$766,$767,$768,$769,$770,$771,$772,$773,$774,$775,$776,$777,$778,$779,$780,$781,$782,$783,$784,$785,$786,$787,$788,$789,$790,$791,$792,$793,$794,$795,$796,$797,$798
2
INSERT INTO job_executions_export_ids (job_execution_id, instance_id) VALUES ($1, $2) ON CONFLICT DO NOTHING
3
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
4
SELECT cs00000int_0001_mod_circulation_storage.count_estimate('SELECT jsonb,id FROM cs00000int_0001_mod_circulation_storage.scheduled_notice WHERE ((CASE WHEN length(lower(''2025-01-28T13:45:05.822Z'')) <= 600 THEN left(lower(scheduled_notice.jsonb->>''nextRunTime''),600) < lower(''2025-01-28T13:45:05.822Z'') ELSE left(lower(scheduled_notice.jsonb->>''nextRunTime''),600) < left(lower(''2025-01-28T13:45:05.822Z''),600) AND lower(scheduled_notice.jsonb->>''nextRunTime'') <= lower(''2025-01-28T13:45:05.822Z'') END) AND (CASE WHEN length(lower(''true'')) <= 600 THEN left(lower(scheduled_notice.jsonb->''noticeConfig''->>''sendInRealTime''),600) LIKE lower(''true'') ELSE left(lower(scheduled_notice.jsonb->''noticeConfig''->>''sendInRealTime''),600) LIKE left(lower(''true''),600) AND lower(scheduled_notice.jsonb->''noticeConfig''->>''sendInRealTime'') LIKE lower(''true'') END)) AND ((CASE WHEN length(lower(''Aged to lost - fine charged'')) <= 600 THEN left(lower(scheduled_notice.jsonb->>''triggeringEvent''),600) LIKE lower(''Aged to lost - fine charged'') ELSE left(lower(scheduled_notice.jsonb->>''triggeringEvent''),600) LIKE left(lower(''Aged to lost - fine charged''),600) AND lower(scheduled_notice.jsonb->>''triggeringEvent'') LIKE lower(''Aged to lost - fine charged'') END) OR (CASE WHEN length(lower(''Aged to lost & item returned - fine adjusted'')) <= 600 THEN left(lower(scheduled_notice.jsonb->>''triggeringEvent''),600) LIKE lower(''Aged to lost & item returned - fine adjusted'') ELSE left(lower(scheduled_notice.jsonb->>''triggeringEvent''),600) LIKE left(lower(''Aged to lost & item returned - fine adjusted''),600) AND lower(scheduled_notice.jsonb->>''triggeringEvent'') LIKE lower(''Aged to lost & item returned - fine adjusted'') END))')

Appendix

Infrastructure

PTF - consortia, okapi based environment
  • rcon 12 m6g.2xlarge EC2 instances located in US East (N. Virginia)us-east-1 
  • 1 instance of db.r6g.xlarge database instance: Writer instance
  • MSK fse-test
      • 4 kafka.m7g.xlarge brokers in 2 zones (2 brokers per zone)
      • Apache Kafka version 3.7.x, metadata mode - KRaft

      • EBS storage volume per broker 300 GiB

      • auto.create.topics.enable=true
      • log.retention.minutes=480
      • default.replication.factor=2
      • revision - 26
  • OpenSearch 2.13 ptf-test cluster
    • r6g.2xlarge.search 4 data nodes

    • r6g.large.search 3 dedicated master nodes

DB table records size:

  • Central tenant
    • instances -             1275791
    • items -                   0
    • holding records -  2
  • College tenant
    • instances -             1579925
    • items -                   2507902
    • holding records - 1764037
  • Professional tenant
    • instances -             200620
    • items -                   795424
    • holding records - 373823


Instances where 'source'='MARC'
cs00000int - 1.1 mln
cs00000int_0001 college - 1.1 mln
cs00000int_0002 professional - 170k
cs00000int_0003 school - 40k
cs00000int_0004 special - 0
cs00000int_0005 university - 22k


 Modules RCON
Cluster Resources - rcon-pvt (Fri Jan 17 14:41:06 UTC 2025)


















ModuleTask Definition RevisionModule VersionTask CountMem Hard LimitMem Soft LimitCPU UnitsXmxMetaspace SizeMax Metaspace Size
mod-remote-storage8mod-remote-storage:3.3.324920447203960512512
mod-finance-storage7mod-finance-storage:8.7.321024896070088128
mod-ncip7mod-ncip:1.15.621024896076888128
mod-agreements8mod-agreements:7.1.42159214880000
mod-ebsconet8mod-ebsconet:2.3.12124810240700128256
mod-organizations7mod-organizations:2.0.021024896070088128
mod-consortia10mod-consortia:1.2.2251364776020485121024
edge-sip27edge-sip2:3.3.121024896076888128
mod-serials-management8mod-serials-management:1.1.222480231201792384512
mod-settings7mod-settings:1.1.021024896076888128
mod-data-import10mod-data-import:3.2.412048184401292384512
mod-search18mod-search:4.0.7225922480014405121024
edge-dematic7edge-dematic:2.3.111024896076888128
mod-inn-reach4mod-inn-reach:3.2.1-SNAPSHOT.102236003240028805121024
mod-record-specifications7mod-record-specifications:1.0.221024896076888128
mod-tags7mod-tags:2.3.021024896076888128
mod-authtoken9mod-authtoken:2.16.1214401152092288128
edge-courses8edge-courses:1.5.121024896076888128
mod-notify7mod-notify:3.3.021024896076888128
mod-inventory-update7mod-inventory-update:4.0.021024896076888128
mod-configuration7mod-configuration:5.11.021024896076888128
mod-orders-storage7mod-orders-storage:13.8.321024896070088128
edge-caiasoft7edge-caiasoft:2.3.221024896076888128
mod-login-saml7mod-login-saml:2.9.321024896076888128
mod-erm-usage-harvester7mod-erm-usage-harvester:5.0.121024896076888128
mod-gobi7mod-gobi:2.9.021024896070088128
mod-licenses7mod-licenses:6.1.222480231201792384512
mod-password-validator7mod-password-validator:3.3.02144012980768384512
edge-dcb8edge-dcb:1.2.121024896076888128
mod-bulk-operations8mod-bulk-operations:2.1.823072260001536384512
mod-fqm-manager10mod-fqm-manager:3.0.7230002600076888128
mod-graphql9mod-graphql:1.13.121024896076888128
mod-finance8mod-finance:5.0.121024896070088128
mod-erm-usage7mod-erm-usage:5.0.022800255001800384512
mod-batch-print7mod-batch-print:1.2.021024896076888128
mod-tlr4mod-tlr:1.0.0-SNAPSHOT.821024896076888128
mod-lists12mod-lists:3.0.5260002600076888128
mod-copycat7mod-copycat:1.7.021024512076888128
mod-entities-links11mod-entities-links:3.1.32259224800144001024
mod-permissions13mod-permissions:6.6.121684154401024384512
pub-edge7pub-edge:2023.06.1421024896076800
mod-orders9mod-orders:12.9.922048174001024384512
edge-patron8edge-patron:5.2.121024896076888128
mod-marc-migrations26mod-marc-migrations:1.0.021024896076888128
edge-ncip8edge-ncip:1.10.121024896076888128
edge-inn-reach5edge-inn-reach:3.3.0-SNAPSHOT.6921024896076888128
mod-users-bl7mod-users-bl:7.9.3214401152092288128
mod-oa4mod-oa:2.1.0-SNAPSHOT.6621024896076888128
mod-inventory-storage12mod-inventory-storage:28.0.4240963690030765121024
mod-invoice8mod-invoice:5.9.2214401152092288128
mod-user-import7mod-user-import:3.9.021024896076888128
mod-sender7mod-sender:1.13.021024896076888128
edge-oai-pmh7edge-oai-pmh:2.10.021512136001440384512
mod-data-export-worker10mod-data-export-worker:3.3.623072204802048384512
mod-rtac7mod-rtac:3.7.021024896076888128
mod-circulation-storage8mod-circulation-storage:17.3.322880259201814384512
mod-source-record-storage13mod-source-record-storage:5.9.525600500003500384512
mod-calendar7mod-calendar:3.2.021024896076888128
mod-event-config7mod-event-config:2.8.021024896076888128
mod-courses8mod-courses:1.4.1121024896076888128
mod-circulation-item7mod-circulation-item:1.1.0210248960000
mod-inventory9mod-inventory:21.0.522880259201814384512
mod-email8mod-email:1.18.122800255001800384512
mod-requests-mediated4mod-requests-mediated:1.0.0-SNAPSHOT.421024896076888128
mod-circulation8mod-circulation:24.3.822880259201814384512
mod-pubsub8mod-pubsub:2.15.32153614400922384512
mod-di-converter-storage9mod-di-converter-storage:2.3.121024896076888128
edge-rtac7edge-rtac:2.8.021024896076888128
edge-orders7edge-orders:3.1.021024896076888128
mod-users8mod-users:19.4.521024896076888128
mod-template-engine7mod-template-engine:1.21.021024896076888128
mod-patron-blocks7mod-patron-blocks:1.11.121024896076888128
mod-audit8mod-audit:2.10.221024896076888128
edge-fqm9edge-fqm:3.0.221024896076888128
mod-source-record-manager8mod-source-record-manager:3.9.525600500003500384512
nginx-edge7nginx-edge:2023.06.14210248960000
mod-quick-marc7mod-quick-marc:6.0.012288217601664384512
nginx-okapi7nginx-okapi:2023.06.14210248960000
okapi-b8okapi:6.1.13168414400922384512
mod-feesfines7mod-feesfines:19.2.121024896076888128
mod-invoice-storage7mod-invoice-storage:5.9.121872153601024384512
mod-reading-room7mod-reading-room:1.0.021024896076888128
mod-dcb8mod-dcb:1.2.421024896076888128
mod-service-interaction7mod-service-interaction:4.1.122048184401290384512
mod-patron8mod-patron:6.2.521024896076888128
mod-data-export13mod-data-export:5.1.51204818440000
mod-oai-pmh7mod-oai-pmh:3.14.324096369003076384512
edge-connexion7edge-connexion:1.3.121024896076888128
mod-notes7mod-notes:6.0.0210248960952384512
mod-kb-ebsco-java8mod-kb-ebsco-java:5.0.021024896076888128
mod-organizations-storage7mod-organizations-storage:4.8.121024896070088128
mod-data-export-spring8mod-data-export-spring:3.4.312048184401536384512
mod-login7mod-login:7.12.12144012980768384512
pub-okapi7pub-okapi:2023.06.1421024896076800
edge-erm5edge-erm:1.3.021024896076888128
mod-eusage-reports7mod-eusage-reports:3.0.021024896076888128


Methodology/Approach

  1. Create job profiles srs - holdings and items if needed.
  2. Data Export tests scenarios use the profiles Default instances export job profile and srs - holdings and items
  3. Run sequentially 1k, 100k, 500k on College member tenant using Default instances export job profile.
  4. Run sequentially 1k, 100k, 500k on College member tenant using srs - holdings and items
  5. Run concurrently 500k on central and member tenant.
  6. To get status and time range for export jobs the query used: 
SQL Query
SELECT
	jsonb->>'jobProfileName' AS jobProfileName, exported as file_size,	started_date - completed_date as duration,	jsonb->>'status' AS status
FROM
	cs00000int_0001_mod_data_export.job_executions
WHERE 
	status = 'COMPLETED'
ORDER BY
	jsonb->>'completed_date' DESC
LIMIT 10;

Use this python script to check CSV file with instance UUIDs to be unique. It will check all lines, delete duplicated ones if found and rewrite the file. So it takes not longer than a second to execute it.

Py script - unique UUID checker
import csv

def process_uuid_file(file_path):
# Initialize a dictionary to count UUIDs
uuid_counts = {}

# Read the file and count UUID occurrences
with open(file_path, 'r') as file:
lines = file.readlines()
for line in lines:
uuid = line.strip().strip('"') # Remove any quotes or extra whitespace
if uuid:
uuid_counts[uuid] = uuid_counts.get(uuid, 0) + 1

# Count duplicates
duplicate_count = sum(count - 1 for count in uuid_counts.values() if count > 1)
print(f"Total duplicates found: {duplicate_count}")

# Remove duplicates and write back unique UUIDs
unique_uuids = list(uuid_counts.keys())
with open(file_path, 'w') as file:
for uuid in unique_uuids:
file.write(f'"{uuid}"\n')

print(f"File has been updated with {len(unique_uuids)} unique UUIDs.")

# Example usage
file_path = '100k_DE_central.csv' # Replace with your file path
process_uuid_file(file_path)


Related content