feat(mip8): storage perf-regression suite + consume timing report - #54
Merged
pdobacz merged 23 commits intoSep 9, 2026
Conversation
pdobacz
force-pushed
the
perf-regression-eestnet-monad-ten-fixes
branch
from
August 28, 2026 17:03
44d60dd to
e790ffe
Compare
mijovic
approved these changes
Sep 7, 2026
Runloop-timed SLOAD/SSTORE workloads (NINE vs NEXT): - two-sided MWU p and a sig@0.10 flag - ijson-streamed consume - block diagrams doc Co-Authored-By: Claude <claude-opus-4-8>
Rework random_sload/bad_block_chained for random file access; refresh disjoint-table descriptions and per-family diagrams. Co-Authored-By: Claude <claude-opus-4-8>
Co-Authored-By: Claude <claude-opus-4-8>
…_page
sweep_page reads all 128 offsets at occupancy k in {0,1,64}: k hits + (128-k) misses.
Co-Authored-By: Claude <claude-fable-5>
Co-Authored-By: Claude <claude-fable-5>
Co-Authored-By: Claude <claude-opus-5[1m]>
Derives fork/format from the test case, namespaces part files, refuses xdist. Co-Authored-By: Claude <claude-opus-5>
Gains an entry point, mypy coverage, typed signatures and unit tests. Co-Authored-By: Claude <claude-opus-5>
Signed-rank on per-run differences, BH-adjusted q, uncompared cases named. Co-Authored-By: Claude <claude-opus-5>
A shared sender's nonce chain serialises a block regardless of storage access. Co-Authored-By: Claude <claude-opus-5>
Takes its budget from --gas-benchmark-values, so it leaves consensus releases. Co-Authored-By: Claude <claude-opus-5>
rt separates a block that was slower from one that redid work under contention. Co-Authored-By: Claude <claude-opus-5>
The runloop re-stamps the primary when it opens the db, so the value is inert. Co-Authored-By: Claude <claude-opus-5>
Its gas reserve differed per fork (28100 vs 27900), so the code did too. Co-Authored-By: Claude <claude-opus-5>
Benjamini-Hochberg already bounds the false discovery rate across the whole table, and 13 paired runs are what let an isolated effect reach 5%. Co-Authored-By: Claude <claude-opus-5>
compute_loop fills the 7-tx block; block_shape is filled at both sender modes. Co-Authored-By: Claude <claude-opus-5>
Reports retries as 0 and warns once, rather than dropping every timing row. Co-Authored-By: Claude <claude-opus-5>
Every page and gas count followed from the gas budget and drifted twice. Co-Authored-By: Claude <claude-opus-5>
The markdown table is the artifact; the standalone page duplicated it. Co-Authored-By: Claude <claude-opus-5>
--timing-report refuses xdist, so the per-test part files were unreachable. Co-Authored-By: Claude <claude-opus-5>
Filled at the smallest block gas every case supports, outside monad/monad_runloop. Co-Authored-By: Claude <claude-opus-5>
Matches the verification path and `evm blocktest`, which run a whole file. Co-Authored-By: Claude <claude-opus-5>
Its sha is now execution-specs', so the provenance table loses a column. Co-Authored-By: Claude <claude-opus-5>
pdobacz
force-pushed
the
perf-regression-eestnet-monad-ten-fixes
branch
from
September 7, 2026 12:29
e790ffe to
9cf3573
Compare
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.
I wanted to get the performance regression stack into
main, but it resulted huge. I trimmed it down considerably over the course of these commits, but still huge.I am hesitant whether we need it, but not rejecting the idea, since most of this change is purely additive and would be easy to get rid of.
There's a bunch of tests and also the benchmark tests are going to be filled on CI to ensure they do not rot [that badly].
Happy to hear that it's better not to merge this and re-create when new need arises.
Greptile Summary
The PR adds a MIP-8 storage performance-regression suite and a reporting pipeline that collects Monad runloop block timings and compares MONAD_NINE with MONAD_TEN.
Confidence Score: 5/5
The PR appears safe to merge.
No blocking failure remains; the current unnamed-fixture path iterates and verifies every entry in a merged fixture file, resolving the prior selection and verification-abort reports.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart LR A[MIP-8 benchmark tests] --> B[Fill NINE and TEN fixtures] B --> C[Monad runloop consume passes] C --> D[Parse per-block timing logs] D --> E[timing_consume.csv per run] E --> F[Pair NINE and TEN samples] F --> G[Wilcoxon tests and BH adjustment] G --> H[Markdown regression report]Reviews (4): Last reviewed commit: "perf: follow the harness into the repo u..." | Re-trigger Greptile