-
Notifications
You must be signed in to change notification settings - Fork 185
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
Fix performance regression in group::dump() #5002
Conversation
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.
Thanks!
I removed the test I ported to |
fe5e2fe
to
43778d0
Compare
After merging #5002 and #4999, dump for non existing group recursive group stopped working. This is because the error logic in 5002 expected a status code whilst 4999 changes to throw an exception. The fix changes the group code to throw a known exception which is caught at the upper level as a group not found exception. This is much cleaner that using a failed status code, which could mean many other issues. --- TYPE: NO_HISTORY DESC: Fix group not found issue.
After merging #5002 and #4999, dump for non existing group recursive group stopped working. This is because the error logic in 5002 expected a status code whilst 4999 changes to throw an exception. The fix changes the group code to throw a known exception which is caught at the upper level as a group not found exception. This is much cleaner that using a failed status code, which could mean many other issues. Also, taking advantage to unstatus group.cc/h. --- TYPE: NO_HISTORY DESC: Fix group not found issue.
tiledb://
arrays
@ypatia this issue effects all backends. It's not specific in anyway to tiledb URIs. Refetching the type when we already have it as a means if checking if a URI exist is universally am issue and logically incorrect. |
You are right, I will adapt the PR and shortcut descriptions. The fix is however covering all the cases, so we are good. Please correct me if I am wrong and still missing something. |
This fix to 38499 , introduced a performance regression to
Group::dump
, since now the method callsobject_type
for every member in a for loop while the type is already known and every such call initiates two extra checks (one foris_array
and one foris_group
).The fix in this PR is to let group open fail when the group is not there instead, check on the return value and log that the array doesn't exist.
TYPE: BUG
DESC: Fix performance regression in group::dump()