Trillium: Performance Improvements and Changes in Existing Behavior

Trillium: Performance Improvements and Changes in Existing Behavior

The behavior changes described on this page stem from the Bulk Edit performance improvement work completed under https://folio-org.atlassian.net/browse/UXPROD-4990 The feature aimed at making Bulk Edit more reliable and scalable for large jobs by changing how bulk edit operations are retrieving records behind the scenes. Starting with Trillium, Bulk edit retrieves records for query and UUIDs using FQM. As a result, some aspects of job execution and timing now behave differently than in earlier releases.

 

Change affecting all Bulk edit jobs

Files generated by Bulk edit are no longer available through Export manager. They can be only accessed via the Bulk edit Log tab.

Sunflower:

image-20260417-204927.png

 

Changes affecting Bulk edit jobs triggered by a query or file with record UUIDs

  1. Warnings notifying about issues with underlying data are no longer displayed.

Sunflower behavior:

image-20260417-214933.png

 

  1. Multiple matches for the same identifier are no longer reported.

Sunflower behavior:

image-20260417-215219.png

 

 

  1. In the ECS environment, if the user does not have the required permissions or affiliation, records are reported as Not found instead of providing detailed information as documented in https://folio-org.atlassian.net/wiki/x/E4B5Qg

 

Work on performance improvements for other identifiers will continue under https://folio-org.atlassian.net/browse/UXPROD-5802 .

The Trillium implementation can be enabled or disabled by hosting teams by setting the value of FQM_QUERY_APPROACH to true or false. By default, the value is true.

 

Examples of Observed Performance Improvements

The performance listed here is based on manual tests conducted in https://folio-etesting-sprint-cs00000int.ci.folio.org/ environment populated with the Bugfest dataset. Separate PTF reports will be listed in https://folio-org.atlassian.net/wiki/x/E4BRbg

Instances FOLIO

Identifiers

Records

Matching preview

File with UUIDs
Search in Inventory (instance.source == FOLIO) AND (instance.hrid starts with in000000)

99,619

0:01:12

File with HRIDs
the same records as in the file with UUIDs

99,619

0:19:01

Instances MARC

Identifiers

Records

Matching preview

File with UUIDs
Search in Inventory (instance.source == MARC) AND (instance.instance_type_name == text) AND (instance.languages in [Italian, Russian])

99,710

0:22:21

File with HRIDs
the same records as in the file with UUIDs

99,710

0:26:58

Instances FOLIO & MARC

Identifiers

Records

Matching preview

File with UUIDs
Search in Inventory (instance.language in [Korean, Czech])

99,119

0:20:13

File with HRIDs
the same records as in the file with UUIDs

99,119

0:31:26

Holdings

Identifiers

Records

Matching preview

File with UUIDs
100K_holdings_uuids.csv

100,000

0:00:37

File with HRIDs
the same records as in the file with UUIDs

100,000

0:05:32

Items

Identifiers

Records

Matching preview

File with UUIDs
100K_item_uuid.csv

99,999

0:00:27

File with HRIDs
the same records as in the file with UUIDs

99,999

0:23:46