-
Notifications
You must be signed in to change notification settings - Fork 275
perf: don't busy-poll Tokio stream for plans without CometScan #3063
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
Conversation
|
@andygrove do you mind benchmarking this whenever you get a moment? |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3063 +/- ##
============================================
+ Coverage 56.12% 59.50% +3.38%
- Complexity 976 1382 +406
============================================
Files 119 167 +48
Lines 11743 15524 +3781
Branches 2251 2575 +324
============================================
+ Hits 6591 9238 +2647
- Misses 4012 4989 +977
- Partials 1140 1297 +157 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Comet TPC-H Benchmark ResultsCommit: Query Times
Total Time: 303.10 seconds Spark Configuration
Automated benchmark run by dfbench |
|
@sqlbenchmark run tpch --conf spark.comet.scan.impl=native_datafusion |
Comet TPC-H Benchmark ResultsCommit: Query Times
Total Time: 286.96 seconds Spark Configuration
Automated benchmark run by dfbench |
|
@sqlbenchmark invalid command |
Which issue does this PR close?
Closes #.
Rationale for this change
executePlan, but this only seems necessary whenCometScanis the data source. Operators that implement proper async I/O, likeIcebergScanExecandDataSourceExec, should not be busy-polled and in the case of the former it creates a ton of unnecessaryreplace_wakercalls in traces I'm looking at.What changes are included in this PR?
CometScanoperators in the plan.How are these changes tested?