feat(mip8): storage perf-regression suite + consume timing report - #54
Open
pdobacz wants to merge 23 commits into
Open
feat(mip8): storage perf-regression suite + consume timing report #54pdobacz wants to merge 23 commits into
pdobacz wants to merge 23 commits into
Conversation
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>
… merged 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>
pdobacz
force-pushed
the
perf-regression-eestnet-monad-ten-fixes
branch
from
August 28, 2026 17:03
44d60dd to
e790ffe
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 the supporting workflow for collecting, aggregating, and documenting Monad block-execution timings.
Confidence Score: 5/5
The PR appears safe to merge because no blocking failure remains.
No blocking failure remains.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart LR B[MIP-8 benchmark definitions] --> F[Fill MONAD_NINE and MONAD_TEN fixtures] F --> C[Consume fixtures with Monad runloop] C --> T[Collect per-block timing metrics] T --> CSV[timing_consume.csv per run] CSV --> P[Pair fork samples by test and parameters] P --> S[Wilcoxon tests and BH adjustment] S --> M[Markdown regression report]Reviews (3): Last reviewed commit: "fix(monad): verify every fixture when gi..." | Re-trigger Greptile