Skip to content

Add bounded-borrow admission policy for heavy-root async workloads #650

@eric-tramel

Description

@eric-tramel

Priority Level

Medium

Epic: #645
Depends on: #644, #649
Baseline: accepted #644 lease-only SHA
Candidate: bounded-borrow PR
Uses: #654 capacity plan semantics and #647/#648 diagnostics when available
Related: #651
Target branch: epic/645-async-scheduling while the epic is active.

Source of Truth

Specification details live in PR #658 under plans/645/, especially task-admission.md, capacity-model.md, benchmark-plan.md, and issue-map.md. This issue tracks the follow-on policy implementation slice and gates only.

Implementation Scope

Implement the first behavior-changing scheduler task-admission policy after the V1 lease boundary: bounded borrowing for heavy-root/live-traffic workloads.

This issue owns:

This issue must not move DAG traversal or resource ownership into FairTaskQueue, and it must not duplicate request-admission/AIMD behavior.

Quality Gates

  • Single-group workloads remain live.
  • Solo heavy groups cannot consume all scheduler-level capacity solely because they are first ready.
  • Newly ready peer/downstream work receives scheduler capacity before further admissions from an over-borrowed group as defined by the plan.
  • Release/wakeup, retry, cancellation, stale discard, and salvage behavior remain correct.
  • Heavy-root benchmark evidence shows reduced downstream ready-to-dispatch lag versus the Implement TaskAdmissionController lease boundary for async scheduler #644 lease-only baseline or documents an explicit tradeoff.
  • Neutral workloads stay within the plan-defined regression threshold unless the PR justifies keeping the policy internal/disabled.

Validation

Run bounded-borrow policy unit tests, async scheduler integration tests for true from-scratch roots and downstream peer arrival, lease-only regression tests, make check, and #649 benchmark scenarios for heavy-root and neutral workloads.

Metadata

Metadata

Assignees

No one assigned

    Labels

    planAgent-assisted development plantaskInternal development task

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions