-
Notifications
You must be signed in to change notification settings - Fork 43
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
Allow disable transaction for select populates #1067
Conversation
This is ready for testing, but will remain a draft pending merge of #1035 and release of |
else: # No transaction protection, use bare make | ||
for key in keys: | ||
self.make(key) | ||
if upstream_hash != self._hash_upstream(keys): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it could be made simpler for the user to clean up the mismatched hash insert by either:
- printing the key in the raised error
- automatically deleting the key before the error (enforces integrity)
- pass the hash result to the make function and do the check in there before
insert
if there's a hash (enforces integrity, requires more edits to the code)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only using the hash makes it tough to determine where the mismatch occurred. I made a commit to delete all the keys and ask the user to start over. It's not ideal, but, from the code I've seen, folks primarily run one key at a time. It seems like an unlikely case that there would be a mismatch - and that it'll have a serious impact in the timeline between now and a new DJ feature we can use
Would you rather I run a table-wise comparison across the two RestrGraph
objects to nail down where the mismatch occurred?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the overly cautious solution of delete them all is fine for now. As you said, it's unlikely that it would occur, and ensuring consistency is a valid priority. User's shouldn't notice it, and if they do we would need to be going back into the code to figure out why anyways
Description
To address issues discussed in #1030, this PR allows the disabling of transaction protection.
This sacrifices full data integrity protection in order to avoid the bottleneck
Checklist:
CITATION.cff
alter
snippet for release notes.CHANGELOG.md
with PR number and description.