feat: expose heal workload admission snapshot (#3605)

This commit is contained in:
安正超
2026-06-19 10:39:09 +08:00
committed by GitHub
parent 8cf3c0bfbd
commit 00ca3b7c1c
5 changed files with 180 additions and 10 deletions
+23 -10
View File
@@ -5,18 +5,18 @@ Status values: `[ ]` not started, `[~]` in progress, `[x]` complete, `[!]` block
## Current Context
- Issue: [`rustfs/backlog#660`](https://github.com/rustfs/backlog/issues/660)
- Branch: `overtrue/arch-runtime-capability-snapshots`
- Baseline: `origin/main` after `rustfs/rustfs#3603`
(`b106b628c164bf6cdca9e71ff5118711f99d4ab0`).
- Branch: `overtrue/arch-workload-admission-owner-snapshots`
- Baseline: `origin/main` after `rustfs/rustfs#3590`
(`8cf3c0bf0100d9d2234f08b48df31fd73b92ed43`).
- PR type for this branch: `consumer-migration`
- Runtime behavior changes: none.
- Rust code changes: wire read-only observability and endpoint-topology
snapshot providers in the RustFS runtime.
- CI/script changes: extend migration guard coverage for RustFS runtime
capability provider implementations.
- Docs changes: add RustFS provider notes to
[`runtime-capability-contracts.md`](runtime-capability-contracts.md) and
record the API-056/R-016 provider slice.
- Rust code changes: expose read-only repair workload admission snapshots from
existing heal runtime counters.
- CI/script changes: extend migration guard coverage for RustFS workload
admission provider implementations.
- Docs changes: add RustFS heal provider notes to
[`workload-admission-contracts.md`](workload-admission-contracts.md) and
record the API-057/R-017 provider slice.
## Phase 0 Tasks
@@ -170,6 +170,19 @@ Status values: `[ ]` not started, `[~]` in progress, `[x]` complete, `[!]` block
check, migration and layer guards, formatting, diff hygiene, risk scan, and
three-expert review.
- [x] `API-057/R-017` Expose heal repair admission snapshot.
- Completed slice: implement a RustFS workload admission snapshot provider
that maps existing heal active-task and queue-length counters to the
`Repair` workload class.
- Acceptance: repair admission state is observable through the
`rustfs-concurrency` workload snapshot contract without changing heal
queueing, scheduling, retry, priority merge/drop, or repair behavior.
- Must preserve: heal request admission, queue capacity, scheduler wakeups,
task retry handling, active-task accounting, and repair execution.
- Verification: focused workload admission tests, focused RustFS library
check, migration and layer guards, formatting, diff hygiene, risk scan, and
three-expert review.
- [x] `TEST-PRTYPE-001` Check PR type enum consistency.
- Acceptance: `./scripts/check_architecture_migration_rules.sh` parses the
allowed PR types from [`crate-boundaries.md`](crate-boundaries.md) and fails
@@ -59,3 +59,19 @@ The RustFS storage `ConcurrencyManager` now implements
This is an observation surface only. Permit acquisition, priority assignment,
buffer sizing, storage media detection, request guards, and queue behavior are
unchanged.
## Heal Repair Snapshot Extraction
The RustFS integration layer now exposes a read-only repair admission snapshot
from the heal runtime counters:
- `Repair` reports the current heal active task count.
- `queued` reports the current heal queue length.
- `limit` remains `None` because the configured heal queue and concurrency
limits live behind the async heal manager state.
- Other workload classes remain `Unknown` in this provider until their owning
runtime components expose read-only status.
This is an observation surface only. Heal request admission, queue capacity,
priority merge/drop policy, task scheduling, retry handling, and repair
behavior are unchanged.