myxce/.kiro/specs/project-guarantee/brief.md
Rongsong Shen b761878b58
docs(specs): discovery for layered job configuration (queue/app/project)
New briefs: job-config-merge (one live merge of job, application profile,
queue policy and project into effective values; simplified rules: job
overrides profile, select ANDed, queue hard/task limits reject; queue is
policy only, res_req deprecated), project-config (project quotas v1) and
project-guarantee (backlog).

application-profile: the profile carries the job's resreq (incl. span) and
task limits; "frozen at submit" replaced by the live merge.
parjob-placement: span constraints live in the fixed-N planner and the
range search bisects over the planner's allowed counts; LSF 10.1 block,
ptile, stripe and HOSTLIMIT_PER_JOB findings recorded.
Roadmap: new specs, existing-spec updates, lsf-config-migration backlog.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-10 03:14:16 +00:00

2.1 KiB

Brief: project-guarantee

(/kiro-discovery, 2026-10-09, Path E "configuration layering". Backlog: not started until project-config and scheduler-preemption land.)

Problem

With project-config, projects can only be capped. Owners of a project (a group that funded hardware, a department with a committed share) need a guarantee: a minimum share or a pool of resources they get when they ask for it, while idle capacity is still lent to others.

Current State

  • No guarantee, share or pool concept exists; fairshare is in the queue YAML schema only and dropped by xceadmin (mapping.py:80-97).
  • Preemption is specified but not implemented (scheduler-preemption, requirements generated).

Desired Outcome

  • A project can own a guarantee: a resource amount (slots, hosts or any resource) or a pool of hosts.
  • Idle guaranteed capacity may be borrowed by other projects' jobs.
  • When an owner's pending job needs its guarantee back, borrowers are reclaimed (preempted, requeued or allowed to finish, by policy).
  • Guarantee state and borrowing are visible (REST, xcecli, REPL).

Approach

To be chosen in discovery when the spec starts. Candidates: LSF-style guarantee service classes (lsb.resources GuaranteedResourcePool), or guarantees as reserved virtual resources built on the limit/vres machinery plus preemption.

Scope

  • In: guarantee model, borrowing, reclaim policy, visibility.
  • Out: quotas (project-config), fairshare ordering, accounting/billing.

Boundary Candidates

  • Guarantee model and config.
  • Scheduler accounting of owned vs borrowed usage.
  • Reclaim through scheduler-preemption.

Out of Boundary

  • Project definitions and membership (project-config).

Upstream / Downstream

  • Upstream: project-config, scheduler-preemption, job-config-merge.
  • Downstream: lsf-config-migration (guarantee pools).

Existing Spec Touchpoints

  • Extends: none.
  • Adjacent: scheduler-preemption, resource-distribution-mapping.

Constraints

  • Scheduler driver equivalence (live and simulator identical).
  • Touches scheduling policy and HA state: full 3-phase workflow.