RMB connection caching implementation

RMB connection caching implementation

Overview

  • This document contains the results of testing RMB connection caching implementation. Ticket: PERF-815

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

Summary

  • Compares results of Base Line test(DB_MAXPOOLSIZE=20), Test №1(mod-inventory-storage=40) and Test №2(mod-inventory-storage=40 plus mod-circulation-storage=40) show that shared pool feature leads to performance degradation.

  • The CI/CO response time for Test №3 and Test №3 RERUN (mod-invetory-storage=2500, mod-circulation-storage=500) is lower, and it has a higher number of database connections compared to the previous test run. These results indicate an improvement in performance attributed to the MAXSHAREDPOOLSIZE parameter.

  • Almost all tests involving data import are experiencing errors due to database connection timeouts. More details about errors in the Discussion section.

  • During the comparison test between DB_MAXSHAREDPOOLSIZE = 70 and DB_MAXSHAREDPOOLSIZE = 40, we observed a significant decrease in response time, and importantly, all 15 data imports were successful.

  • When comparing tests with data import for 30 tenants, the test with DB_MAXSHAREDPOOLSIZE=280 stands out. It demonstrates the stable response time and, crucially, successful data import for all 30 tenants.

  • All tests have Check-In errors for tenant 8, looks like a problem with data preparation for 8 tenant.

  • For test №7, 8 and 10  we observe different count of tenants used for data import, but was set 61.

Test Runs 

Test №

Date (UA time zone)

Test Conditions

Results

Baseline Test

2/29/2024, 12:47:18 PM

DB_MAXPOOLSIZE=20 for list of modules 

CICO=8 usersData Import=25K for ONE tenant

Completed

1

03.08.2024 13:34:08

mod-inventory-storage DB_MAXSHAREDPOOLSIZE=40  (per task, 2 tasks = 80 connections total)

other modules DB_MAXPOOLSIZE=20

CICO=8 usersData Import=25K for ONE tenant

Completed

2

03.08.2024 15:23:46

mod-inventory-storage DB_MAXSHAREDPOOLSIZE=40 (per task, 2 tasks = 80 connections total)

mod-circulation-storage DB_MAXSHAREDPOOLSIZE=40

others modules DB_MAXPOOLSIZE=20

CICO=8 usersData Import=25K for ONE tenant

Completed

3

3/9/2024, 4:35:33 PM (UA)

3/9/2024, 1:35:33 PM (UTC)

mod-inventory-storage DB_MAXSHAREDPOOLSIZE=2500

mod-circulation-storage DB_MAXSHAREDPOOLSIZE=500

others modules DB_MAXPOOLSIZE=20

CICO=305 users for 61 tenants

Completed

3 RERUN

4/2/2024, 4:30:01 PM

mod-inventory-storage DB_MAXSHAREDPOOLSIZE=2500

mod-circulation-storage DB_MAXSHAREDPOOLSIZE=500

others modules DB_MAXPOOLSIZE=20

CICO=305 users for 61 tenants

Completed

4

3/11/2024, 5:50:25 PM

mod-inventory-storage DB_MAXSHAREDPOOLSIZE=2500

mod-circulation-storage DB_MAXSHAREDPOOLSIZE=500

Others modules DB_MAXPOOLSIZE=20

CICO=305 users for 61 tenantsData Import=10K for 15 tenants

Completed

5

3/12/2024, 12:03:05 PM

DB_MAXSHAREDPOOLSIZE=40
CICO=305 users for 61 tenantsData Import=10K for 15 tenants

Failed

Data Import

6

3/12/2024, 14:03:50

DB_MAXSHAREDPOOLSIZE=70
CICO=305 users for 61 tenantsData Import=10K for 15 tenants

Completed

7

3/12/2024, 20:23:01

DB_MAXSHAREDPOOLSIZE=140
CICO=305 users for 61 tenants(56)Data Import=10K for 30 tenants

Completed

8

3/13/2024, 7:46:49 PM

DB_MAXSHAREDPOOLSIZE=210
CICO=305 users for 61 tenants(48)Data Import=10K for 30 tenants

