Commit b288248
compute: serve fast-path peeks on the interactive runtime
The interactive runtime holds no local traces, so an index peek there resolves
against the sharing registry instead. Such peeks live in `pending_work` keyed by a
`WorkId` and indexed by the id they wait on, not in `pending_peeks`. A publication
or seal marks that id dirty and wakes the worker, which re-examines exactly the
items indexed under the ids that changed, so wakeups scale with what changed
rather than with total pending work. Fast-path persist peeks still land in
`pending_peeks` on every runtime, because their persist-read task wakes the worker
with no dirty signal, which is why the every-step scan stays.
Interactive dataflows build immediately in command arrival order rather than
deferring until their dependency is published. An import over an unadopted
placeholder produces no data and holds its output frontier at the minimum until a
publisher adopts the same slot, so late binding replaces the deferral.
The interactive runtime reports only its transient collections' frontiers. It
shares the identity of every non-transient collection with maintenance, which owns
and reports the real frontiers, and the controller keeps one frontier stream per
collection, so reporting the shared ones would race the owner and regress it. For
the same reason its logging is forced off: it serves introspection peeks from
maintenance's published copies, and its own empty copies would clobber them. The
consequence is that nothing the interactive runtime does appears in
introspection, tracked as CPU-222.
Reconciliation drops `pending_work` and `dep_index`, whose peeks belong to the
reconciled-away connection. The standing holds in the registry deliberately
survive: one is per collection, carries no dataflow identity, and only rises, so
clearing it would drop the arrangement's bound to the minimum until replayed
compactions raised it again.
Reachable only on a runtime holding the `Interactive` role, which requires the
dyncfg that is still off everywhere.
Tests are out of line in `compute_state/tests.rs`, per the convention in
`src/compute/AGENTS.md`.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent c929c6d commit b288248
5 files changed
Lines changed: 1874 additions & 164 deletions
File tree
- src/compute/src
- compute_state
0 commit comments