[BLOCKED] Suggested performance improvement for adding nodes to group#1677
Merged
Conversation
I'm trying a way to add nodes to a group that doesn't require an explcit check to see if the node is already there. There are several parts to this: 1) A UNIQUE constraint needs to be added to the association table as we have in Django. Something like: CREATE UNIQUE INDEX db_dbgroup_dbnodes_dbgroup_id_dbnode_id_key ON public.db_dbgroup_dbnodes (dbgroup_id, dbnode_id); 2) Add the nodes one by one and flush after each one which will cause the IntegrityError to appear if the constraint is violated 3) Wrap the append/flush in a nested session so that it is automatically rolled back in the case of a constraint violation 4) finally after everything do the final commit (because flush just puts it in SQLs buffers) NOTE: Before this gets considered for a merge we have to find a way to put the constraint in the model. I didn't see how to do this.
Contributor
|
So the PR for constraint can be found at #1680 |
Contributor
|
PR #1680 has been merged, so this can be updated |
Codecov Report
@@ Coverage Diff @@
## develop #1677 +/- ##
===========================================
+ Coverage 57.13% 57.17% +0.04%
===========================================
Files 275 275
Lines 33919 33931 +12
===========================================
+ Hits 19378 19399 +21
+ Misses 14541 14532 -9
Continue to review full report at Codecov.
|
szoupanos
approved these changes
Jun 26, 2018
Contributor
|
Thanks a lot Martin! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I'm trying a way to add nodes to a group that doesn't require an explcit
check to see if the node is already there. There are several parts to
this:
have in Django. Something like:
CREATE UNIQUE INDEX db_dbgroup_dbnodes_dbgroup_id_dbnode_id_key ON public.db_dbgroup_dbnodes (dbgroup_id, dbnode_id);
the IntegrityError to appear if the constraint is violated
rolled back in the case of a constraint violation
it in SQLs buffers)
BLOCKED: Before this gets considered for a merge we have to find a way to
put the constraint in the model. I didn't see how to do this.