Skip to end of banner
Go to start of banner

Data Import Stabilization plan

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 39 Next »

Steps

  1. Gather existing issues (Vladimir Shalaev , Kateryna Senchenko )
  2. Create new features (Vladimir Shalaev, Kateryna Senchenko )
  3. Provide feature dependencies (Vladimir Shalaev , Kateryna Senchenko )
  4. Estimate (priorities + complexity) (Vladimir Shalaev , Kateryna Senchenko )
  5. Remove duplicates (grooming with Ann-Marie)
  6. Final priorities
  7. Align to timeline, and assign to appropriate Jira Feature, and review Jira issue priorities (Taisiya Trunova)

Categories

See : Assessment ratings

  1. Performance: di-performance
  2. Stability/Reliability: di-data-integrity (more tags to be added)
  3. Scalability
  4. Architecture
  5. Code quality

Priorities

High, Mid, Low

Complexity

S, M, L, XL, XXL

Table


CategoryProblem definitionBusiness impactProposed solution

Priority

DEV

Priority

PO

ComplexityExisting Jira item(s)Final feature(s)
1PerformanceKafka producer closed after sendingLow performance of import

Create pool of active producers. Start pool on module launch, close on shutdown. Reuse connections.

Add max/min pool sizes.

High
L

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

2
WARN message when no handler foundnone

Do not subscribe to messages you're not going to process

OR

Lower log lever for this type of messages

Low
S

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

3Stability/Reliability

Race condition on start (Kafka consumers start working before DB is configured)

OR

Periodical DB shutdown after SRS restart. Jobs get stuck if not able to update status in DB (messages ACKed even if we could not process them)

Imports might get stuck on module restart

Need investigation / check

Investigate the issue with DB (possible OOM on PG server)


Mid

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

4

Performance

Stability/Reliability

High CPU/Memory consumption on modulesLow performance of import. Higher costs for hosting

Significantly decrease size of payload:

  1. Remove immutable parts. Instead fetch them on demand and cache locally for reuse.
  2. Change message handling mechanism (currently relies on pt1 - profile) (optional)
  3. Move archiving to Kafka instead of module level
High
XXL

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.


Unable to locate Jira server for this macro. It may be due to Application Link configuration.

5PerformanceKafka cache resource consumptionLow performance of import. Higher costs of hosting.Remove Kafka cache. Modules that do not do persistent changes will sometimes (on duplicates read) do unnecessary calls. Can be optimized further upon adding distributed in-memory cache (ex hazelcast) (blocked by 6)Mid
M

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.


Unable to locate Jira server for this macro. It may be due to Application Link configuration.

6Stability/ReliabilityDuplicates created upon importData inconsistency on import.Make consumers behave idempotent. Add pass-through identifier to de-duplicate messages. High
XL

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.



Unable to locate Jira server for this macro. It may be due to Application Link configuration.

7Stability/ReliabilityKafka consumers stop reading messages eventually, breaking job progress until module restart.Imports eventually get stuck until module restartNeed investigationHigh
?

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

8Code qualityTest coverage is not high enough (Unit)Higher amount of bugsWrite more testsMid
S

Unable to locate Jira server for this macro. It may be due to Application Link configuration.


Unable to locate Jira server for this macro. It may be due to Application Link configuration.

9Code qualityTest coverage is not high enough (Karate)Higher amount of bugsWrite more tests (define test cases)Mid
L

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

10Stability/Reliabilitymod-data-import stores input file in memory, limiting size of uploaded file and possibly having oomData import file size is limitedSplit to chunks, put to database, work with database/temp storage. Partially done (to be investigated)Mid
L

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

11PerformanceData import impacts other processesSlower response of system during data import

Need investigation (possible solution - configure rate limiter)

Relates to number 4




no ticket

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

12PerformanceHigh resource consumption to get job(s) status/progressSlow performance of import and landing page.Add some kind of caching for progress tracking (database or in-memory)Low
S

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

13Stability/ReliabilitySRS can fail when processing message during import
Import can end up creating some instances but not creating holdings/items for some MARC records

Generate "INSTANCE CREATED" from mod-inventory. Consume in SRS to update HRID in BIB and in INVENTORY to continue processing.


Remove unnecessary topics (* ready for post processing and hrid set)

Mid
L

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

14Stability/Reliability

If we have infrastructure issue (like DB not available, module being restarted or network failure), we are sending DI_ERROR instead of retrying

Records that can potentially be processed during import are not processed if we have temporary infrastructure issues (DB down, network connectivity loss, etc)

Do not ACK messages in Kafka if there's not a logic, but infrastructure error/exception. Split failed processing results into 2 categories:

  1. IO errors - do not ack. retry until fixed
  2. Business logic - DI_ERROR and Ack current message
Mid

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

15
Consumer gets disconnected from Kafka clusterJobs get stuck until module restartNeed investigationMid

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

16
De-duplication of status messages for progress barProgress bar might display incorrect progressDe-duplicate status messages per-record while tracking progressMid
L (depends on 12)

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Filters

key summary type created updated due assignee reporter priority status resolution

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Issues to potentially remove from scope

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Links

Data Import Observations for Improvements

  • No labels