PTF-Test Hybrid DB Deployment on multiple tenants[Galileo environment]. Aurora serverless v2. Part 4

PTF-Test Hybrid DB Deployment on multiple tenants[Galileo environment]. Aurora serverless v2. Part 4

 

Overview

This report details the performance evaluation of two distinct database architectures—Amazon Aurora Serverless v2 and Provisioned RDS (db.r8gd family)—within a multi-tenant FOLIO environment. The objective of this testing phase is to benchmark system stability, scalability, and response times under production-like traffic conditions. Specifically, the evaluation aims to compare the elasticity of Serverless v2 against the consistent performance baseline of provisioned r8gd instances, assessing their ability to handle both "Common Day" and "Worst Day" production load(SMCH) patterns across 20 concurrent tenants.

Ticket: PERF-1424: Perform tests to compare performance with Serverless and high loadClosed

Summary:

  1. Under Common Day load, Aurora Serverless v2 demonstrated better overall performance than the Provisioned r8gd.4xl, delivering consistently lower p90 latencies for heavy inventory operations and authentication workflows. While both architectures processed similar throughput, Serverless v2 proved more efficient at maintaining stable response times and mitigating latency degradation.

  2. Test 6 was deliberately executed to evaluate the lower bounds of DB by downscaling to a db.r8gd.2xl instance under Common Day load. As anticipated, the architecture failed to sustain the 20-tenant concurrency. Severe database memory starvation resulted in a critically high error rate and triggered cascading module restarts, confirming that a 2xlarge instance is strictly insufficient for this baseline workload.

  3. Under Worst Day load conditions, both Aurora Serverless v2 and Provisioned db.r8gd.4xl successfully sustained operations with comparable total throughput. Aurora Serverless demonstrated stronger resilience during heavy I/O tasks, yielding lower p90 latencies for critical inventory operations (e.g., GET inventory items at 4.50s vs 5.15s, and GET inventory instance at 20.95s vs 21.71s). Both architectures proved highly capable of absorbing peak traffic spikes without systemic degradation.

  4. Although the load profile was escalated from Common Day to Worst Day, we did not observe a corresponding increase in overall throughput. To address this bottleneck, we scaled the ECS cluster by allocating 4 tasks to critical modules (mod-inventory, mod-inventory-storage, mod-source-record-manager, and mod-source-record-storage). This infrastructure tuning successfully unblocked the system, increasing total throughput from 1.9k RPS to 2.2k RPS.

  5. Comparing the standard Provisioned db.r8gd.4xl architecture (Test 4) against the identical database configuration paired with a scaled ECS cluster (Test 5) reveals performance improvements under Worst Day load conditions. The ECS tuning eliminated application-level bottlenecks for heavy workflows. Most notably, response times for the critical GET inventory instance operations plummeted from an average of ~17.1s down to ~3.7s, with 90th percentile (p90) latency dropping from 21.71s to 5.67s (a ~74% reduction).

Recommendations & Jiras

Test runs 

Test ID

Architecture

Load Model

Tenant Count

Notes

Status

Test 1

Aurora Serverless v2 (16-128 ACU)

Common Day

20

Baseline for Serverless scalability

PASSED

Test 2

Provisioned db.r8gd.4xl

Common Day

20

Baseline for Provisioned performance

PASSED

Test 3

Aurora Serverless v2 (16-128 ACU)

Worst Day

20

Serverless stress test

PASSED

Test 4

Provisioned db.r8gd.4xl

Worst Day

20

Provisioned stress test

PASSED

Test 5

Provisioned db.r8gd.4xl

Worst Day

20

Tuned ECS cluster (4 tasks for

mod-inventory,mod-inventory-storage, mod-source-record-manager, mod-source-record-storage)

PASSED

Test 6

Provisioned db.r8gd.2xl

Common Day

20

Resource optimization assessment

FAILED

 

Test results

Response time tables

Test 1, 2 - Common day production load

 

Requests

Test 1. Aurora Serverless

Test 2. r8gd.4xl

NumberOfSamples

Average

pct90

NumberOfSamples

Average

pct90

GET bound with parts

4307

315.64 ms

641.30 ms

4449

319.13 ms

666 ms

GET course detail

523830

20.09 ms

36.90 ms

513947

32.96 ms

37 ms

GET course instructors 1

523860

21.63 ms

39 ms

513975

44.67 ms

40 ms

GET course instructors 2

523855

21.39 ms

39.70 ms

513972

28.82 ms

39 ms

GET course instructors 3

523852

21.23 ms

40 ms

513971

31.22 ms

38.90 ms

GET course instructors 4

523847

21.29 ms

40 ms

513970

23.77 ms

39 ms

GET course instructors 5

523845

21.17 ms

38.60 ms

513968

21.25 ms

38 ms

GET course instructors 6

523841

21.15 ms

38 ms

513960

21.28 ms

38.90 ms

GET course list 1

523839

21.36 ms

39.90 ms

513957

32.48 ms

39.90 ms

GET course list 2

523835

21.39 ms

38.80 ms

513954

23.35 ms

39.80 ms

GET course list 3

523834

21.21 ms

39 ms

513950

25.90 ms

39.60 ms

GET holdings by id

1047177

335.81 ms

788.90 ms

1025956

371.44 ms

831 ms

GET holdings list

4311

1.48 s

2.33 s

4452

1.75 s

3.09 s

GET instance storage list

4308

2.03 s

3.82 s

4450

2.25 s

3.28 s

GET institutions

31815

332.30 ms

694.20 ms

32361

319.68 ms

726.90 ms

GET inventory instance 1

4335

16.53 s

19.84 s

4472

16.90 s

22.03 s

GET inventory instance 2

4313

16.40 s

19.82 s

4455

16.78 s

21.54 s

GET inventory items

12423

3.78 s

4.41 s

13332

4.13 s

4.88 s

GET inventory view instances

61827

750.23 ms

1.34 s

62010

812.06 ms

1.47 s

GET item by id 1

4313

346.44 ms

695.80 ms

4454

365.56 ms

793 ms

GET item by id 2

4312

333.77 ms

669.20 ms

4454

335.55 ms

709.20 ms

GET item storage search

12417

1.06 s

1.78 s

13327

1.03 s

1.82 s

GET items by holdings

4307

521.18 ms

970.90 ms

4449

530.59 ms

1.08 s

GET libraries

31817

331.94 ms

693.90 ms

32367

321.67 ms

724.50 ms

GET locations

31824

346.21 ms

710 ms

32372

338.28 ms

735.20 ms

GET material types

31820

344.18 ms

720.80 ms

32370

334.99 ms

751.70 ms

GET metadata job executions

61826

131.34 ms

277.90 ms

62006

170.98 ms

220.50 ms

GET version

456943

18.14 ms

43.90 ms

460624

18.70 ms

47.90 ms

POST login with expiry

234

99.40 ms

239 ms

234

357.25 ms

1.19 s

POST rtac batch

21594

1.69 s

2.32 s

21970

1.37 s

2.21 s

Test 3, Test 4 and Test 5 - Worst day production load

Requests

Test 4. 4xl.r8gd

Test 3. Aurora Aerverless

Test 5. 4xl.r8gd + tuned cluster

NumberOfSamples

Average

pct90

NumberOfSamples

Average

pct90

NumberOfSamples

Average

pct90

GET bound with parts

4108

364.98 ms

708 ms

3876

352.42 ms

688.50 ms

11652