ECS mod-search: Test Reindexing full (Ramsons)

ECS mod-search: Test Reindexing full (Ramsons)

Overview

The document's purpose is to assess reindexing performance on a Ramsons release

Implementation of the feature UXPROD-4892: Reindexing improvementsClosed

Jira ticket: PERF-984: [Ramsons] [ECS] Reindex for mod-search (reindex improvements)Closed

Test Summary

  • Reindex could be done in 3 hours and 4 minutes (db.r6g.8xlarge) for 13 million instances for all tenants. It is a new feature and this reindex was started for the central tenant but done for all tenants in parallel. Reindex time matches requirements (Expected response time: Whole reindexing procedure should take under 6 hours ).

  • Service CPU utilization was up to 60% for mod-search and 5% for mod-inventory-storage. For all other services CPU did not exceed 4%.

  • Memory utilization was stable and no memory leaks or OOM issues were observed.

  • RDS CPU utilization was about up to 28% for db.r6g.8xlarge.

Test Runs /Results

Test #

Start time

End time

Instances number

Test Conditions

reindexing on Ramsons release, consortium environment

Duration

Notes



1

2024-10-22T13:02:35

2024-10-22T16:06:18

13,777,503 *

In parallel: all tenants

3 hours 4 minutes

  • mod-search:

  1. task count = 4

  2. Mem Hard Limit = 2592

  3. Mem Soft Limit = 2480

  4. Xmx = -XX:MaxRAMPercentage=85.0

  • mod-inventory-storage task count = 4

  • open search Data nodes instance scaled up to r6g.4xlarge.search

* -Total number of instances for all of the tenants according to the database

Instances number per tenant

Tenant name

Instances number from UI

Instances number from the database

Tenant name

Instances number from UI

Instances number from the database

cs00000int

2,216,166

2,216,185

cs00000int_0001

8,799,538

7,015,237

cs00000int_0002

3,560,509

1,347,316

cs00000int_0003

3,187,778

1,135,806

cs00000int_0004

3,038,850

1,054,330

cs00000int_0005

2,836,270

1,004,629

Indexing size

All the data from the table below were captured after the test. Results from request for reindex monitoring GET /search/index/instance-records/reindex/status:

[ { "entityType":"HOLDINGS", "status":"MERGE_COMPLETED", "totalMergeRanges":26246, "processedMergeRanges":26246, "totalUploadRanges":0, "processedUploadRanges":0, "startTimeMerge":"2024-10-22T13:02:36.049Z", "endTimeMerge":"2024-10-22T14:12:31.965Z" }, { "entityType":"ITEM", "status":"MERGE_COMPLETED", "totalMergeRanges":31369, "processedMergeRanges":31369, "totalUploadRanges":0, "processedUploadRanges":0, "startTimeMerge":"2024-10-22T13:02:35.944Z", "endTimeMerge":"2024-10-22T14:06:32.674Z" }, { "entityType":"SUBJECT", "status":"UPLOAD_COMPLETED", "totalMergeRanges":0, "processedMergeRanges":0, "totalUploadRanges":4095, "processedUploadRanges":4095, "startTimeUpload":"2024-10-22T14:12:33.759Z", "endTimeUpload":"2024-10-22T15:11:58.204Z" }, { "entityType":"INSTANCE", "status":"UPLOAD_COMPLETED", "totalMergeRanges":0, "processedMergeRanges":0, "totalUploadRanges":12559, "processedUploadRanges":12569, "startTimeUpload":"2024-10-22T14:12:35.052Z", "endTimeUpload":"2024-10-22T16:06:18.415Z" }, { "entityType":"CONTRIBUTOR", "status":"UPLOAD_COMPLETED", "totalMergeRanges":0, "processedMergeRanges":0, "totalUploadRanges":4095, "processedUploadRanges":4095, "startTimeUpload":"2024-10-22T14:12:34.509Z", "endTimeUpload":"2024-10-22T15:12:19.081Z" }, { "entityType":"CLASSIFICATION", "status":"UPLOAD_COMPLETED", "totalMergeRanges":0, "processedMergeRanges":0, "totalUploadRanges":4095, "processedUploadRanges":4095, "startTimeUpload":"2024-10-22T14:12:35.088Z", "endTimeUpload":"2024-10-22T15:26:05.314Z" } ]

Resource utilization

Service CPU Utilization

chrome_i2MwKRUfkE.png

Memory Utilization

 

chrome_hxRtPGrfvY.png

 

chrome_Ll9pKJadLj.png

Instance CPU Utilization

 

chrome_90pLYBYa1N.png

DB CPU Utilization

chrome_yMUaQwcIdC.png

DB Connections

chrome_ogBAEz5gNB.png

Open Search metrics

Subrange of reindexing process from 13:02 - 16:06UTC. A Graph was added to see detailed behavior aggregated on the graph above.

chrome_uYUiXI7me7.png

 

CPU utilization percentage for all data nodes

chrome_w6FKcWgel3.png

Memory usage percentage for all data nodes

Average JVM Memory Pressure

chrome_5m5TGAcF2D.png

Maximum memory utilization (SysMemoryUtilization)

chrome_h1NIkel3jx.png

Appendix

Infrastructure

PTF-environment rcon

  • 9 m6g.2xlarge EC2 instances located in US East (N. Virginia)us-east-1 

  • 1 instance of db.r6g.8xlarge database, writer instance.

  • MSK - fse-tenant
    4 kafka.m7g.xlarge brokers in 2 zones

    • Apache Kafka version 3.7.x

    • EBS storage volume per broker 300 GiB

    • auto.create.topics.enable=true

    • log.retention.minutes=480

    • default.replication.factor=3

  • OpenSearch ptf-reindex-test cluster

    • OpenSearch version 2.13

    • Data nodes

      • Availability Zone(s) - 2-AZ without standby

      • Instance type - r6g.4xlarge.search

      • Number of nodes - 4

      • EBS volume size (GiB) - 300

      • Provisioned IOPS - 3000IOPS

      • Provisioned Throughput (MiB/s) - 250 MiB/s

    • Dedicated master nodes
      Enabled - No

Module versions

Module

Task Def. Revision

Module Version

Task Count

Mem Hard Limit

Mem Soft limit

CPU units

Xmx

MetaspaceSize

MaxMetaspaceSize

rcon-pvt

mod-search

8

mod-search:4.0.0-SNAPSHOT.281

4

2592

2480

2048

-XX:MaxRAMPercentage=85.0

512

1024

mod-authtoken

3

mod-authtoken:2.16.0-SNAPSHOT.303

2

1440

1152

0

922

88

128

mod-inventory-storage

3

mod-inventory-storage:27.2.0-SNAPSHOT.773

4

4096

3690

0

3076

512

1024

mod-inventory

2

mod-inventory:20.3.0-SNAPSHOT.546

2

2880

2592

0

1814

384

512

mod-users

2

mod-users:19.3.3-SNAPSHOT.702

2

1024

896

0

768

88

128

nginx-okapi

2

nginx-okapi:2023.06.14

2

1024

896

0

0

0

0

okapi-b

2

okapi:5.3.0

3

1684

1440

0

922

384

512

Cluster Resources - rcon-pvt (Wed Oct 23 12:15:43 UTC 2024)

 

 

 

 

 

 

 

 

 

Module

Task Definition Revision

Module Version

Task Count

Mem Hard Limit

Mem Soft Limit

CPU Units

Xmx

Metaspace Size

Max Metaspace Size

mod-remote-storage

2

mod-remote-storage:3.2.1-SNAPSHOT.171

2

4920

4472

0

3960

512

512

mod-finance-storage

2

mod-finance-storage:8.7.0-SNAPSHOT.183

2

1024

896

0

700

88

128

mod-ncip

2

mod-ncip:1.14.6-SNAPSHOT.233

2

1024

896

0

768

88

128

mod-agreements

2

mod-agreements:7.1.0-SNAPSHOT.237

2

1592

1488

0

0

0

0

mod-ebsconet

2

mod-ebsconet:2.3.0-SNAPSHOT.80

2

1248

1024

0

700

128

256

mod-organizations

2

mod-organizations:2.0.0-SNAPSHOT.95

2

1024

896

0

700

88

128

mod-consortia

2

mod-consortia:1.2.0-SNAPSHOT.22

2

5136

4776

0

4416

384

512

edge-sip2

2

edge-sip2:3.3.0-SNAPSHOT.264

2

1024

896

0

768

88

128

mod-serials-management

2

mod-serials-management:1.1.0-SNAPSHOT.46

2

2480

2312

0

1792

384

512

mod-settings

2

mod-settings:1.0.4-SNAPSHOT.67

2

1024

896

0

768

88

128

mod-data-import

2

mod-data-import:3.2.0-SNAPSHOT.189

1

2048

1844

0

1292

384

512

mod-search

8

mod-search:4.0.0-SNAPSHOT.281

4

2592

2480

2048

0

512

1024

edge-dematic

2

edge-dematic:2.3.0-SNAPSHOT.143

1

1024

896

0

768

88

128

mod-inn-reach

2

mod-inn-reach:3.2.1-SNAPSHOT.102

2

3600

3240

0

2880

512

1024

mod-record-specifications

2

mod-record-specifications:1.0.0-SNAPSHOT.4

2

1024

896

0

768

88

128

mod-tags

2

mod-tags:2.2.1-SNAPSHOT.138

2

1024

896

0

768

88

128

mod-authtoken

3

mod-authtoken:2.16.0-SNAPSHOT.303

2

1440

1152

0

922

88

128

edge-courses

2

edge-courses:1.5.0-SNAPSHOT.1160

2

1024

896

0

768

88

128

mod-notify

2

mod-notify:3.2.1-SNAPSHOT.268

2

1024

896

0

768

88

128

mod-inventory-update

2

mod-inventory-update:3.4.2-SNAPSHOT.100

2

1024

896

0

768

88

128

mod-configuration

2

mod-configuration:5.11.0-SNAPSHOT.355

2

1024

896

0

768

88

128

mod-orders-storage

2

mod-orders-storage:13.8.0-SNAPSHOT.245

2

1024

896

0

700

88

128

edge-caiasoft

2

edge-caiasoft:2.3.0-SNAPSHOT.105

2

1024

896

0

768

88

128

mod-login-saml

2

mod-login-saml:2.9.0-SNAPSHOT.291

2

1024

896

0

768

88

128

mod-erm-usage-harvester

2

mod-erm-usage-harvester:5.0.0-SNAPSHOT.133

2

1024

896

0

768

88

128

mod-gobi

2

mod-gobi:2.9.0-SNAPSHOT.259

2

1024

896

0

700

88

128

mod-licenses

2

mod-licenses:6.1.0-SNAPSHOT.163

2

2480

2312

0

1792

384

512

mod-password-validator

2

mod-password-validator:3.2.2-SNAPSHOT.149

2

1440

1298

0

768

384

512

edge-dcb

3

edge-dcb:1.2.0-SNAPSHOT.39

2

1024

896

0

768

88

128

mod-bulk-operations

2

mod-bulk-operations:2.1.0-SNAPSHOT.119

2

3072

2600

0

1536

384

512

mod-fqm-manager

2

mod-fqm-manager:2.1.0-SNAPSHOT.1189

2

3000

2600

0

768

88

128

mod-graphql

2

mod-graphql:1.12.1.412

2

1024

896

0

768

88

128

mod-finance

2

mod-finance:5.0.0-SNAPSHOT.174

2

1024

896

0

700

88

128

mod-erm-usage

2

mod-erm-usage:5.0.0-SNAPSHOT.109

2

2800

2550

0

1800

384

512

mod-batch-print

2

mod-batch-print:1.2.0-SNAPSHOT.15

2

1024

896

0

768

88

128

mod-tlr

2

mod-tlr:1.0.0-SNAPSHOT.8

2

1024

896

0

768

88

128

mod-lists

2

mod-lists:2.1.0-SNAPSHOT.1303

2

3000

2600

0

2048

384

512

mod-copycat

2

mod-copycat:1.6.1-SNAPSHOT.208

2

1024

512

0

768

88

128

mod-entities-links

5

mod-entities-links:3.1.0-SNAPSHOT.113

2

2592

2480

0

1440

0

1024

mod-permissions

3

mod-permissions:6.6.0-SNAPSHOT.386

2

1684

1544

0

1024

384

512

pub-edge

2

pub-edge:2023.06.14

2

1024

896

0

768

0

0

mod-orders

2

mod-orders:12.9.0-SNAPSHOT.401

2

2048

1740

0

1024

384

512

edge-patron

2

edge-patron:5.2.0-SNAPSHOT.174

2

1024

896

0

768

88

128

mod-marc-migrations

11

mod-marc-migrations:1.0.0-SNAPSHOT.8

2

1024

896

0

768

88

128

edge-ncip

3

edge-ncip:1.10.2-SNAPSHOT.116

2

1024

896

0

768

88

128

edge-inn-reach

3

edge-inn-reach:3.3.0-SNAPSHOT.69

2

1024

896

0

768

88

128

mod-users-bl

2

mod-users-bl:7.9.0-SNAPSHOT.318

2

1440

1152

0

922

88

128

mod-oa

2

mod-oa:2.1.0-SNAPSHOT.66

2

1024

896

0

768

88

128

mod-inventory-storage

3

mod-inventory-storage:27.2.0-SNAPSHOT.773

4

4096

3690

0

3076

512

1024

mod-invoice

2

mod-invoice:5.9.0-SNAPSHOT.205

2

1440

1152

0

922

88

128

mod-user-import

2

mod-user-import:3.9.0-SNAPSHOT.197

2

1024

896

0

768

88

128

mod-sender

2

mod-sender:1.12.1-SNAPSHOT.100

2

1024

896

0

768

88

128

edge-oai-pmh

2

edge-oai-pmh:2.10.0-SNAPSHOT.174

2

1512

1360

0

1440

384

512

mod-data-export-worker

3

mod-data-export-worker:3.3.0-SNAPSHOT.233

2

3072

2048

0

2048

384

512

mod-rtac

2

mod-rtac:3.7.0-SNAPSHOT.203

2

1024

896

0

768

88

128

mod-circulation-storage

2

mod-circulation-storage:17.3.0-SNAPSHOT.412

2

2880

2592

0

1814

384

512

mod-source-record-storage

3

mod-source-record-storage:5.9.0-SNAPSHOT.405

2

5600

5000

0

3500

384

512

mod-calendar

2

mod-calendar:3.2.0-SNAPSHOT.229

2

1024

896

0

768

88

128

mod-event-config

2

mod-event-config:2.7.2-SNAPSHOT.110

2

1024

896

0

768

88

128

mod-courses

3

mod-courses:1.4.11-SNAPSHOT.155

2

1024

896

0

768

88

128

mod-circulation-item

2

mod-circulation-item:1.0.1-SNAPSHOT.26

2

1024

896

0

0

0

0

mod-inventory

2

mod-inventory:20.3.0-SNAPSHOT.546

2

2880

2592

0

1814

384

512

mod-email

2

mod-email:1.17.1-SNAPSHOT.128

2

2800

2550

0

1800

384

512

mod-requests-mediated

2

mod-requests-mediated:1.0.0-SNAPSHOT.4

2

1024

896

0

768

88

128

mod-circulation

2

mod-circulation:24.3.0-SNAPSHOT.685

2

2880

2592

0

1814

384

512

mod-pubsub

2

mod-pubsub:2.15.0-SNAPSHOT.224

2

1536

1440

0

922

384

512

mod-di-converter-storage

2

mod-di-converter-storage:2.3.0-SNAPSHOT.124

2

1024

896

0

768

88

128

edge-rtac

2

edge-rtac:2.7.3-SNAPSHOT.234

2

1024

896

0

768

88

128

edge-orders

2

edge-orders:3.1.0-SNAPSHOT.156

2

1024

896

0

768

88

128

mod-users

2

mod-users:19.3.3-SNAPSHOT.702

2

1024

896

0

768

88

128

mod-template-engine

2

mod-template-engine:1.20.1-SNAPSHOT.118

2

1024

896

0

768

88

128

mod-patron-blocks

2

mod-patron-blocks:1.11.0-SNAPSHOT.163

2

1024

896

0

768

88

128

mod-audit

2

mod-audit:2.9.1-SNAPSHOT.216

2

1024

896

0

768

88

128

edge-fqm

3

edge-fqm:2.1.0-SNAPSHOT.100

2

1024

896

0

768

88

128

mod-source-record-manager

2

mod-source-record-manager:3.9.0-SNAPSHOT.353

2

5600

5000

0

3500

384

512

nginx-edge

2

nginx-edge:2023.06.14

2

1024

896

0

0

0

0

mod-quick-marc

2

mod-quick-marc:5.2.0-SNAPSHOT.153

1

2288

2176

0

1664

384

512

nginx-okapi

2

nginx-okapi:2023.06.14

2

1024

896

0

0

0

0

okapi-b

2

okapi:5.3.0

3

1684

1440

0

922

384

512

mod-feesfines

2

mod-feesfines:19.2.0-SNAPSHOT.198

2

1024

896

0

768

88

128

mod-invoice-storage

2

mod-invoice-storage:5.9.0-SNAPSHOT.138

2

1872

1536

0

1024

384

512

mod-reading-room

2

mod-reading-room:1.0.0-SNAPSHOT.12

2

1024

896

0

768

88

128

mod-dcb

2

mod-dcb:1.1.3-SNAPSHOT.40

2

1024

896

0

768

88

128

mod-service-interaction

2

mod-service-interaction:4.1.0-SNAPSHOT.126

2

2048

1844

0

1290

384

512

mod-patron

2

mod-patron:6.2.0-SNAPSHOT.165

2

1024

896

0

768

88

128

mod-data-export

5

mod-data-export:5.1.0-SNAPSHOT.240

1

2592

2480

0

1440

88

1024

mod-oai-pmh

2

mod-oai-pmh:3.14.0-SNAPSHOT.402

2

4096

3690

0

3076

384

512

edge-connexion

2

edge-connexion:1.4.0-SNAPSHOT.88

2

1024

896

0

768

88

128

mod-notes

2

mod-notes:5.3.0-SNAPSHOT.325

2

1024

896

0

952

384

512

mod-kb-ebsco-java

3

mod-kb-ebsco-java:4.2.0-SNAPSHOT.178

2

1024

896

0

768

88

128

mod-organizations-storage

2

mod-organizations-storage:4.8.0-SNAPSHOT.133

2

1024

896

0

700

88

128

mod-data-export-spring

2

mod-data-export-spring:3.3.1-SNAPSHOT.167

1

2048

1844

0

1536

384

512

mod-login

2

mod-login:7.12.0-SNAPSHOT.326

2

1440

1298

0

768

384

512

pub-okapi

2

pub-okapi:2023.06.14

2

1024

896

0

768

0

0

mod-eusage-reports

2

mod-eusage-reports:3.0.0-SNAPSHOT.73

2

1024

896

0

768

88

128

Methodology/Approach

  • Use consortium cluster for testing (rcon in our case).

  • Configure the environment according to Infrastructure parameters and requirements that are in the ticket PERF-889: ECS Reindex for mod-search (classification browse)Closed

  • Reindex process was started from the JMeter script using POST request /search/index/instance-records/reindex/full without any parameters on central tenant. For all other tenants in consortium cluster reindex will be performed automatically.

  • Reindex, get the results for indexing time and size from GET /search/index/instance-records/reindex/status

  • Script on the http://github.com/folio-org/perf-testing/mod-search

 

 

Additional Testing with mod-search:4.0.11

Overview

Retesting of reindex In scope of PERF-1087: [Ramsons] [ECS] Reindex for mod-search (Call Number Browse Refactor)Closed after call number browse refactoring. Goal of retest is to measure performance of mod-search reindex and it affect on DI (Data Import) running on the background.

Whole process of reindex consists of two phases - “Merging“ and “Uploading“, takes place in sequence.

  • “Merging” phase consists of “items merging“ and “holdings merging“ (happening at the same time, concurrently)

  • “Uploading” phase consists of Instance, Subject, Contributor, Classification, Call_number uploads to OS (open search). Happing at the same time, concurrently.

Summary

  • Both tests performed - finished successfully. All data reindexed;

  • Tests performed with 8 mod-search tasks 2xLarge Open Search and 8xLarge DB size.

  • For Bugfest-like data amount on ECS environment full reindex ended in 45-52 minutes (including merging and uploading phases);

  • Data Import 25K instances, holdings, items + bib creation ended successfully in 6 minutes, on same configuration but without reindexing on the background it takes 5 min 30 sec (latest result for 25K on same environemnt with default configurations is 10 min 30 s Data Import test report Ramsons [ECS]). Performance improvement of DI explained by scaled up DB up to 8xLarge instance. Acceptance criteria met (DI affected less than 5 %).

  • Reindex process affected by Data import. Merge phase duration increased in 6 min.

  • Deadlocks is still observable during reindexing MSEARCH-932: Simplify bulk failure error logsClosed

  • DB CPU utilization percentage with 8xLarge shape is ±35%.

  • All services (mod-inventory-storage, mod-search) resource usages is predicable and low 12-15 % CPU for mod-inventory-storage and less than 8% for mod-search. No memory leaks or memory anomalies detected.

  • OpenSearch CPU reached 96% with 600-650K operations/sec. (note: OS data nodes in 2xLarge. More about infrastructure in infrastructure section). Probably this shape may be set as minimum required for reindexing.

  • OpenSearch memory utilisation reached 95% during data saving phase of reindexing.

Results

 

[

  {

    "entityType": "ITEM",

    "status": "MERGE_COMPLETED",

    "totalMergeRanges": 13156,

    "processedMergeRanges": 13156,

    "totalUploadRanges": 0,

    "processedUploadRanges": 0,

    "startTimeMerge": "2025-04-07T12:23:18.088Z",

    "endTimeMerge": "2025-04-07T12:52:54.494Z"

  },

  {

    "entityType": "HOLDINGS",

    "status": "MERGE_COMPLETED",

    "totalMergeRanges": 7554,

    "processedMergeRanges": 7554,

    "totalUploadRanges": 0,

    "processedUploadRanges": 0,

    "startTimeMerge": "2025-04-07T12:23:18.116Z",

    "endTimeMerge": "2025-04-07T12:53:38.067Z"

  },

  {

    "entityType": "INSTANCE",

    "status": "UPLOAD_COMPLETED",

    "totalMergeRanges": 0,

    "processedMergeRanges": 0,

    "totalUploadRanges": 3004,

    "processedUploadRanges": 3004,

    "startTimeUpload": "2025-04-07T12:53:38.500Z",

    "endTimeUpload": "2025-04-07T13:07:27.370Z"

  },

  {

    "entityType": "SUBJECT",

    "status": "UPLOAD_COMPLETED",

    "totalMergeRanges": 0,

    "processedMergeRanges": 0,

    "totalUploadRanges": 4096,

    "processedUploadRanges": 4096,

    "startTimeUpload": "2025-04-07T12:53:38.552Z",

    "endTimeUpload": "2025-04-07T13:07:27.415Z"

  },

  {

    "entityType": "CONTRIBUTOR",

    "status": "UPLOAD_COMPLETED",

    "totalMergeRanges": 0,

    "processedMergeRanges": 0,

    "totalUploadRanges": 4096,

    "processedUploadRanges": 4096,

    "startTimeUpload": "2025-04-07T12:53:39.284Z",

    "endTimeUpload": "2025-04-07T13:07:40.748Z"

  },

  {

    "entityType": "CLASSIFICATION",

    "status": "UPLOAD_COMPLETED",

    "totalMergeRanges": 0,

    "processedMergeRanges": 0,

    "totalUploadRanges": 4096,

    "processedUploadRanges": 4096,

    "startTimeUpload": "2025-04-07T12:53:39.279Z",

    "endTimeUpload": "2025-04-07T13:07:46.592Z"

  },

  {

    "entityType": "CALL_NUMBER",

    "status": "UPLOAD_COMPLETED",

    "totalMergeRanges": 0,

    "processedMergeRanges": 0,

    "totalUploadRanges": 4096,

    "processedUploadRanges": 4096,

    "startTimeUpload": "2025-04-07T12:53:39.820Z",

    "endTimeUpload": "2025-04-07T13:07:56.340Z"

  }

]

 

