Skip to content

Refill deadline-ordered Cell renewals on completion - #23

Merged
forhappy merged 2 commits into
mainfrom
codex/renewal-scheduler
Sep 30, 2026
Merged

forhappy merged 2 commits into
mainfrom
codex/renewal-scheduler

Conversation

@forhappy

@forhappy forhappy commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Discover due Cell owners on the existing 100 ms tick and dispatch oldest deadlines first.
  • Keep the 32-renewal concurrency ceiling, but refill a freed slot immediately when a renewal finishes instead of waiting for another tick.
  • Rebuild the bounded pending set on each scan so departed Cells and stale generations cannot accumulate.

Verification

  • cargo check -p cellule-runtime --all-targets --features test-support --locked passed.
  • Focused renewal-ordering, slow-control-renewal, publication-rebase, and idle-owner-progress tests passed.
  • cargo clippy -p cellule-runtime --all-targets --features test-support --locked -- -D warnings passed.
  • Module boundaries, Markdown links, and Rust snippets passed.
  • A 30-second in-memory diagnostic passed at 1,000 active repositories (1,001/1,001 serving Cells updated, 326.830 control updates/s, zero failed PUTs), plus graceful drain, fresh-node recovery, and released-only window. This isolates progress beyond the old 320-starts/s scheduler ceiling.
  • The matching RustFS beta.8 provider run passed 100 and 500 active repositories with zero failed PUTs, then many Cell renewals returned Fenced while seeding beyond 800. It stopped advancing at 812 and did not produce a valid 1,000-Cell window or graceful shutdown. Node-lease/provider-pressure causality remains under investigation; real-store density is not qualified.

This addresses the dispatch ceiling; it does not reduce the number of per-Cell control updates or establish 10,000-active-Cell capacity.

@forhappy
forhappy merged commit eda4185 into main Sep 30, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant