Allow DI to function correctly if marc_indexers version value is not set (Orchid CSP 5 Clone)

Description

NOTE: This Orchid CSP 5 Jira is cloned by Poppy Jira MODSOURCE-681

MODSOURCE-601 introduced a notion of 'version' in marc_indexers table to allow inserts of new rows without deletion (deletion is done as a separate process). Setting the initial version (zero) to all existing rows takes excess time during which DI (and other processes interacting with SRS) should be suspended.

Allow DI and search of marc_indexers to function correctly when version is still null (column added, but values are not there yet), treat it as a zero. 

  • Search when no other version than null 

  • Insert of new values with version '1', when others are null

  • Something else?

ORCHID Critical service patch details

  1. Describe issue impact on business: Required to be able to backport the improvements described in MODSOURCE-601/MODSOURCE-654 to Orchid. This change allows DI marc-to-marc matching and records search to work correctly until migration scripts which are required by MODSOURCE-601MODSOURCE-654 are completed, in order to avoid downtime during the those scripts execution.

  2. What institutions are affected? (field “Affected Institutions” in Jira to be populated) - All

  3. What is the workaround if exists? No user workaround

  4. What areas will be impacted by fix (i.e. what areas need to be retested) Data import Smoke and Critical path tests

  5. Brief explanation of technical implementation and the level of effort (in workdays) and technical risk (low/medium/high).

    • Work is complete and the level of effort was medium. 

    • Approach

      • add alternative/fallback query that performs a search without indexers version usage to DAO method that provides marc-to-marc matching and to the method aimed for retrieving marc identifiers by search query. This alternative query should be executed when the search results of the current queries are empty and newly introduced parameter srs.record.matching.fallback-query.enable = true.

      • fix PgException handling in AbstractUpdateModifyEventHandler to prevent import job from being stuck if PgException is not related to matchedId-generation uniqueness constraint violation.

      • add tests

    • Risk to backport: Minimal; will also review with

  6. Brief explanation of testing required and level of effort (in workdays). Provide test plan agreed with by QA Manager and PO. Automated test cases already exist and level of effort is 1 hour

  7. What is the roll back plan in case the fix does not work? Revert to previous version

Environment

None

Potential Workaround

None

CSP Request Details

Orchid CSP requested 11 August 2023 by abreaux, and approved 11 August by Harry K, Kristin M, Lee B, Mark V, Mike G, Khalilah G

CSP Approved

Yes

CSP Rejection Details

None

Checklist

hide

TestRail: Results

Activity

Show:

Ann-Marie Breaux August 16, 2023 at 3:03 PM

Automated tests for Orchid all passed. Closing this issue.

Ann-Marie Breaux August 11, 2023 at 9:27 PM

Orchid CSP requested and approved on Slack. That unblocks the Orchid CSP release of . This Orchid CSP 5 Jira also cloned to create a Poppy Jira

Kateryna Senchenko August 10, 2023 at 4:29 PM

Manual QA effort is not required for this ticket
 

Done

Details

Assignee

Reporter

Priority

Story Points

Sprint

Development Team

Folijet

Fix versions

Release

Orchid (R1 2023) Service Patch #5

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs

Created July 25, 2023 at 11:35 AM
Updated February 28, 2024 at 12:03 PM
Resolved August 11, 2023 at 9:20 PM
TestRail: Cases
TestRail: Runs