Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Table of Contents

Info
titleWIP

Work in progress...

...

  1. On average edge-rtac GET_/rtac?instanceIds=id1,id2,id3,idn API call takes 807 ms for 50 instance with 3,4,5,6,7 holdings. This is an improvement from 2.6 seconds in Honeysuckle.
  2. On average mod-rtac POST_/rtac-batch API call takes 487 ms for 50 instances with 3,4,5,6,7 holdings. This is an improvement from 2.6 seconds in Honeysuckle.
  3. On running mod-inventory-storage POST_inventory-hierarchy/items-and-holdings for 20 concurrent virtual users API call takes 500 ms for 50 instances with 3,4,5,6,7 holdings. This is an improvement from 9.3 seconds in Honeysuckle. 

Test Runs

Test

Concurrent Virtual Users

Duration

Holdings per instance

API call

1. 

1

30 min

greater than 300

mod-rtac POST https://[hostName]/rtac-batch
2.

1

30 mingreater than 300edge-rtac GET https://edge-[hostName]/rtac?instanceIds=id1,id2,id3,id4,id5,id6,id7,id8,id9,id10&apikey={API_KEY}&fullPeriodicals=true
3.130 min50 instances with a mix of 3,4,5,6,7 holdings per instanceedge-rtac GET https://edge-[hostName]/rtac?instanceIds=id1,id2,id3,id4,id5,id6,id7,id8,id9,id10&apikey={API_KEY}&fullPeriodicals=true
4.130 min50 instances with a mix of 3,4,5,6,7 holdings per instancemod-rtac POST https://[hostName]/rtac-batch
5.215 min50 instances with a mix of 3,4,5,6,7 holdings per instancemod-rtac POST https://[hostName]/rtac-batch
6.2015 min50 instances with a mix of 3,4,5,6,7 holdings per instancemod-rtac POST https://[hostName]/rtac-batch
7.1515 min50 instances with a mix of 3,4,5,6,7 holdings per instancemod-inventory-storage POST https://[hostName]/inventory-hierarchy/items-and-holdings 
8.2015 min50 instances with a mix of 3,4,5,6,7 holdings per instancemod-inventory-storage POST https://[hostName]/inventory-hierarchy/items-and-holdings 


Results

mod-rtac

A mod-rtac level request to get all open loans for greater than 300 holdings per instance

POST /rtac-batch for 30 minutesTotal InstancesTotal HoldingsAverage 95th %tileAverage (Honeysuckle)Delta
1 uservUser1333790 ms854 ms529 ms+261 ms
1 user1 vUser50mix of 3,4,5,6,7487 ms516 ms2.57 seconds-2.1 sec
1 user1 vUser30>=10 (one has 5k) from 
Jira Legacy
serverSystem Jira
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyPERF-895
2659 ms2933 ms--
1 user1 vUser1>=10 from 
Jira Legacy
serverSystem Jira
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyPERF-895
82 ms86 ms--

...

This test was run to exaggerate with 20 users virtual users to recreate an error from mod-rtac. Out of 50 instance lookups, 3 lookups failed with facade error mapping.

POST /rtac-batch for 15 minutesTotal InstancesTotal HoldingsAverage 95th %tileAverage (Honeysuckle)Delta
2 users2 vUsers50mix of 3,4,5,6,7538 ms627 ms2.97 seconds-2.4 sec
20 users20 vUsers50mix of 3,4,5,6,73622 ms4194 ms21.75 seconds-18.1 sec

...

mod-rtac calls inventory-hierarchy.  API tests were run for 15 virtual users and 20 virtual users. No errors were reported.

POST inventory-hierarchy/items-and-holdings for 15 minutesTotal InstancesTotal HoldingsAverage 95th %tileAverage (Honeysuckle)Delta
15 users15 vUsers50mix of 3,4,5,6,7371 ms513 ms7.11 seconds-6.7 sec
20 users20 vUsers50mix of 3,4,5,6,7500 ms704 ms9.34 seconds-8.8 sec


edge-rtac

An edge-rtac level request to get all open loans for greater than 300 holdings per instance

GET /rtac for 30 minutesTotal InstancesTotal HoldingsAverage 95th %tileAverage (Honeysuckle)Delta
1 user1 vUser1333800 ms972 ms721 ms+79 ms
1 user1 vUser50mix of 3,4,5,6,7807 ms1349 ms2.58 seconds-1.7 sec
1 user1 vUser50mix of 11,125796 ms10997 ms--
2 users2 vUsers50mix of 11,126904 ms14619 ms--
20 users20 vUsers50mix of 11,1234725 ms57423 ms--
1 user1 vUser30>=10 (one has 5k) from  
Jira Legacy
serverSystem Jira
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyPERF-895
4887 ms5165 ms--
50 users50 vUsers30>=10 (one has 5k) from  
Jira Legacy
serverSystem Jira
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyPERF-895
63966 ms10123 ms--
1 user1 vUser1>=10 (one has 5k) from  
Jira Legacy
serverSystem Jira
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyPERF-895
239 ms412 ms--

...


Average Time, ms

Module

Query

1 user1 vUser119 msmod_inventory_storage

select * from get_items_and_holdings_view($1,$2)

50 instances with a mix of 3,4,5,6,7 holdings per instance


Average Time, ms

Module

Query

20 users20 vUsers1057 msmod_inventory_storage

select * from get_items_and_holdings_view($1,$2)


RDS CPU Utilization

CPU is around 99.5% for /inventory-hierarchy. For 1 user was about 18%

...

ModuleTask Def. RevisionModule VersionTask CountMem Hard LimitMem Soft limitCPU unitsXmxMetaspaceSizeMaxMetaspaceSize
pcp1qcp1-pvt

mod-rtac5
mod-rtac:3.6.0
2102489612876888128
mod-authtoken6
mod-authtoken:2.15.1
21440115251292288128
mod-permissions10
mod-permissions:6.5.0
2168415445121024384512
mod-inventory-storage5
mod-inventory-storage:27.1.0
24096369020483076384512
mod-circulation-storage5
mod-circulation-storage:17.2.0
22880259215361814384512
mod-inventory5
mod-inventory:20.2.0
22880259210241814384512
mod-circulation5
mod-circulation:24.2.0
22880259215361814384512
edge-rtac5
edge-rtac:2.7.1
2102489612876888128
nginx-okapi5
nginx-okapi:2023.06.14
21024896128000
okapi5
okapi:5.3.0
3168414401024922384512

Methodology/Approach

Run the test from the script (located in the "workflows-scripts/RTAC/rtac-all-for-regress" folder on GitHub) one by one. 8 tests as described  in Test Runs.


There are pictures of Explain Analyze of long-running query: