Skip to content

Commit b288248

Browse files
antiguruclaude
andcommitted
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

0 commit comments

Comments
 (0)