docs(adr): ADR 009 requires self-contained operators and leaves width-hint placement to scheduling (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
This commit is contained in:
committed by
Edward Langley
parent
b8a0b6a846
commit
14430b5628
@@ -38,6 +38,11 @@ wasm32-clean and serde-free). It provides:
|
|||||||
- operator state behind one trace interface (look up, read a range, apply a delta), so
|
- operator state behind one trace interface (look up, read a range, apply a delta), so
|
||||||
later store-memory work can page or compress it.
|
later store-memory work can page or compress it.
|
||||||
|
|
||||||
|
**Operators are self-contained.** An operator's state and behaviour depend only on its
|
||||||
|
inputs and its own state, never on a shared in-process global or on another operator's
|
||||||
|
internals. That keeps the graph distributable: in principle the model could run across a
|
||||||
|
cluster of machines. Nothing more is designed for that here.
|
||||||
|
|
||||||
There are no nested streams, no recursion operator and no timestamps beyond one clock.
|
There are no nested streams, no recursion operator and no timestamps beyond one clock.
|
||||||
**The formula language is the query language.** What a request asks of the model beyond
|
**The formula language is the query language.** What a request asks of the model beyond
|
||||||
its axes and window (filters, aggregation, derived values) is written in formula text
|
its axes and window (filters, aggregation, derived values) is written in formula text
|
||||||
@@ -356,8 +361,8 @@ process, an edge is a function call.
|
|||||||
|
|
||||||
Every column incrementally maintains a width hint, which optimises grid sizing and
|
Every column incrementally maintains a width hint, which optimises grid sizing and
|
||||||
reduces jitter. The hint is an integrated aggregate: a histogram from display width to
|
reduces jitter. The hint is an integrated aggregate: a histogram from display width to
|
||||||
count, so a retraction is O(log d). Which end of the connection maintains it is open
|
count, so a retraction is O(log d). Where in the graph the hint is computed is a
|
||||||
question 1.
|
scheduling choice, made as an optimisation later.
|
||||||
|
|
||||||
### 11. Rollback and memory
|
### 11. Rollback and memory
|
||||||
|
|
||||||
@@ -422,11 +427,4 @@ Step 8's required tests:
|
|||||||
|
|
||||||
## Open questions
|
## Open questions
|
||||||
|
|
||||||
1. **Which end of the connection maintains a column's width hint?** The client end knows
|
None.
|
||||||
which values are potentially in its viewport, so it can maintain the hint over the
|
|
||||||
values it holds, fed by the deltas it already receives. The host end can maintain it
|
|
||||||
over a whole column, through the graph, including values the client has never held.
|
|
||||||
It would then need the request's hidden rows (clause 7's overlay) and, for numbers, the
|
|
||||||
number format. *Recommendation:* the client end, over the values it holds. The host
|
|
||||||
computes a whole-column hint only where a client asks for one, as a filter operator
|
|
||||||
on its connection (clause 9).
|
|
||||||
|
|||||||
Reference in New Issue
Block a user