improve graph operation performance#4398
Conversation
|
@mtbc: did that PR get tested? |
|
@jburel: @joshmoore will try it out via #4400 once it's a better time to challenge the IDR server. |
|
@joshmoore did you have a chance to try it out? |
|
Still to be considered for 5.2.2? |
|
@joshmoore: ping? (Want to try it out in some non-IDR way?) |
|
So far I've only been able to do some dry-run testing, which was ok, but I couldn't reproduce the massively slow situation that I had previously (it's since been cleaned up). I'm happy to give this a try, but a safer approach may be to have someone sign off on it in terms of correctness (i.e. are all graph operations in the last time correct and not slower). |
|
Fine with me if you want to try something like, exclude this, run integration tests, include it and run them again, to compare timing. |
|
Also happy to try and help with scripts like, comment on every one of the plate wells, or whatever, if that helps with constructing test data. |
|
Note: likely also to be tested by @jballanc and @chris-allan for widening DB support. |
|
Without this PR, With this PR, @chris-allan: These log lines report the class and IDs about to be passed to the method that @jballanc had a breakpoint set in. |
|
So if I'm reading this right, the only difference in order is that with this PR the deletion of The reason why we have multiple instances of |
|
Difference in order: there is some initial hashing by both name and ID before the class names are used as keys in a hash table. My guess would be that a change in order caused by ID being in the mix for the first loop caused the instances of those two classes to be added to the same bucket in The multiple original file deletions is funny: we batch them in reverse order of path length to avoid the risk of trying to delete a directory before its contents. Update: Ah, yes, the import log is in the directory above the actual image file I'd imported. |
|
Tested plate with 16 wells and > 100 ROIs per well on first 5 wells, > 10 Tags, > 10 Attachments for each of the 16 wells, Deleted within |
|
Thanks all merging. |
improve graph operation performance
With thanks to @joshmoore, adjust how graph traversal uses Hibernate to determine the exact class of model objects. Testing is by CI.
--no-rebase
(Supersedes #4378 because I don't have a reopen button.)