Whitelisting columns#38
Open
rom1504 wants to merge 1 commit into
Open
Conversation
rom1504
force-pushed
the
whitelisting_columns
branch
2 times, most recently
from
November 13, 2019 12:08
92e0801 to
2894041
Compare
vguerra
reviewed
Nov 13, 2019
rom1504
force-pushed
the
whitelisting_columns
branch
2 times, most recently
from
November 15, 2019 16:07
4db0d65 to
c23f511
Compare
Codecov Report
@@ Coverage Diff @@
## criteo-master #38 +/- ##
==============================================
Coverage 83.46% 83.46%
==============================================
Files 20 20
Lines 1010 1010
==============================================
Hits 843 843
Misses 167 167Continue to review full report at Codecov.
|
rom1504
force-pushed
the
whitelisting_columns
branch
3 times, most recently
from
November 15, 2019 17:58
f47e982 to
e489909
Compare
…arch_runs This feature makes it possible to keep only some of the tags, params and metrics in search_runs. This is useful particularly in case of retrieving many runs but only few columns. This commit is mostly split in 2 parts : 1. Adding whitelist_tags, whitelist_metrics, whitelist_params to the API as a non-breaking change : they default to None which mean keep all fields 2. Actually implement it in stores and in particular the sqlalchemy store The second part is a bit subtle because the subquery loading strategy used in mlflow sqlalchemy store does not support filtering. As a consequence I reimplemented a "disjoint_load" function that is a simple implementation of subquery loading, adding the filtering functionality. I added many comments in it to explain how it works. This change makes it possible to decrease the search_run time from 30s to 2s for an experiment with many runs (7000) and keeping only a few columns.
rom1504
force-pushed
the
whitelisting_columns
branch
from
November 18, 2019 13:28
e489909 to
66e3ea1
Compare
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.
What changes are proposed in this pull request?
Introduce new whitelisting feature for tags, params and metrics in search_runs
This feature makes it possible to keep only some of the tags,
params and metrics in search_runs.
This is useful particularly in case of retrieving many runs but only few columns.
This commit is mostly split in 2 parts :
The second part is a bit subtle because the subquery loading strategy used in mlflow sqlalchemy store does not support filtering.
As a consequence I reimplemented a "disjoint_load" function that
is a simple implementation of subquery loading, adding the filtering functionality. I added many comments in it to explain how it works.
An additional change is removing the unneeded distinct in search_runs to avoid from_self from
propagating the column from ordering to the main fields of the main select. (it's not required to put fields from order by in select if the distinct keyword is not used h
ttps://dba.stackexchange.com/a/34970)
This change makes it possible to decrease the search_run time from 30s to 2s for an experiment with many runs (7000) and keeping only a few columns.
How is this patch tested?
Release Notes
Is this a user-facing change?
Add tags_whitelist params_whitelist metrics_whitelist optional options in search_runs.
What component(s) does this PR affect?
How should the PR be classified in the release notes? Choose one:
rn/breaking-change- The PR will be mentioned in the "Breaking Changes" sectionrn/none- No description will be included. The PR will be mentioned only by the PR number in the "Small Bugfixes and Documentation Updates" sectionrn/feature- A new user-facing feature worth mentioning in the release notesrn/bug-fix- A user-facing bug fix worth mentioning in the release notesrn/documentation- A user-facing documentation change worth mentioning in the release notes