feat: derive recent queue reserve from account capacity
This commit is contained in:
45
README.md
45
README.md
@@ -55,8 +55,8 @@ Optional tuning:
|
||||
- `MODELHUB_QUEUE_CLEANUP_INTERVAL_CYCLES` default `120`; cleanup also runs once at startup
|
||||
- `MODELHUB_QUEUE_CLEANUP_READ_CONCURRENCY` default `6`
|
||||
- `MODELHUB_QUEUE_CLEANUP_REPORT_PATH` default `.modelhub_state/queue_cleanup_latest.json`
|
||||
- `MODELHUB_OLD_MODEL_QUEUE_THRESHOLD` default `80` per account
|
||||
- `MODELHUB_DYNAMIC_OLD_MODEL_CLEANUP_THRESHOLD` default `95` per account
|
||||
- `MODELHUB_RECENT_MODEL_RESERVE_SLOTS` default `10` per account
|
||||
- `MODELHUB_DYNAMIC_OLD_MODEL_CLEANUP_RESERVE_SLOTS` default `5` per account
|
||||
- `MODELHUB_RECENT_MODEL_DAYS` default `7`
|
||||
|
||||
## Adaptive GPU Strategy
|
||||
@@ -138,24 +138,24 @@ same model or infer failure from historical similarity. The cleanup repeats
|
||||
every 120 poll cycles by default and writes its full evidence report to
|
||||
`.modelhub_state/queue_cleanup_latest.json`.
|
||||
|
||||
Each account reserves only its first 80 active queue positions for models older
|
||||
than seven days. Old-model reservations are made under the same account lock as
|
||||
capacity reservations, so concurrent submissions cannot cross position 80.
|
||||
Once every account has at least 80 active tasks, discovery is capped at the
|
||||
seven-day window and only recent models can fill positions 81–100. Unknown model
|
||||
timestamps are treated as old for new submissions.
|
||||
Each account dynamically reserves its last 10 known-capacity positions for
|
||||
models updated within seven days. If an account's discovered limit is 100, 200,
|
||||
or 500, older models stop at positions 90, 190, or 490 respectively. Old-model
|
||||
reservations are made under the same account lock as capacity reservations, so
|
||||
concurrent submissions cannot enter the reserved suffix. Once every account's
|
||||
old-model allowance is exhausted, discovery is capped at the seven-day window.
|
||||
Unknown model timestamps are treated as old for new submissions. When capacity
|
||||
probing raises an account's known limit, its old-model boundary moves with it.
|
||||
|
||||
Queue cleanup applies a two-level version of the policy. On poller cycle 1 it
|
||||
first stops deterministic OOM tasks, recalculates each account's surviving task
|
||||
order by numeric task ID, and removes older-than-seven-days tasks after position
|
||||
80. On later scheduled cleanup cycles, the age threshold relaxes to 95: old
|
||||
tasks in positions 81-95 are retained and only old tasks at position 96 or later
|
||||
are removed. New old-model submissions are still blocked at position 80, so the
|
||||
upper queue remains available to recent models without repeatedly over-pruning
|
||||
existing work. Recent overflow tasks are always kept. ModelScope metadata
|
||||
failures fail closed and never trigger cancellation. Immediately before
|
||||
mutation, task ownership, active status, and post-OOM queue position are checked
|
||||
again.
|
||||
On startup, the worker first stops deterministic OOM tasks, recalculates each
|
||||
account's surviving task order by numeric task ID, and removes
|
||||
older-than-seven-days tasks beyond that account's current limit minus 10. Later
|
||||
scheduled cleanup uses limit minus 5, retaining a small hysteresis buffer that
|
||||
avoids repeatedly over-pruning valid work. For a 100-task account the two
|
||||
boundaries are 90 and 95; for a 500-task account they are 490 and 495. Recent
|
||||
overflow tasks are always kept. ModelScope metadata failures fail closed and
|
||||
never trigger cancellation. Immediately before mutation, task ownership, active
|
||||
status, and post-OOM queue position are checked again.
|
||||
|
||||
The verified capacities, safe repository-size boundaries, evidence hierarchy,
|
||||
and source links are recorded in
|
||||
@@ -244,12 +244,15 @@ Version `2026.08.11.3` adds atomic per-account 80/7-day admission, prevents
|
||||
history expansion once old-model positions are exhausted, performs a strict
|
||||
position-80 startup cleanup, and relaxes scheduled age cleanup to position 95
|
||||
after OOM cleanup and a second queue check.
|
||||
Version `2026.08.11.4` replaces fixed queue positions with per-account dynamic
|
||||
boundaries derived from each discovered capacity: limit minus 10 for admission
|
||||
and startup cleanup, then limit minus 5 for scheduled dynamic cleanup.
|
||||
|
||||
## Deploy
|
||||
|
||||
Create a tag and submit the repository URL plus tag in "我的适配智能体".
|
||||
|
||||
```bash
|
||||
git tag agent-v17
|
||||
git push origin agent-v17
|
||||
git tag agent-v18
|
||||
git push origin agent-v18
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user