Skip to content

id(world): F12.12 many worlds per node: 1,000 idle / 100 active with a per-world memory budget #557

Open

Description

@dezren39

What and why

Lazy open, idle eviction with checkpoint and a bounded memory budget per world, measured against 1,000 idle and 100 active (20 ev/s, p99 < 50 ms) targets with the F11.8 harness. Lazy open, eviction and per-guest memory caps exist, but nobody has measured the targets and a world's total memory is not bounded.

Source

Current status

Partial. Mechanisms exist from Phase 9/10: pkgs/id/src/world_hub.rs:7-15 (lazy single-flight open, session and open-world ceilings, idle eviction), and a per-guest linear memory cap of 16 MiB (pkgs/id/src/sandbox.rs:25-36). The per-world total memory budget with refusal tests landed in #4628. The F11.8 many-world measurement now exists; its p99 is 5,650.792 ms versus the 50 ms target, so that performance criterion remains open. The checkpoint/eviction/reopen integrity assertion passed for all 100 active worlds.

Acceptance criteria

  • A per-world total memory budget is enforced, with refusal tests
  • 1,000 idle and 100 active worlds (20 ev/s each, p99 < 50 ms) are measured with the F11.8 harness and the results recorded (measured p99: 5,650.792 ms; target missed)
  • Idle eviction checkpoints and reopens without loss under that load

Size

L

Prerequisites

Activity

  1. added
    kind/featureNew feature or capability request
    source/humanFiled directly by a human
    priority/normalOrdinary priority (the default)
    effort/lLarge: multi-day or open-ended; expect staged check-ins
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 26, 2026
  2. dezren39 commented on Oct 26, 2026

    @dezren39
    MemberAuthor

    Intake review

    Fleet-monitor intake pass (2026-10-26). Body already carries a full ## Acceptance criteria section, so this pass is label normalization plus a liveness check — no body edit.

    Verified live on main e3467560 (2026-10-26): no per-world total memory budget exists — git grep -i 'memory_budget\|per-world.*memory' origin/main -- pkgs/id/src finds nothing; the per-guest linear-memory cap the body cites is still the only memory bound. The measurement half is also untouched (no harness run recorded). Still live; the body's "Partial" status assessment still holds.

    Related: prerequisite #539 (F11.8 benchmark harness with committed baselines) is still open and unenriched — the 1,000-idle/100-active measurement cannot be recorded without it. The metrics from #553 would make the budget observable once enforced.

    Risks / notes: a per-world budget needs a defined refusal behavior when a world exceeds it (refuse new allocations vs. evict vs. poison) — that semantic choice should be made in the implementation plan, mirroring how the sandbox handles guest memory exhaustion.

    Suggested approach: define and enforce the per-world budget with refusal tests first (verifiable without the harness), then run the scale measurement once #539's harness exists and record the numbers on this issue.

  3. added
    nextOrg Project gate: queued next — orchestrator adds to the board
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed on Oct 27, 2026
  4. 209 remaining items

  5. developing-today commented on Nov 3, 2026

    @developing-today
    Contributor

    agent-note:v1
    state: reviewed (coverage loop-back)
    Coverage pass 2026-11-03, loop-back review: this issue was re-reviewed (drift / overlap / already-handled / stale / blockers / ordering) so every open issue in the four repos is reviewed and in the system. Verdict: still live; in the system as task 8085 (triage, queued, priority 50) in repo-health-code-pilot. Labels audited and synced. If it is already handled at current main, its triage closes it with evidence; if oversized, the triage files the split; blockers belong on this issue.
    Found via: coverage loop-back 2026-11-03

  6. added
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 4, 2026
  7. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · triaged

  8. added
    queue/queuedHas a queued task in the Supabase agent queue
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/idPackage/app: id (pkgs/ or apps/ in this repo)effort/lLarge: multi-day or open-ended; expect staged check-insenhancementNew feature or requestkind/featureNew feature or capability requestmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedmode/onlineFully doable remotely: design, config, code, cloudnextOrg Project gate: queued next — orchestrator adds to the boardpriority/normalOrdinary priority (the default)queue/claimedQueue worker lifecycle statesource/humanFiled directly by a humanstatus/in-progressQueue worker lifecycle statetask/triageQueue packet kind: verify, reproduce, and route this itemwork/assignedQueue worker lifecycle state

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions