Skip to content

read path: slot based job scheduling - #7887

Draft
mapno wants to merge 3 commits into
grafana:mainfrom
mapno:slot-based-job-scheduling
Draft

mapno wants to merge 3 commits into
grafana:mainfrom
mapno:slot-based-job-scheduling

Conversation

@mapno

@mapno mapno commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

What this PR does:

Query latency is driven by the slowest job, and today's batch protocol adds another barrier: completed jobs are not returned until every job in the batch finishes. This proposal makes the job scheduling unit while retaining coalesced transport.

animation-clean

Jobs become the scheduling unit, consuming individual slot in queriers. However, for efficiency, jobs are still transported in batched called frames.

Each querier has a configured number of execution slots, with completed jobs returning results and freeing their slots for new work without waiting for the slowest job in their original batch. This reduces idle capacity and prevent a slow job from delaying completed results from other queries. Capacity and dispatch remain explicit and easy to monitor; running stragglers stay assigned, so the improvement comes from reusing freed slots while work is still queued.

Checklist

  • Tests updated
  • Documentation added
  • Changelog entry added under .chloggen/ (run make chlog-new, or make chlog-new FILENAME=<name> to override the default branch-name file; see .chloggen/README.md)

@mapno
mapno force-pushed the slot-based-job-scheduling branch from 9428e91 to 18c36bc Compare September 14, 2026 16:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant