mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-18 10:43:15 +00:00
44 lines
1.6 KiB
Markdown
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.
|