DESIGN_READY_FOR_OPERATOR_REVIEW: Sento total concurrency accounting #195

Open
opened 2026-09-02 17:26:15 +00:00 by nsaspy · 0 comments
Owner

Design-review transaction for revised research #188 and lost-rob0t/starintel-server#35.

Revised design decision

Preserve Sento's current router/dispatcher/mailbox semantics and add only one aggregate execution-lane authority at the capacity-realization boundary.

Current exact dependency: mdbergmann/cl-gserver@6a510c5b58469e72e6363bd3a6059d80b9a5c320.

Accounting model:

  • shared-dispatcher worker = 1 lane
  • N-worker shared dispatcher = N lanes
  • ordinary :pinned actor = 1 lane
  • ordinary message-box/dp actor = 0 additional lanes
  • router / routee membership = 0 lanes

Keep per-dispatcher :workers, dynamic dispatcher registration, random, round-robin, custom count-to-index routing, message-box/dp, and pinned behavior unchanged.

The process-wide StarIntel thread planner remains the canonical authority and grants Sento a numeric maximum. Sento exposes grant / used / free / owner counts and rejects new shared-dispatcher workers or ordinary pinned actors before their threads start when the grant would be exceeded.

Dispatcher workers are internally pinned actors, so the dispatcher reserves N once and its N internal pinned workers consume that reservation without double charging.

Canonical design

roam/design/star-server/STAR-SERVER-042-workload-dispatchers-router-pools.org

The stable Org path/ID is retained, but the document now explicitly supersedes its previous workload-topology-first shape.

First proposed RED slice

Pure concurrency ledger + startup dispatcher demand preflight:

  • 4 + 4 configured workers under grant 6 -> typed failure before worker realization
  • 4 + 2 under grant 6 -> exact-fit used=6/free=0
  • duplicate owner reservation rejected
  • unknown/duplicate release cannot corrupt count
  • deterministic owner snapshot

Later REDs cover no double-charge of internal pinned dispatcher workers, ordinary pinned actor exhaustion, zero cost for dispatcher-backed actors/routers, construction rollback, stop release, and pinned mailbox thread restart.

Adversarial review

Rejected as unnecessary for this P0: replacing routers, inventing a workload DSL, counting actors or routees, independent per-dispatcher maxima without an aggregate ceiling, bt:all-threads accounting, a second user-facing max-concurrency knob, or changing router strategies in the same slice.

Implementation authorization is PENDING / AWAITING_OPERATOR_APPROVAL. This issue is design review only.

Design-review transaction for revised research #188 and `lost-rob0t/starintel-server#35`. ## Revised design decision Preserve Sento's current router/dispatcher/mailbox semantics and add only one aggregate execution-lane authority at the capacity-realization boundary. Current exact dependency: `mdbergmann/cl-gserver@6a510c5b58469e72e6363bd3a6059d80b9a5c320`. Accounting model: - shared-dispatcher worker = 1 lane - N-worker shared dispatcher = N lanes - ordinary `:pinned` actor = 1 lane - ordinary `message-box/dp` actor = 0 additional lanes - router / routee membership = 0 lanes Keep per-dispatcher `:workers`, dynamic dispatcher registration, random, round-robin, custom count-to-index routing, `message-box/dp`, and pinned behavior unchanged. The process-wide StarIntel thread planner remains the canonical authority and grants Sento a numeric maximum. Sento exposes `grant / used / free / owner counts` and rejects new shared-dispatcher workers or ordinary pinned actors before their threads start when the grant would be exceeded. Dispatcher workers are internally pinned actors, so the dispatcher reserves N once and its N internal pinned workers consume that reservation without double charging. ## Canonical design `roam/design/star-server/STAR-SERVER-042-workload-dispatchers-router-pools.org` The stable Org path/ID is retained, but the document now explicitly supersedes its previous workload-topology-first shape. ## First proposed RED slice Pure concurrency ledger + startup dispatcher demand preflight: - 4 + 4 configured workers under grant 6 -> typed failure before worker realization - 4 + 2 under grant 6 -> exact-fit `used=6/free=0` - duplicate owner reservation rejected - unknown/duplicate release cannot corrupt count - deterministic owner snapshot Later REDs cover no double-charge of internal pinned dispatcher workers, ordinary pinned actor exhaustion, zero cost for dispatcher-backed actors/routers, construction rollback, stop release, and pinned mailbox thread restart. ## Adversarial review Rejected as unnecessary for this P0: replacing routers, inventing a workload DSL, counting actors or routees, independent per-dispatcher maxima without an aggregate ceiling, `bt:all-threads` accounting, a second user-facing max-concurrency knob, or changing router strategies in the same slice. **Implementation authorization is PENDING / AWAITING_OPERATOR_APPROVAL.** This issue is design review only.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nsaspy/starintel-auto-research#195
No description provided.