Let's get the Okapi logs from the Chalmers environment that have timings for the operations from
When debugging performance of particular API calls (especially the business logic ones) I'd recommend we use this tool:
Which allows to generate call graphs, with timing information on individual calls, from the Okapi log. This is a profiling tool that allows to pinpoint the performance issue.
Environment and data
This might be dependent on data so let's try to gather some information about the data loaded in the Chalmers env:
How many records (instance/holdings/items and requests) are loaded into the system?
The individual response times of check-in (over 2s) in
UICHKIN-111 look particularly high compared to what we see on performance test job:
We must understand where the discrepancy is coming from.
Particular API calls
Based on the screenshots from
UICHKIN-111 the following API calls take the most time and should be investigated:
sub-task 0 (this ticket):
- POST /circulation/checkin-by-barcode – please analyze the call graph for this BL call using giraffe
- GET /inventory/items?query=barcode==123456 – this look up looks slow, almost 1s in some case, let's analyze this with giraffe
- GET /circulation/requests?query=itemId==123456 and status=="Open – Awaiting Pickup" – please create jMeter test(s) with similar query to "folio-perf-platform" and verify if DB indexing (schema.json) is properly set up (no warning from RMB)
- GET /circulation/requests?query=requesterId==f303e908-30dc-4139-9542-4a4e206c4b96 and pickupServicePointId=7c5abc9f-f3d7-4856-b8d7-6712462ca007 and(status=="Closed - Pickup expired" or status=="Open - Awaiting pickup")
- GET /circulation/loans/?query=userId=XXXX and status.name<>Closed