[

  {

    "entityType": "ITEM",

    "status": "MERGE_COMPLETED",

    "totalMergeRanges": 13156,

    "processedMergeRanges": 13156,

    "totalUploadRanges": 0,

    "processedUploadRanges": 0,

    "startTimeMerge": "2025-04-07T14:06:17.861Z",

    "endTimeMerge": "2025-04-07T14:41:28.256Z"

  },

  {

    "entityType": "HOLDINGS",

    "status": "MERGE_COMPLETED",

    "totalMergeRanges": 7554,

    "processedMergeRanges": 7554,

    "totalUploadRanges": 0,

    "processedUploadRanges": 0,

    "startTimeMerge": "2025-04-07T14:06:17.883Z",

    "endTimeMerge": "2025-04-07T14:42:09.587Z"

  },

  {

    "entityType": "INSTANCE",

    "status": "UPLOAD_COMPLETED",

    "totalMergeRanges": 0,

    "processedMergeRanges": 0,

    "totalUploadRanges": 3029,

    "processedUploadRanges": 3029,

    "startTimeUpload": "2025-04-07T14:42:09.972Z",

    "endTimeUpload": "2025-04-07T14:56:20.411Z"

  },

  {

    "entityType": "SUBJECT",

    "status": "UPLOAD_COMPLETED",

    "totalMergeRanges": 0,

    "processedMergeRanges": 0,

    "totalUploadRanges": 4096,

    "processedUploadRanges": 4096,

    "startTimeUpload": "2025-04-07T14:42:09.944Z",

    "endTimeUpload": "2025-04-07T14:56:24.277Z"

  },

  {

    "entityType": "CONTRIBUTOR",

    "status": "UPLOAD_COMPLETED",

    "totalMergeRanges": 0,

    "processedMergeRanges": 0,

    "totalUploadRanges": 4096,

    "processedUploadRanges": 4096,

    "startTimeUpload": "2025-04-07T14:42:10.570Z",

    "endTimeUpload": "2025-04-07T14:56:41.420Z"

  },

  {

    "entityType": "CLASSIFICATION",

    "status": "UPLOAD_COMPLETED",

    "totalMergeRanges": 0,

    "processedMergeRanges": 0,

    "totalUploadRanges": 4096,

    "processedUploadRanges": 4096,

    "startTimeUpload": "2025-04-07T14:42:10.589Z",

    "endTimeUpload": "2025-04-07T14:56:43.727Z"

  },

  {

    "entityType": "CALL_NUMBER",

    "status": "UPLOAD_COMPLETED",

    "totalMergeRanges": 0,

    "processedMergeRanges": 0,

    "totalUploadRanges": 4096,

    "processedUploadRanges": 4096,

    "startTimeUpload": "2025-04-07T14:42:11.035Z",

    "endTimeUpload": "2025-04-07T14:56:51.025Z"

  }

]

Test #

Merge phase

Upload phase

Comment

Test #

Merge phase

Upload phase

Comment

1

30 min

15 min

 

2

36 min

16 min

DI 25K create instances holdings and items + marc BIB on the background

Detailed results analysis/comparison

Test 2 is slower by 6 minutes on merging phase and 1,5 - 2 minutes slower on uploading.

Merging

records test1

records test2

duration test 1

duration test 2

Duration Change

Merging

records test1

records test2

duration test 1

duration test 2

Duration Change

ITEM

13,156

13,156

12:23–12:52 (~29min)

14:06–14:41 (~35min)

 

+6 min

HOLDINGS

7,554

7,554

12:23–12:53 (~30min)

14:06–14:42 (~36min)

Uploading

Ranges (test1)

Ranges (test2)

Duration (test1)

Time (test2)

Duration Change

Uploading

Ranges (test1)

Ranges (test2)

Duration (test1)

Time (test2)

Duration Change

INSTANCE

3,004

3,029*

12:53–13:07 (~14min)

14:42–14:56 (~14min)

Same

SUBJECT

4,096

4,096

12:53–13:07 (~14min)

14:42–14:56 (~14min)

Same

CONTRIBUTOR

4,096

4,096

12:53–13:07 (~14min)

14:42–14:56 (~15.5min)

+1.5 min

CLASSIFICATION

4,096

4,096

12:53–13:07 (~14min)

14:42–14:56 (~16min)

+2 min

CALL_NUMBER

4,096

4,096

12:53–13:08 (~15min)

14:42–14:57 (~15.5min)

~Same

 

*note: here amount of instances uploaded changed for test #2 as there was data import for 25K on the background.

 

 

Resource utilization

OpenSearch metrics

Open Search CPU usage showed that it’s almost reached its capacity. Scaling up may be considered as a step of improvement. All other metrics are in normal shape.

image-20250408-203302.png
image-20250408-210425.png
image-20250408-210531.png

 

image-20250408-203100.png

 

image-20250408-204115.png

 

Instance CPU

 

image-20250408-202441.png

 

Services metrics

image-20250408-202208.png

 

Note: no signs of memory leaks is observable. memory usage of all involved modules come back to normal after testing.

image-20250408-202332.png

 

DB Metrics

DB CPU is in good shape and reached 35% max. For cost optimisation may be considered to scale it down.

image-20250408-194224.png

 

 

image-20250408-193528.png

 

 

image-20250408-193637.png
image-20250408-213259.png

 

Infrastructure

Module

Task Def. Revision

Module Version

Task Count

Mem Hard Limit

Mem Soft limit

CPU units

Xmx

MetaspaceSize

MaxMetaspaceSize

rcon-pvt

mod-search

28

mod-search:4.0.11

8

2592

2480

0

1440

512

1024

mod-inventory-storage

20

mod-inventory-storage:28.0.9

2

4096

3690

0

3076

512

1024

 

PTF-environment rcon

  • 6 m6g.2xlarge EC2 instances located in US East (N. Virginia)us-east-1 

  • 1 instance of db.r6g.8xlarge database, writer instance.

  • MSK - fse-tenant
    4 kafka.m7g.xlarge brokers in 2 zones

    • Kafka mode: KRaft

    • Apache Kafka version 3.7.x

    • EBS storage volume per broker 300 GiB

    • auto.create.topics.enable=true

    • log.retention.minutes=480

    • default.replication.factor=3

  • OpenSearch ptf-reindex-test cluster

    • OpenSearch version 2.13

    • Data nodes

      • Availability Zone(s) - 2-AZ without standby

      • Instance type - r6g.2xlarge.search

      • Number of nodes - 4

      • EBS volume size (GiB) - 300

      • Provisioned IOPS - 3000IOPS

      • Provisioned Throughput (MiB/s) - 250 MiB/s

    • Dedicated master nodes
      Enabled - No

 

 

 

 

 

 

 

Related content