Uploaded image for project: 'mod-circulation'
  1. mod-circulation
  2. CIRC-448

investigate and verify backend API performance issues for UICHKIN-111

    XMLWordPrintable

Details

    • CP: sprint 72, CP: sprint 73
    • 2
    • Core: Platform

    Description

      Task

      Let's get the Okapi logs from the Chalmers environment that have timings for the operations from UICHKIN-111.

      When debugging performance of particular API calls (especially the business logic ones) I'd recommend we use this tool:

      https://github.com/folio-labs/giraffe

      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:

      https://jenkins-aws.indexdata.com/job/Automation/job/folio-perf-platform/254/performance/uriReport/jmeter_perf.jtl%3APerf+-+POST+circulation_check-in-by-barcode.endperformanceparameter/

      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

      sub-task 1:

      • GET /inventory/items?query=barcode==123456 – this look up looks slow, almost 1s in some case, let's analyze this with giraffe

      sub-task 2:

      • 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

      TestRail: Results

        Attachments

          1. checkin1.log
            24 kB
          2. checkin1.pdf
            65 kB
          3. checkin2.log
            24 kB
          4. checkin2.pdf
            66 kB
          5. checkin3.log
            16 kB
          6. checkin3.pdf
            50 kB
          7. checkin-timing.log
            46 kB
          8. checkout-timing.log
            59 kB

          Issue Links

            Activity

              People

                hji Hongwei Ji
                jakub Jakub Skoczen
                Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved:

                  TestRail: Runs

                    TestRail: Cases