Check-in-check-out Test Report (Lotus)

Check-in-check-out Test Report (Lotus)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Overview

This is a report for a series of Check-in-check-out test runs against the Lotus release. 

Back End:

  • mod-circulation-23.0.1

  • mod-circulation-storage-14.0.0

  • mod-inventory-18.1.4

  • mod-inventory-storage-23.0.2

  • mod-authtoken-2.9.1

  • mod-pubsub-2.5.0

  • mod-patron-blocks-1.5.0

  • mod-feesfines-17.1.0

  • okapi-4.13.0

Front End:

  • Item Check-in (folio_checkin-7.0.0)

  • Item Check-out (folio_checkout-8.0.0)

Infrastructure:

  • 75 back-end modules deployed in 159 ECS tasks

  • 3 okapi ECS services

  • 9 m5.xlarge  EC2 instances

  • 2 db.r6g.xlarge AWS RDS instance

  • INFO logging level

High Level Summary

  • Lotus performs much better than Kiwi response times for check-ins are mid 600ms, checkout 900ms - 1000ms, with little variations between 1 and 20 users

  • Database performance is better and uses less CPU compared to Kiwi.

  • Worst-performing APIs are only POST /checkin-by-barcode and POST /checkout-by-barcode.  They have improved since Kiwi, now averaging in the mid 300ms even in the 20 users scenario.

    • GET /circulation/loans takes 185ms in the 20 users case.

Test Runs

Test

Virtual Users

Duration

1.

1 (with 1 mod-inventory and 1 mod-circulation task)

30 mins

2.

5 (with 1 mod-inventory and 1 mod-circulation task)

30 mins

3.

8 (with 1 mod-inventory and 1 mod-circulation task)

30 mins

4.

20 (with 1 mod-inventory and 1 mod-circulation task)

30 mins

5.

1 (repeat with 2 inventory and circ tasks)

30 mins

6.

5 (repeat with 2 inventory and circ tasks)

30 mins

7.

8 (repeat with 2 inventory and circ tasks)

30 mins

8.

20 (repeat with 2 inventory and circ tasks)

30 mins

9.

20 users longevity

24 hours

Results

Response Times (Average of all tests listed above, in seconds)

 

Average (seconds)

50th %tile (seconds)

75th %tile (seconds)

95th %tile  (seconds)

 

Check-in

Check-out

Check-in

Check-out

Check-in

Check-out

Check-in

Check-out

1 user

0.73

1.188

0.682

1.084

0.774

1.24

1

1.812

5 users

0.62

0.976

0.582

0.915

0.662

1.02

0.844

1.44

8 users

0.615

0.971

0.581

0.904

0.654

1.006

0.836

1.428

20 users

0.661

1.052

0.62

0.967

0.702

1.107

0.918

1.593

Response times are consistently good, sub-second for check-ins and a tad over 1 second for check-outs even in the 75th percentile. The variations between 1 and 20 users continue to get smaller (compared to previous releases)

Comparisons to Last Release

The following tables compare Kiwi test results against Lotus General release (deployed at Lotus Bugfest).

Response Time Comparison

In the tables below, the Delta columns express the differences between Kiwi and Lotus releases in percentage.

In general there are no regressions in performance but instead there are improvements in response times across the board.  Check in times improved by at least 15% and check out times consistently around 30%.  The 20 users' response times are also in very similar to 8 users, especially for checkouts. This means that the system is very stable from 1 to 20 users.

Note: LT = Lotus build, KW = Kiwi build

 

Average

50th percentile 

Check-in KW

Check-in LT

Delta

Check-out KW

Check-out LT

Delta

Check-in KW

Check-in LT

Delta

Check-out KW

Check-out LT

Delta

1 user

0.838

0.73

12.89%

1.582

1.188

24.91%

0.767

0.682

11.08%

1.464

1.084

25.96%

5 users

0.73

0.62

15.07%

1.376

0.976

29.07%

0.676

0.582

13.91%

1.272

0.915

28.07%

8 users

0.758

0.615

18.87%

1.392

0.971

30.24%

0.674

0.581

13.80%

1.228

0.904

26.38%

20 users

0.899

0.661

26.47%

1.506

1.052

30.15%

0.731

0.62

15.18%

1.303

0.967

25.79%

 

75th percentile

95th percentile 

Check-in KW

Check-in LT

Delta

Check-out KW

Check-out LT

Delta

Check-in KW

Check-in LT

Delta

Check-out KW

Check-in LT

Delta

1 user

0.915

0.774

15.41%

1.716

1.24

27.74%

1.214

1.000

17.63%

2.486

1.812

27.11%

5 users

0.769

0.662

13.91%

1.448

1.02

29.56%

1.052

0.844

19.77%

1.448

1.440

0.55%

8 users

0.839

0.654

22.05%

1.44

1.006

30.14%

1.202

0.836

30.45%

2.343

1.428

39.05%

20 users

0.931

0.702

24.60%

1.535

1.107

27.88%

1.531

0.918

40.04%

2.504

1.593

36.38%

"Worst" API Comparisons

The APIs identified in the table below were the ones that took over 100ms to execute in Lotus and Kiwi in the 75th percentile.  In Lotus these APIs are generally better especially with 5 or more concurrent users. Impressively the response times of POST checkout-by-barcode and POST check-in-by-barcode all are under 400ms! GET inventory/items' response times are well under 100ms now compared to being on the border in the Kiwi release.

Average Response Time in milliseconds. 

API

1 user  KW (75th %tile)

1 user LT (75th %tile)

5 users KW (75th %tile)

5 users LT (75th %tile) 

8 users KW (75th %tile)

8 users LT (75th %tile)

20 users KW (75th %tile)

20 users LT (75th %tile)

API

1 user  KW (75th %tile)

1 user LT (75th %tile)

5 users KW (75th %tile)

5 users LT (75th %tile) 

8 users KW (75th %tile)

8 users LT (75th %tile)

20 users KW (75th %tile)

20 users LT (75th %tile)

POST checkout-by-barcode

550

435

436

330

428

349

461

384

POST checkin-by-barcode 

444

386

368

298

438

315

504

348

GET circulation/loans

305

222

262

161

267

172

303

196

GET inventory/items

124

97

96

71

92

67

99

75

Longevity Test

Longevity test shows that Check Out response time increased as time went on, but not as aggressive as in Kiwi. 

 

Check In

Check Out

 

Check In

Check Out

1st Hour

0.572s

0.995s

13th Hour

0.526s

1.248s

19th Hour

0.541s