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

Check-out and multiple loans renewal workflow performance is not good for users with large number of loans.

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • P2
    • Resolution: Cannot Reproduce
    • None
    • None
    • 0
    • Vega
    • Lotus (R1 2022) Bug Fix
    • Cornell, TAMU
    • Not a bug

    Description

      Overview:

      1. The open loans page for a user with large quantities of loans put lot of CPU and memory pressure on user's computer. Refer screenshots.
      2. Various API relating to checkout and loan renewal process takes a lot of time to complete. (Refer HAR files attached)
        1. GET /automated-patron-blocks takes >12s
        2. GET /circulation/loans takes >8s
        3. POST /circulation/renew-by-barcode takes > 8s for a single loan renewal
      3. Multiple loans renewal process takes lot of time, > 8 * (no of loans being renewed). Multiple API calls are made to /circulation/renew-by-barcode to renew multiple loans synchronously. Also no spikes observed on CPU utilization of the EC2 and RDS. No slow queries found. Observed for cornell-test, jcnt cluster.
      4. High content download time observed for some APIs like /circulations/loans. Although this can be due to larger latency as observed from India. Refer screenshots and HAR files

      Steps to Reproduce:

      1. Log into some BugFest Juniper environment.
      2. Click Users - FOLIO (ebsco.com)
      3. Open network tab and observe various API timings & Content download timings.
      4. Open Chrome/Edge task manager to observe CPU and memory resources being consumed by the particular tab opened.
      5. Select multiple loans and click renew button on top right
      6. Again observe the network timings for various API calls.

      Expected Results:

      1. The loans page for user should not hamper user's computer responsiveness.
      2. Multiple loans renewal process should take reasonable amount of time.

      Actual Results:

      1. The loans page for user hampers user's PC responsiveness.
      2. Multiple loans renewal process should takes a lot of time.

      Additional Information:

      Suggestions

      1. The open loans page for a user can show loans in a paginated way with a search bar to search for loans.
      2. A batch renewal API should exist and be used to renew multiple loans. The API should do all the validations including the limits setup by the tenant prior to actually renewing the loans. Parallel renewals can be done once the validation succeeds considering all loans. If the validation fails, the user can be presented with appropriate error message and can decide further actions. Example, If the user is trying to renew 4 loans at once when the tenant has a limit of two, the first attempt should fail and the user can be presented with a message and has option to choose which loans he wants to renew (2 out of 4). Override option can also be provided as present in some other workflows

      URL: Users - FOLIO (ebsco.com)
      Interested parties:

      Anya N. Arnold sduvvuri mtraneis zburke

      TestRail: Results

        Attachments

          Issue Links

            Activity

              People

                oleksandrkurash Alexander Kurash
                aditya333 Aditya Kumar
                Votes:
                0 Vote for this issue
                Watchers:
                9 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved:

                  TestRail: Runs

                    TestRail: Cases