Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interleave persistence of source + target rows #41

Open
chadlwilson opened this issue Oct 25, 2021 · 0 comments
Open

Interleave persistence of source + target rows #41

chadlwilson opened this issue Oct 25, 2021 · 0 comments
Labels
enhancement New feature or request size:M medium items

Comments

@chadlwilson
Copy link
Collaborator

chadlwilson commented Oct 25, 2021

Context / Goal

In #18 we persisted the target hashes to the DB. This is currently done sequentially, so there is no race between streams of data being loaded and hashed from source and target DBs.

It may be advantageous to be able to do these at the same time

  • if the query themselves takes time against source and target
  • to avoid I/O waits when persisting to the Recce DB

It may also just add more contention and not be advantageous.

Expected Outcome

  • Be in a position to evaluate whether this strategy is effective in terms of performance testing (Exploratory performance testing of load and persist #26)
  • Change the loading mechanism to query and stream both source and target at the same time
    • Should be able to handle
      • source row inserted, target hash updated
      • target row inserted, source hash updated
    • Some mechanism will need to be introduced to avoid race conditions and retry a different strategy on an insert failure
    • This may have a negative effect on ability to batch inserts, if done in Implement tunable batching of queries/inserts #40

Out of Scope

Additional context / implementation notes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request size:M medium items
Projects
None yet
Development

No branches or pull requests

1 participant