-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Performance Regression Testing Revamp Stage 1 #4602
Merged
Merged
Conversation
This file contains 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
nathaniel-may
requested review from
leahwicz,
VersusFacit,
kwigley,
emmyoop and
gshank
March 16, 2022 16:35
nathaniel-may
changed the title
Regression Testing Revamp
Performance Regression Testing Revamp Stage 1
Mar 23, 2022
leahwicz
reviewed
Mar 30, 2022
leahwicz
reviewed
Mar 30, 2022
leahwicz
reviewed
Mar 30, 2022
leahwicz
reviewed
Mar 30, 2022
leahwicz
reviewed
Mar 30, 2022
leahwicz
reviewed
Mar 30, 2022
Overall this LGTM! Two thing that I would feel like would be good to add to the README is:
|
leahwicz
approved these changes
Mar 30, 2022
kwigley
approved these changes
Mar 31, 2022
… performance readme
VersusFacit
pushed a commit
that referenced
this pull request
Apr 14, 2022
agoblet
pushed a commit
to BigDataRepublic/dbt-core
that referenced
this pull request
May 20, 2022
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.
resolves #4021
Description
This is the first part of a multi-PR feature. Merging this will have no effect on the code base, but should be reviewed in full because this code will be activated by the actions that are under development in #4872. The goal of the overarching feature is to run performance regression tests on PRs with minimal failures due to noise. This work shifts the entire strategy for detecting performance regressions away from fully modeling performance characteristics on each test, to sampling and comparing to a baseline model. The strategy and the math to support it is outlined in detail in the README.
To start, this PR only includes a single test project with 2000 model files for the performance of
dbt parse
, but once the actions are merged it will be able to run efficiently on each PR. The next step is to add more commands and projects. This stage is outlined in #4768.Reviewers
Please read the README in detail. It is intended to provide all the information necessary to develop this without me. If there's something that's unclear, please bring it up.
To navigate the runner, start in
main::run_app
which handles all the IO, then hit the two top-level functions:fs::model
andcalculate::regressions
. The split between fs and calculate modules isn't perfect and I could probably have some better naming of these functions. Suggestions are welcome.The runner is not perfect, and I have left TODOs for all the places I think we should improve. It will be worked on in subsequent stages of this feature so there will be time to fix more of these. If anything looks below the code quality we want to merge, I am happy to make those changes in this PR.
Please also review the 1 change PR #4875 if it is not already merged. It updates the test project by regenerating it with a ref. I split it out because it touches 2000 files.Tasks
Checklist
CHANGELOG.md
and added information about my change