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

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:

CSP Request Details

None

CSP Rejection Details

None

Potential Workaround

None

Attachments

10

Checklist

hide

TestRail: Results

Activity

Show:

Aditya KumarJune 28, 2022 at 6:35 AM

, , Do you suggest that I create a new Jira for this?

Aditya KumarJune 27, 2022 at 6:52 AM

Hi , :

The first part (1) of this issue :

  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.

was reported recently for Michigan state. Lotus HF 1 does improve the backend performance i.e., the API times, but the UI seems to sluggish. I suggested a feature which could improve the performance:

  1. The open loans page for a user can show loans in a paginated way with a search bar to search for loans.

Maybe some additional research should be done with this.

Charlotte WhittFebruary 23, 2022 at 12:01 PM

, , – see the comments above

Stephanie BuckFebruary 22, 2022 at 7:51 PM

Hello, all. I'd like to try to sum up what we've learned here.

1. Renewal has to happen in sequence because you need to check loan rules etc., so they cannot be done asynchronously as suggested 
2. With improved internet speed, renewal performance improves 
3. It was discovered that a significant delay occurs when downloading
4. To improve Renewal performance, it would require feature level work (similar to check out and check in performance improvements), which cannot be done within the scope of this ticket
5. I do not see how there can be a solution for Lotus Bug fix beyond what  stated in his comment on 07/Feb/2022

I think it would be best to close this ticket and create a feature for improving the performance of Renewals. 

, , , , ,

cc:

Charlotte WhittFebruary 21, 2022 at 3:34 PM

Support SIG: This is not just affecting Cornell and TAMU, but all customers. It needs to be fixed for R1 2022 Lotus Bug fix

Cannot Reproduce

Details

Assignee

Reporter

Labels

Priority

Story Points

Development Team

Vega

Release

Lotus (R1 2022) Bug Fix

RCA Group

Not a bug

Affected Institution

Cornell
TAMU

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs

Created January 27, 2022 at 12:22 PM
Updated June 28, 2022 at 6:35 AM
Resolved March 1, 2022 at 2:07 PM
TestRail: Cases
TestRail: Runs