Open maxkadel opened 1 year ago
Note that the request to https://bibdata.princeton.edu/bibliographic/9933643713506421/holdings/22727480400006421/availability.json takes over 1 minute to respond:
There are two options for managing holdings with many item records.
Workaround for now is to request the item directly in Alma and SCSB (if at ReCAP). Marie WC or Joan Martine can make the requests.
another example URL https://catalog.princeton.edu/catalog/995639693506421
To get a sense of the scale of the issue we are facing here asked for some fresh data on holdings with many items:
https://github.com/PrincetonUniversityLibrary/alma-config/issues/456
Update: Approximately 2,700 holdings have greater than 100 items. 68 greater than 1000, 202 greater than 500. 500 items is roughly the point the current form struggles to load data.
An interim solution for these records could simply be to look at the count of individual items that are listed in the holdings_1display "items" key. This data is added to the records from the Alma publishing process. If we judge that 500 items is the maximum amount the current form architecture can support we could have the request page at least give the user the same fallback behavior we provide for a record with no item data and allow them to manually type the volume info they want and submit the request to circulation staff so they can manually place the request the user in the appropriate staff interface (either Alma or SCSB).
For example if you check the raw solr_xml for https://catalog.princeton.edu/catalog/995639693506421, in https://catalog.princeton.edu/catalog/995639693506421/raw you'll see there are over a thousand items attached to a holding on the record.
Discussion document related to this ticket: https://docs.google.com/document/d/1Qnmc6TKD4OwtRr_Fer9F2-SJW54Vi41CZaOAxZYRtZ0/edit#heading=h.quvh73610qly
Expected behavior
Orangelight is able to display the request page, no matter how many holdings a given object has
Actual behavior
When an object has many holdings, it takes Bibdata too long to return all the holdings, making the Orangelight request time out because bibdata's call to Alma for this large amount of data fails.
Steps to replicate
You can also see the speed of the blocking request at https://bibdata.princeton.edu/bibliographic/9933643713506421/holdings/22727480400006421/availability.json
Impact of this bug
Patrons cannot request items when an object has many holdings.
Honeybadger link and code snippet, if applicable
https://app.honeybadger.io/projects/54399/faults/86853263
Implementation notes, if any