-
Notifications
You must be signed in to change notification settings - Fork 23
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
plannertest: criterion-rs based benchmark for both planning and execution #262
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
Signed-off-by: Yuchen Liang <[email protected]>
…tion Signed-off-by: Yuchen Liang <[email protected]>
yliang412
force-pushed
the
yuchen/planner-bench
branch
from
December 10, 2024 00:00
efec400
to
2b9c3ad
Compare
Signed-off-by: Yuchen Liang <[email protected]>
Signed-off-by: Yuchen Liang <[email protected]>
Signed-off-by: Yuchen Liang <[email protected]>
Signed-off-by: Yuchen Liang <[email protected]>
Examples# benchmark all TPC-H queries with "bench" task enabled
cargo bench --bench planner_bench tpch/ # benchmark TPC-H Q1
$ cargo bench --bench planner_bench tpch/q1/
Finished `bench` profile [optimized] target(s) in 0.21s
Running benches/planner_bench.rs (target/release/deps/planner_bench-978004a60630bb99)
Gnuplot not found, using plotters backend
Benchmarking tpch/q1/planning: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 6.7s, enable flat sampling, or reduce sample count to 60.
tpch/q1/planning time: [292.65 µs 295.24 µs 300.24 µs]
Found 12 outliers among 100 measurements (12.00%)
4 (4.00%) high mild
8 (8.00%) high severe
tpch/q1/execution time: [534.62 µs 538.27 µs 544.50 µs]
Found 12 outliers among 100 measurements (12.00%)
3 (3.00%) high mild
9 (9.00%) high severe # benchmark TPC-H Q1 planning
cargo bench --bench planner_bench tpch/q1/planning
# benchmark TPC-H Q1 execution
cargo bench --bench planner_bench tpch/q1/execution |
Signed-off-by: Yuchen Liang <[email protected]>
Signed-off-by: Yuchen Liang <[email protected]>
Signed-off-by: Yuchen Liang <[email protected]>
skyzh
approved these changes
Dec 10, 2024
CI config not updated yet? I assume there will be a separate patch... |
Signed-off-by: Yuchen Liang <[email protected]>
CI will be done as a separate PR. |
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.
Part of #263.
Problem
There is a lack of performance evaluation in optd. Without proper benchmarking, we will not know if some changes cause significant regression in performance. We should keep track of the two aspects of optimizer performance:
Summary of changes
sqlplannertest
yaml-based setup, bench if there is abench
task.sqlplannertest
to version 0.4.Planning:
datafusion_sql::parser::Statement
).Execution:
Arc<dyn ExecutionPlan>
).Next Steps
https://github.com/benchmark-action/github-action-benchmark can directly take
cargo bench
results as input. So it will be easy to set up CI.