Files
rustfs/docs/architecture/workload-admission-contracts.md
T

44 lines
1.6 KiB
Markdown

# Workload Admission Contracts
This document records the `rustfs/backlog#660` PR-05 and PR-07 scheduler
preservation and runtime workload-class contract slice.
## Preservation Coverage
The `rustfs-concurrency` tests pin the current reusable scheduler and
admission-facing behavior before later snapshot extraction:
- Worker slot over-release remains clamped by the configured worker limit.
- Scheduler default buffer and priority thresholds remain unchanged.
- Scheduler priority boundaries remain high below the high threshold, normal at
both thresholds, and low above the low threshold.
- Backpressure pipe metadata reads preserve buffer capacity and state without
mutating the manager state.
- `GetObjectQueueSnapshot` preserves saturated, over-available, and zero-total
permit semantics.
## Workload Class Contract
`WorkloadClass` defines the required future admission categories:
- Foreground read.
- Foreground write.
- Metadata.
- Scanner.
- Repair.
- Replication.
`AdmissionState`, `WorkloadAdmissionSnapshot`, and
`WorkloadAdmissionRegistrySnapshot` define read-only status shapes for later
runtime owners. They do not replace the current scheduler, request guard,
scanner, heal, replication, or ECStore placement behavior.
## Boundary Rules
- `rustfs-concurrency` owns this reusable contract surface.
- The contract does not depend on `rustfs-ecstore` or RustFS binary runtime
state.
- No scheduler decision logic, queue capacity, Tokio runtime default, scanner
admission, heal admission, replication admission, placement, membership, or
NUMA behavior changes are part of this slice.