Completed

9

3/14/2024, 12:47:15 PM

DB_MAXSHAREDPOOLSIZE=210 for mod-invetory-storage
DB_MAXSHAREDPOOLSIZE=70 for others
CICO=305 users for 61 tenants, Data Import=10K for 30 tenants

Completed

10

3/15/2024, 11:42:14 AM

DB_MAXSHAREDPOOLSIZE=210 for mod-invetory-storage
DB_MAXSHAREDPOOLSIZE=140 for others
CICO=305 users for 61 tenants(41), Data Import=10K for 30 tenants

Completed

11

3/15/2024, 3:19:02 PM

DB_MAXSHAREDPOOLSIZE=280
CICO=305 users for 61 tenants, Data Import=10K for 30 tenants

Completed

Test Results

Baseline Test

DB_MAXPOOLSIZE=20 parameter for list of modules.

Requests

Total per tenant

50th pct

75th pct

95th pct

 

99th pct

Average

CICO Error

Requests

Total per tenant

50th pct

75th pct

95th pct

 

99th pct

Average

CICO Error

CICO_TC_Check-In 

219

0.526

0.65

0.755

0.886

0.573

0

CICO_TC_Check-Out

195

0.999

1.217

1.451

1.566

1.093

0

Requests

Total

OK

KO

% KO

Req/s

Min

50th pct

75th pct

95th pct

99th pct

Max

Average

Latency

Requests

Total

OK

KO

% KO

Req/s

Min

50th pct

75th pct

95th pct

99th pct

Max

Average

Latency

CICO_TC_Check-Out Controller_mob01

195

195

0

0

0.11

0.888

0.999

1.217

1.451

1.566

1.66

1.093

1.343

CICO_TC_Check-In Controller_mob01

219

219

0

0

0.122

0.457

0.526

0.65

0.755

0.886

1.142

0.573

0.692

Test №1

DB_MAXSHAREDPOOLSIZE=40 for mod-inventory-storage and DB_MAXPOOLSIZE=20 parameter for others modules

Requests

Total per tenant

50th pct

75th pct

95th pct

 

99th pct

Average

CICO Error

Requests

Total per tenant

50th pct

75th pct

95th pct

 

99th pct

Average

CICO Error

CICO_TC_Check-In 

207

0.543

0.616

0.79

0.95

0.595

0

CICO_TC_Check-Out

207

1.036

1.204

1.484

1.611

1.121

0

Requests

Total

OK

KO

% KO

Req/s

Min

50th pct

75th pct

95th pct

99th pct

Max

Average

Latency

Requests

Total

OK

KO

% KO

Req/s

Min

50th pct

75th pct

95th pct

99th pct

Max

Average

Latency

CICO_TC_Check-In Controller_mob04

207

207

0

0

0.116

0.466

0.543

0.616

0.79

0.95

2.549

0.595

0.717

CICO_TC_Check-Out Controller_mob04

202

202

0

0

0.113

0.914

1.036

1.204

1.484

1.611

2.28

1.121

1.386

Test №2

DB_MAXSHAREDPOOLSIZE=40 for mod-inventory-storage and mod-circulation-storage plus DB_MAXPOOLSIZE=20 parameter for others modules

Requests

Total per tenant

50th pct

75th pct

95th pct

 

99th pct

Average

CICO Error

Requests

Total per tenant

50th pct

75th pct

95th pct

 

99th pct

Average

CICO Error

CICO_TC_Check-In 

201

0.557

0.716

1.62

3.863

0.786

0

CICO_TC_Check-Out

205

1.047

1.326

2.738

8.324

1.461

0

Requests

Total

OK

KO

% KO

Req/s

Min

50th pct

75th pct

95th pct

99th pct

Max

Average

Latency

Requests

Total

OK

KO

% KO

Req/s

Min

50th pct

75th pct

95th pct

99th pct

Max

Average

Latency

CICO_TC_Check-In Controller_mob06

201

201

0

0

0.115

0.456

0.557

0.716

1.62

3.863