Versions Compared

Key

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

...

Jira link:

Jira Legacy
serverSystem JiraJIRA
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyMODSOURMAN-966

Spike Status: IN PROGRESS  COMPLETED

Objective: To enable the R/W split of the DB for mod-source-record-manager to have improvements in performance

Background

RMB-348 (RMB v35.0.0) introduced the ability to direct the read and write calls to the respective database node, the reader or writer (if the database is configured in such a way). The separation of read and write queries brings performance improvements and scalability as the Write node is freed up to do more writing while the read node is busy making retrievals. Read-only code in RMB has been updated to communicate to the Read node directly. To take advantage of the read/write split, mod-source-record-manager replaced the read-only code that calls the existing RMB read methods (which could handle both read and writes) with one of the new RMB read-only methods that exclusively communicates to the read node (MODSOURMAN-883). 

Problem Statement

Update of the JobExecution to assign the JobProfile (write query) and the request to process a record (reads assigned JobProfile for JobExecution) come separately (sequence of requests is described in data-import-workflow). In case Read instance is not synchronizing fast enough, some single record operations and importing via API could fail. See details in MODSOURMAN-909 and MODSOURMAN-906. To prevent such errors R/W split for mod-source-record-manager is disabled for Nolana (R3 2022) and Orchid (R1 2023) releases.

...

Implemented changes required to enable R/W split for mod-source-record-manager.

Option 1 - Selected

Use regular RMB read method (which can handle both read and writes) for request to get JobExecution by id. This way the request will go to the write version of the DB, which has the necessary information.

Pros

  • Simple and quick to implement
  • Easy to back-port to Nolana and Orchid
  • Low risk of regression
  • No reason to expect significant impact on performance 

...