Repository navigation
perf(row-model): fuse the adopted identity sweep's verdict and key reads (+ cycle triage doc) - #534
Merged
Merged
Conversation
The nightly cycle's objective 1 (controls-in-band confirmation of the #490 arc's estimate-met 120ms bar) did not run: 1-min load 6.37 against a <5 precondition, swap exhausted (8775M/9216M), a VM at 258% CPU, and port 4173 held by a parallel session. No bench, no trace, no bar claimed — the arc's verdict stays estimate-met at ~116 fit-estimate. Objective 2 is done as load-independent static analysis. Central finding: the lever list inherited from the arc is pre-M2 attribution of a 127ms window, and both #518 and M2 targeted the runner term since. In particular the "~10% snapshot HAMT reads" lever looks mis-attributed — every flat-root rows.get is viewport-sized, and the identity lane's build path takes no store get at all. One real candidate survives: under adoption the identity lane pays two WeakMap gets on the same key per survivor (filterVerdict discards the entry it looked up, then fillSortKeysFromPrevious looks it up again to hit an early return), plus two instanceof revalidations — ~500k redundant lookups per 50k keystroke settle. Fusing them is proposed with a pre-registered falsifiable prediction, gated on the re-trace. The columnar verdict cache is closed rather than deferred: it can only cache filter-predicate evaluation, which the compiled path already reduced to ~1% of the settle window, so its saving is bounded at ~1ms before paying for commit-side clears. That explains the two prior flat A/Bs rather than excusing them on regime. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…from one cache read Under adoption (every warm keystroke — a filter-only set-query above the sync gate), carryRecord paid two evaluation-cache WeakMap gets on the same key per survivor: filterVerdict looked the entry up, failed the verdictPlan guard by design, and discarded it; fillSortKeysFromPrevious then looked the same key up in the same (adopted) map to hit its early return, behind two instanceof revalidations. ~500k redundant lookups per 50k keystroke settle. The fused sortKeysIfPasses answers both questions from ONE get: the verdict is still recomputed under the new plan (the memo guard still fails for adopted entries), the keys are the same unguarded sortKeys read the fill's early return performed, and a lineage-miss falls back to the fill's accessor arm with a keys-only seed. The un-adopted lane is untouched. Certified by a new evaluationCacheLookups work counter (counts the identity-carry path's cache reads only): the adopted-lane pin asserts ONE lookup per swept row (read 10_050 for 10_000 sweeps + 50 survivors before the fusion; mutation-verified — disabling the fused arm fails it at exactly 10_050), and the un-adopted control pins 10_100 so a fusion that merely stopped counting cannot pass. Verdict correctness is pinned by the flipped visible set (the new filter keeps exactly the 50 rows the old one rejected). Zero public report drift (pnpm api clean). row-model 719, grid-core 169, core 7, renderer-dom 168, react 1570 — all green. The ms payoff is unmeasured (load 18 machine) and not claimed; it rides with the owed #490 confirmation round. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
blove
enabled auto-merge (squash)
August 30, 2026 14:49
Contributor
Vercel preview readyPreview: https://pretable-hbxz35j5e-cacheplane.vercel.app Updated automatically by the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Two commits from the 2026-08-29/30 nightly perf cycle:
docs/superpowers/specs/2026-08-29-next-perf-cycle-brainstorm.md): the Remaining 50k filter-settle levers: rebuild body (~19%) and residual HAMT (~12%) #490 confirmation round was aborted on regime preconditions (load 6.4–18.5, swap exhausted, VM pinning cores — no bar claimed); the inherited lever shares are flagged as pre-M2 attribution; the columnar verdict cache is closed on a ceiling argument (~1% target term); one lever survives.carryRecordpaid two evaluation-cache WeakMap gets on the same key per survivor —filterVerdictlooked the entry up, failed theverdictPlanguard by design, and discarded it;fillSortKeysFromPreviouslooked the same key up again in the same adopted map to hit its early return. ~500k redundant lookups per 50k keystroke settle. The fusedsortKeysIfPassesanswers both from one get. The un-adopted lane is untouched.Certification (load-independent — no timing claim)
New
evaluationCacheLookupswork counter, scoped to the identity-carry path:sortKeyCarries/Evaluationsstay 0 on the adopted lane.Verification
pnpm build+pnpm apiclean — zero public report drift (row-model-internal)494e533fHonesty notes
lsof -sTCP:LISTEN.🤖 Generated with Claude Code