-
Notifications
You must be signed in to change notification settings - Fork 25
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
[c++/python] Add soma_type
argument for SOMAObject::open
#2350
Conversation
* Bypass the need to use `tiledb::Object::object`, which checks for the type by attempting the open the object, by explcitly passing in a `soma_type` argument of either `SOMAArray` or `SOMAGroup`
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #2350 +/- ##
==========================================
- Coverage 82.17% 78.94% -3.24%
==========================================
Files 89 140 +51
Lines 8226 10856 +2630
Branches 0 216 +216
==========================================
+ Hits 6760 8570 +1810
- Misses 1466 2186 +720
- Partials 0 100 +100
Flags with carried forward coverage won't be shown. Click here to find out more.
|
[sc-44157] |
This pull request has been linked to Shortcut Story #44157: Notebook cloud-query performance, story 1 of 2. |
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.
🚢
@aaronwolen @nguyenv in order to take full advantage of this PR we should be using
at the notebook level -- making |
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.
There is a missed callsite -- more details in Slack
The root cause is Experiment.open
does not have its own impl and neither does CollectionBase.open
and so therefore tiledbsoma.Experiment.open
's impl is TileDBObject.open
(along the inheritance hierarchy) and there is not a soma_type
plumbed through to there
* Make changes according to @pfish's comments
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 @nguyenv !!!! :)
* Bypass the need to use `tiledb::Object::object`, which checks for the type by attempting the open the object, by explcitly passing in a `soma_type` argument of either `SOMAArray` or `SOMAGroup` * Pass in `SOMAGroup` for all Collection types * Pass in `SOMAArray` for all Array types --------- Co-authored-by: John Kerl <kerl.john.r@gmail.com>
* Bypass the need to use `tiledb::Object::object`, which checks for the type by attempting the open the object, by explcitly passing in a `soma_type` argument of either `SOMAArray` or `SOMAGroup` * Pass in `SOMAGroup` for all Collection types * Pass in `SOMAArray` for all Array types --------- Co-authored-by: John Kerl <kerl.john.r@gmail.com>
…2353) * Bypass the need to use `tiledb::Object::object`, which checks for the type by attempting the open the object, by explcitly passing in a `soma_type` argument of either `SOMAArray` or `SOMAGroup` * Pass in `SOMAGroup` for all Collection types * Pass in `SOMAArray` for all Array types --------- Co-authored-by: nguyenv <vivian@tiledb.com> Co-authored-by: John Kerl <kerl.john.r@gmail.com>
…2354) * Bypass the need to use `tiledb::Object::object`, which checks for the type by attempting the open the object, by explcitly passing in a `soma_type` argument of either `SOMAArray` or `SOMAGroup` * Pass in `SOMAGroup` for all Collection types * Pass in `SOMAArray` for all Array types --------- Co-authored-by: nguyenv <vivian@tiledb.com> Co-authored-by: John Kerl <kerl.john.r@gmail.com>
Issue and/or context:
SOMAObject::open
introduced a performance degradation due to its overzealous usage oftiledb::Object::object
, which checks for the type by opening the purpoted TileDB object at the given URI. In some cases, the type of the TileDB object is already known beforehand which makes these operations unnecessary.The example below takes ~15 seconds to run and yields three 404 errors.
With the changes in this PR, the example takes ~8 seconds and yields no 404 errors.
Changes:
Bypass the need to use
tiledb::Object::object
by explcitly passing in asoma_type
argument of eitherSOMAArray
orSOMAGroup
.