datafusion-contrib / datafusion-contrib/datafusion-distributed
Expose worker task-cache lifecycle controls and per-task invalidation
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 139
- Forks
- 67
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 35
Description
Problem
DataFusion Distributed 2.0 workers retain TaskContext entries in a private cache with a fixed 10-minute time-to-idle. When a coordinator disconnects, cancels, or sends only a partial plan, downstream users cannot explicitly invalidate the abandoned task entry.
This matters when a TaskContext owns query-scoped resources such as a DataFusion memory pool: the cached context can retain those resources after the coordinator has gone away.
Requested API
Expose worker task-cache TTI/capacity configuration, explicit TaskKey invalidation, or lifecycle callbacks for completion, cancellation, and coordinator disconnect. Invalidation must not disrupt active fragments that still reference the context.
Downstream context
PolderDB issue Dandandan/PolderDB#1117 and PR Dandandan/PolderDB#1120 add attempt-scoped DataFusion memory enforcement. The PR uses bounded attempt leases, an entry cap, and fail-closed retirement before worker cache access, but cannot remove the private cached TaskContext itself. Forking or vendoring this crate would substantially expand that focused change.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the worker's private TaskContext cache and the TaskKey access path, then read how its fixed time-to-idle and capacity are configured. Define which lifecycle controls are needed for completion, cancellation, and coordinator disconnect, and verify that invalidating an entry cannot disrupt active fragments. Done means the required cache controls or per-task invalidation are exposed without requiring downstream users to fork the crate.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100