Skip to content

Use Tokio's task budget consistently, better APIs to support task cancellation #16398

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

Merged
merged 24 commits into from
Jun 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
5e8b64a
Use Tokio's task budget consistently
pepijnve Jun 13, 2025
e1bb756
Rework `ensure_coop` to base itself on evaluation and scheduling prop…
pepijnve Jun 13, 2025
a096145
Iterating on documentation
pepijnve Jun 13, 2025
173c17f
Improve robustness of cooperative yielding test cases
pepijnve Jun 14, 2025
828155b
Reorganize tests by operator a bit better
pepijnve Jun 15, 2025
fd3e40c
Coop documentation
pepijnve Jun 15, 2025
c9a2df2
More coop documentation
pepijnve Jun 15, 2025
2b86eae
Avoid Box in temporary CooperativeStream::poll_next implementation
pepijnve Jun 16, 2025
69ea290
Adapt interleave test cases for range generator
pepijnve Jun 17, 2025
6c014da
Add temporary `tokio_coop` feature to unblock merging
pepijnve Jun 17, 2025
9e65459
Extract magic number to constant
pepijnve Jun 17, 2025
a10ad8c
Fix documentation error
pepijnve Jun 17, 2025
c8c71e5
Push scheduling type down from DataSourceExec to DataSource
pepijnve Jun 17, 2025
f6f866c
Use custom configuration instead of feature to avoid exposing interna…
pepijnve Jun 17, 2025
15eed9e
Use dedicated enum for yield results
pepijnve Jun 17, 2025
af1592d
Documentation improvements from review
pepijnve Jun 17, 2025
83fe18f
More documentation
pepijnve Jun 17, 2025
3b33f79
Change default coop strategy to 'tokio_fallback'
pepijnve Jun 17, 2025
c663da3
Documentation refinement
pepijnve Jun 17, 2025
74ff949
Re-enable interleave test cases
pepijnve Jun 17, 2025
381d3f1
Merge remote-tracking branch 'apache/main' into task_budget
alamb Jun 18, 2025
ff29b16
fix logical merge conflict
alamb Jun 18, 2025
087e4a6
Merge remote-tracking branch 'apache/main' into task_budget
alamb Jun 20, 2025
b2491d8
Merge branch 'main' into task_budget
alamb Jun 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -218,5 +218,9 @@ unnecessary_lazy_evaluations = "warn"
uninlined_format_args = "warn"

[workspace.lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ["cfg(tarpaulin)", "cfg(tarpaulin_include)"] }
unexpected_cfgs = { level = "warn", check-cfg = [
'cfg(datafusion_coop, values("tokio", "tokio_fallback", "per_stream"))',
"cfg(tarpaulin)",
"cfg(tarpaulin_include)",
] }
unused_qualifications = "deny"
9 changes: 0 additions & 9 deletions datafusion/common/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -796,15 +796,6 @@ config_namespace! {
/// then the output will be coerced to a non-view.
/// Coerces `Utf8View` to `LargeUtf8`, and `BinaryView` to `LargeBinary`.
pub expand_views_at_output: bool, default = false

/// When DataFusion detects that a plan might not be promply cancellable
/// due to the presence of tight-looping operators, it will attempt to
/// mitigate this by inserting explicit yielding (in as few places as
/// possible to avoid performance degradation). This value represents the
/// yielding period (in batches) at such explicit yielding points. The
/// default value is 64. If set to 0, no DataFusion will not perform
/// any explicit yielding.
pub yield_period: usize, default = 64
}
}

Expand Down
Loading