PTF - Performance Testing of Exporting Circulation Logs
Overview
This document contains performance testing results for Exporting Circulation Log on ECS Central and Member tenants.
The primary focus is to evaluate system behavior under increasing data volumes and identify the threshold at which performance degradation occurs.
Summary
Circulation Log Export scales linearly up to 50K, indicating the inflection point begins around 100K records on both Central and Member tenants.
Export duration on Central tenant is ~10–15% faster than Member, but comparison is influenced by different dataset sizes (1M vs 7M logs).
1K–50K exports complete within ~4 sec–2.5 min and scale near-linearly.
Exports above 100K become heavy — 100K ~4-6 min, 200K takes ~14–18 min, and 300K ~27–31 min.
CICO is impacted by concurrent exports, but the impact of Circulation Log exports on CICO does not increase proportionally with export size.
Check-In/Check-Out response times increase (mostly under 20% on average), with the most notable spikes at the 95th percentile during 30K (37%) and 200K+ (27% - 64%) exports.
Test Runs
Test # | Test Conditions | Status |
1 | Central tenant – Export: 1K, 10K, 30K, 50K, 100K, 200K, 300K records | Completed |
2 | Member tenant – Export: 1K, 10K, 30K, 50K, 100K, 200K, 300K records | Completed |
3 | Member tenant – Export (1K–300K) + CICO background load (8 users) | Completed |
Results
Test №1
This table contains Circulation Log Export durations across multiple export sizes on the Central tenant.
Export scales linearly up to 50K but degrades at 100K. 100K marks the inflection point where per-record cost begins accelerating non-linearly.
| Central tenant | |
Duration | sec/1K | |
1K | 3.9 sec | 3.9 sec |
10K | 14.1 sec | 1.4 sec |
30K | 44.4 sec | 1.4 sec |
50K | 1 min 25 sec | 1.7 sec |
100K | 4 min 33 sec | 2.7 sec |
200K | 14 min 20 sec | 4.3 sec |
300K | 27 min 16 sec | 5.4 sec |
Test №2
This table contains Circulation Log Export durations across multiple export sizes on the Member tenant.
On member tenant follows the same pattern, the inflection point remains at 100K.
| Member tenant | |
Duration | sec/1K | |
1K | 18.8 sec | 18.7 sec |
10K | 28.5 sec | 2.8 sec |
30K | 1 min 17 sec | 2.5 sec |
50K | 2 min 24 sec | 2.8 sec |
100K | 5 min 51 sec | 3.5 sec |
200K | 17 min 55 sec | 5.3 sec |
300K | 30 min 52 sec | 6.1 sec |
Test №3
This table contains Circulation Log Export durations across multiple export sizes on the Member tenant with CICO background load (8 users).
The average impact on CICO ~20%. However, pct95 reveals significant spikes: Check-Out Controller pct95 reaches 1874 ms during 30K export (+37%) and Check-In Controller pct95 hits 984 ms during 200K export (+64%).
The impact of Circulation Log exports on CICO does not increase proportionally with export size.
CICO | Response time, ms | |||||||||||||||
Baseline | Circulation Log Export | |||||||||||||||
| no Export | 1K | 10K | 30K | 50K | 100K | 200K | 300K | ||||||||
Avg | pct95 | Avg | pct95 | Avg | pct95 | Avg | pct95 | Avg | pct95 | Avg | pct95 | Avg | pct95 | Avg | pct95 | |
Check-In Controller | 386 | 600 | 435 | 579 | 472 | 720 | 451 | 816 | 409 | 674 | 420 | 684 | 430 | 984 | 403 | 882 |
Check-Out Controller | 852 | 1366 | 961 | 1396 | 1014 | 1553 | 1022 | 1874 | 861 | 1365 | 1000 | 1716 | 990 | 1677 | 926 | 1736 |
POST_circulation/check-in-by-barcode (Submit_barcode_checkin) | 196 | 311 | 218 | 333 | 214 | 335 | 212 | 361 | 199 | 383 | 203 | 340 | 206 | 348 | 185 | 327 |
POST_circulation/check-out-by-barcode (Submit_barcode_checkou) | 224 | 324 | 247 | 373 | 236 | 409 | 260 | 584 | 210 | 439 | 237 | 375 | 292 | 444 | 220 | 405 |
GET_circulation/loans (Submit_barcode_checkout) | 112 | 146 | 114 | 167 | 119 | 197 | 122 | 290 | 102 | 238 | 121 | 208 | 115 | 207 | 113 | 198 |
Impact of Circulation Log Export on Check-In and Check-Out:
CICO | Delta, ms | |||||||||||||
Circulation Log Export | ||||||||||||||
Transaction | 1K | 10K | 30K | 50K | 100K | 200K | 300K | |||||||
Avg | pct95 | Avg | pct95 | Avg | pct95 | Avg | pct95 | Avg | pct95 | Avg | pct95 | Avg | pct95 | |
Check-In Controller | 49 | -21 | 86 | 120 | 65 | 216 | 23 | 74 | 34 | 84 | 44 | 384 | 17 | 282 |
Check-Out Controller | 109 | 30 | 162 | 187 | 170 | 508 | 9 | -1 | 148 | 350 | 138 | 311 | 74 | 370 |
POST_circulation/check-in-by-barcode (Submit_barcode_checkin) | 22 | 22 | 18 | 24 | 16 | 50 | 3 | 72 | 7 | 29 | 10 | 37 | -11 | 16 |
POST_circulation/check-out-by-barcode (Submit_barcode_checkout) | 23 | 49 | 12 | 85 | 36 | 260 | -14 | 115 | 13 | 51 | 68 | 120 | -4 | 81 |
GET_circulation/loans (Submit_barcode_checkout) | 2 | 21 | 7 | 51 | 10 | 144 | -10 | 92 | 9 | 62 | 3 | 61 | 1 | 52 |
CICO | Delta, % | |||||||||||||
Circulation Log Export | ||||||||||||||
Transaction | 1K | 10K | 30K | 50K | 100K | 200K | 300K | |||||||
Avg | pct95 | Avg | pct95 | Avg | pct95 | |||||||||