datafusion-contrib / datafusion-contrib/datafusion-distributed

Expose worker task-cache lifecycle controls and per-task invalidation

Open
#551 1 comment 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.