-
-
Notifications
You must be signed in to change notification settings - Fork 2k
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
refactor(rust): Add fundamentals for new async-based streaming execution engine #16884
Conversation
CodSpeed Performance ReportMerging #16884 will not alter performanceComparing Summary
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #16884 +/- ##
==========================================
+ Coverage 81.41% 81.42% +0.01%
==========================================
Files 1425 1425
Lines 187964 187973 +9
Branches 2704 2704
==========================================
+ Hits 153022 153056 +34
+ Misses 34445 34420 -25
Partials 497 497 ☔ View full report in Codecov by Sentry. |
|
||
fn global() -> &'static Executor { | ||
GLOBAL_SCHEDULER.get_or_init(|| { | ||
let mut n_threads = NUM_EXECUTOR_THREADS.load(Ordering::Relaxed); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should respect the POLARS_MAX_THREADS
env var if set.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd prefer if we keep Polars-specific stuff out of the executor itself, we'll just call executor::set_num_threads
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then that is a note to us that we must do that on startup or query conversion.
This adds to the codebase (but yet in no way actually uses) a bespoke efficient async executor that supports task priority, as well as several async primitives which will be useful for implementing our async-based streaming execution engine ideas.