Fix storage API failing to return DF for experiments without any tunables#889
Conversation
motus
left a comment
There was a problem hiding this comment.
I think we can filter out those nulls at the query level instead of doing it on the client side. maybe all we have to do is remove that isouter=True parameter at line 167? Can you please check?
P.S. I am trying to understand why on Earth I made this join outer and I can't remember the reason :) Most likely that's some copy/paste artifact, but please double check that everything works when you make this a regular inner join
We can have benchmarks that have no Tunables associated with them, in which case I think we still want to return other aspects of the Experiment data. |
Also, in that case, I think we should only return one row per trial, so the filtering client side isn't really a problem. |
Nevermind. Querying results is already a separate data frame that gets merged at the end of this function. Given that, the only reason I can think of to do the filtering client side is if we want the @motus, thoughts? |
The more I've looked at this the more I think it should just be an inner join.
|
bpkroth
left a comment
There was a problem hiding this comment.
One small suggested tweak to the test. Otherwise LGTM. Thanks!
There was a problem hiding this comment.
Per the discussions, can you please also add a test to check that pending trials that don't yet have results, still show up in the results_df, with empty results columns?
There was a problem hiding this comment.
we can also add some failed trials for good measure
motus
left a comment
There was a problem hiding this comment.
Looks good! Thanks for fixing the bug, and double thanks for adding a unit test!
|
[like] Brian Kroth (GSL) reacted to your message:
…________________________________
From: Sergiy Matusevych ***@***.***>
Sent: Wednesday, December 4, 2024 11:33:56 PM
To: microsoft/MLOS ***@***.***>
Cc: Brian Kroth (GSL) ***@***.***>; Review requested ***@***.***>
Subject: Re: [microsoft/MLOS] Fix storage API failing to return DF for experiments without any tunables (PR #889)
@motus commented on this pull request.
________________________________
On mlos_bench/mlos_bench/tests/storage/exp_data_test.py<#889 (comment)>:
we can also add some failed trials for good measure
—
Reply to this email directly, view it on GitHub<#889 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ABQ53FAX7UPCVNGKVJ3X3A32D6GOJAVCNFSM6AAAAABS66R47OVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDIOBQGEZDINRSGU>.
You are receiving this because your review was requested.Message ID: ***@***.***>
|
Pull Request
Fix storage API failing to return DF for experiments without any tunables
Addresses #884
Description
When an experiment is run without any tunables (benchmarking with default parameters), the storage API fails to return a dataframe of the results.
Example error:
Going to the relevant line and inserting a breakpoint, the relevant columns are
["trial_id", "tunable_config_id", "param", "value"].We can see the data is full of NULLs / Nones
Type of Change
Indicate the type of change by choosing one (or more) of the following:
Testing
Unit test added covering this case, and also manual testing.
Additional Notes (optional)
Add any additional context or information for reviewers.