Versions Compared

Key

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

...

In this workflow, we are checking the performance of POST /loan-storage/loans API for creating loans in bulk in the Honeysuckle release -

Jira Legacy
serverSystem Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyPERF-148
IC's normally create loans in bulk using mod-circulation business logic which is slow. This is an investigation if the same can be done using the mod-circulation-storage module bypassing business logic.

...

  • 7.2 million UChi SRS records
  • 7.2 million inventory records
  • 63 FOLIO back-end modules deployed in 110 ECS services
  • 3 okapi ECS services
  • 10 m5.large  EC2 instances
  • writer db.r5.xlarge 1 reader db.r5.xlarge AWS RDS instance
  • INFO logging level

High-Level Summary

  1. As the number of instances to export increases from 1 - 500,000 for 1, 2 users, performance improves. For all cases, mod-data-export, mod-source-record-storage is stable and performant.
  2. data-export/job-executions API is polled every 3 seconds vs 5 seconds in Goldenrod. This means there are more requests overall but it also improves data-export execution. Data-export job completes faster(around 2 seconds) compared to the previous release. Other than that, data-export is stable and see performance improvements compared to the Goldenrod release.
  3. A new feature added for data-export is it will kill failed job every 6 hoursFor 1 user, in 30 minutes, we can create 71,099 loans in bulk by making a request directly to storage API POST /loan-storage/loans. Therefore, we can create 142,198 loans in 1 hour.
  4. On average it takes 25 milliseconds to create 1 loan

Test Runs

1 user can create 71099 loans in 30 minutes by making a request to POST /loan-storage/loans

RequestsDurationTotal loan requestsSuccessFailReqRequests/ssecMin75th pctMax(millisecond)Average (millisecond)Latency (milliseconds)
mod-circulation-storage POST /loan-storage/loans30 min7109971099039.4990.0182534.92537

...