Data Import Create MARC Holdings Records [Poppy]

Overview

The purpose of the document is getting results of testing Data Import Create MARC holdings records and to detect performance trends in Poppy in scope of ticket  PERF-700 - Getting issue details... STATUS

Compared with results in previous test report: Data Import Create MARC holdings records [Orchid]

Summary

  • Data import jobs duration decreased significantly compared to the Orchid release results for all tests
  • Top CPU utilization: nginx-okapi - 52%, mod-quick-marc-b - 45%, mod-inventory-b - 42%,  mod-source-record-storage-b - 25%
  • Top Memory consumption: mod-users-b - 60%, mod-data-import-b - 60%, okapi-b - 48%. There're no issues with memory.
  • DI jobs duration is directly proportional to the size of the files being processed.

Recommendations & Jiras

  • Autovacuum as background process increase DI job duration for 10%-25% so it's necessary to check DB activity before DI jobs start
  • SQL queries are the possible place where performance may be improved:
    • SQL DB Load with WAITS - Lock:tuple, Lock:transactionid take a major time in queries: 
      INSERT INTO [tenant]_mod_inventory_storage.holdings_record (id, jsonb) VALUES ($1, $2) RETURNING jsonb
      UPDATE [tenant]_mod_inventory_storage.holdings_record SET jsonb = $1::jsonb WHERE id = 'UUID'

Test Results

Profile used for testing - Default - Create Holdings and SRS MARC Holdings

Test

File

Duration: Morning_Glory

(previous results)

Duration: Nolana

(previous results)

Duration: Orchid

(previous results)

Duration: Poppy

1

1k28s32s45s32s
25k1m 48s4m 20s7m 47s2m 14s
310k4m 4s3m 24s19m 46s4m 35s
480k29m 6s21m 22s20m (error*)36m 25s

Comparison

Table contains comparison between Poppy and Orchid

Test

File

Duration: OrchidDuration: PoppyDiff_absoluteDiff_percentage

1

1k45s32s13s- 40%
25k7m 47s2m 14s5m 33s- 248%
310k19m 46s4m 35s15m  11s

- 331%

480k20m (error*)36m 25sNo data to compare in Orchid

Service CPU Utilization

 CPU utilization, 1k, 5k, 10k, 80k

1k

5k

10k

80k
mod-inventory-b26.42
nginx-okapi51.81
nginx-okapi51.66
nginx-okapi51.8
mod-quick-marc-b23.78
mod-quick-marc-b44.77
mod-quick-marc-b44.05
mod-quick-marc-b44.97
nginx-okapi21.44
mod-inventory-b44.21
mod-inventory-b43.83
mod-inventory-b41.39
mod-di-converter-storage-b11.78
okapi-b25.48
okapi-b25.16
okapi-b25.29
okapi-b11.54
mod-source-record-storage-b24.27
mod-source-record-storage-b24.19
mod-source-record-storage-b25.15
mod-source-record-storage-b10.67
mod-di-converter-storage-b20.29
mod-di-converter-storage-b20.36
mod-di-converter-storage-b19.79
mod-source-record-manager-b8.93
mod-inventory-storage-b17.44
mod-inventory-storage-b17.11
mod-inventory-storage-b17.79
mod-inventory-storage-b7.53
mod-source-record-manager-b16.93
mod-source-record-manager-b16.8
mod-source-record-manager-b16.92
mod-pubsub-b6.73
mod-pubsub-b6.67
mod-pubsub-b6.88
mod-pubsub-b6.79
mod-users-b6.32
mod-users-b6.5
mod-users-b6.39
mod-users-b6.37
mod-data-import-b4.04
mod-permissions-b2.85
mod-organizations-storage-b2.61
mod-permissions-b2.87
mod-organizations-storage-b2.29
mod-organizations-storage-b2.42
mod-notes-b2.27
mod-organizations-storage-b2.43
mod-notes-b2.05
mod-notes-b2.1
mod-gobi-b2.01
mod-notes-b2.14
mod-gobi-b2.01
mod-gobi-b2.01
mod-permissions-b1.43
mod-gobi-b2
mod-permissions-b1.46
mod-data-import-b1.41
mod-search-b1.31
mod-search-b1.48
mod-search-b1.25
mod-search-b1.26
mod-data-import-b1.29
mod-data-import-b1.32
mod-circulation-storage-b0.57
mod-circulation-storage-b0.59
mod-circulation-storage-b0.6
mod-circulation-storage-b0.58
mod-circulation-b0.32
mod-circulation-b0.47
mod-circulation-b0.32
mod-circulation-b0.32
pub-okapi0.27
pub-okapi0.19
pub-okapi0.18
pub-okapi0.18

nginx-okapi - 52%, mod-quick-marc-b - 45%, mod-inventory-b - 42%,  mod-source-record-storage-b - 25%


Memory Utilization

 Memory consumption
mod-inventory-b61.01
mod-users-b59.97
mod-data-import-b59.38
okapi-b48.24
mod-source-record-manager-b37.31
mod-search-b31.38
mod-di-converter-storage-b31.19
mod-quick-marc-b27.52
mod-pubsub-b24.53
mod-remote-storage-b21.59
mod-inventory-storage-b16.71
nginx-okapi4.68
pub-okapi4.58


DB CPU Utilization

DB CPU was about 80% for all tests except of 1k - 23%.

DB Connections

DB connections number- 505

DB Load


SQL queries


Infrastructure

PTF - environment pcp1

NameMemory GIBvCPUs

db.r6g.4xlarge

128 GiB16 vCPUs
  • MSK ptf-mobius-testing2
    • 2 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=2
 Modules
ModuleTask Def. RevisionModule VersionTask CountMem Hard LimitMem Soft limitCPU unitsXmxMetaspaceSizeMaxMetaspaceSizeR/W split enabled
pcp1-pvt









Thu Mar 14 14:24:59 UTC 2024









mod-remote-storage11mod-remote-storage:3.0.024920447210243960512512FALSE
mod-ncip10mod-ncip:1.14.42102489612876888128FALSE
mod-finance-storage10mod-finance-storage:8.5.021024896102470088128FALSE
mod-agreements10mod-agreements:6.0.2215921488128000FALSE
mod-ebsconet10mod-ebsconet:2.1.1212481024128700128256FALSE
edge-sip28edge-sip2:3.1.12102489612876888128FALSE
mod-organizations10mod-organizations:1.8.02102489612870088128FALSE
mod-settings11mod-settings:1.0.22102489620076888128FALSE
edge-dematic10edge-dematic:2.1.01102489612876888128FALSE