fix(trie): start partial proofs below known parent#26471
Conversation
|
derek bench |
|
derek bench big-blocks bal=true |
|
✅ Benchmark complete! View run Benchmark ResultsConfiguration
500 blocks, mode: engine, 125 warmup, 6 run pairs Wait Time BreakdownPersistence Wait
Trie Cache Update Wait
Execution Cache Update Wait
ObservabilityCharts |
|
✅ Benchmark complete! View run Benchmark ResultsConfiguration
30 big blocks, mode: engine, 7 warmup, 10 run pairs, BAL: true Wait Time BreakdownPersistence Wait
Trie Cache Update Wait
Execution Cache Update Wait
Target Metrics
ObservabilityCharts |
|
derek bench big-blocks bal=true |
|
✅ Benchmark complete! View run Benchmark ResultsConfiguration
30 big blocks, mode: engine, 7 warmup, 10 run pairs, BAL: true Wait Time BreakdownPersistence Wait
Trie Cache Update Wait
Execution Cache Update Wait
Target Metrics
ObservabilityCharts |
|
derek bench big-blocks bal=true run-pairs=1 blocks=100 samply |
|
✅ Benchmark complete! View run Benchmark ResultsConfiguration
100 big blocks, mode: engine, 25 warmup, 1 run pairs, BAL: true Wait Time BreakdownPersistence Wait
Trie Cache Update Wait
Execution Cache Update Wait
ObservabilityChartsSamply Profiles
|
|
derek bench big-blocks bal=true |
|
✅ Benchmark complete! View run Benchmark ResultsConfiguration
30 big blocks, mode: engine, 7 warmup, 10 run pairs, BAL: true Wait Time BreakdownPersistence Wait
Trie Cache Update Wait
Execution Cache Update Wait
Target Metrics
ObservabilityCharts |
|
derek bench |
|
✅ Benchmark complete! View run Benchmark ResultsConfiguration
500 blocks, mode: engine, 125 warmup, 6 run pairs Wait Time BreakdownPersistence Wait
Trie Cache Update Wait
Execution Cache Update Wait
ObservabilityCharts |
|
derek bench big-blocks bal=true |
|
derek bench |
|
✅ Benchmark complete! View run Benchmark ResultsConfiguration
30 big blocks, mode: engine, 7 warmup, 10 run pairs, BAL: true Wait Time BreakdownPersistence Wait
Trie Cache Update Wait
Execution Cache Update Wait
Target Metrics
ObservabilityCharts |
|
✅ Benchmark complete! View run Benchmark ResultsConfiguration
500 blocks, mode: engine, 125 warmup, 6 run pairs Wait Time BreakdownPersistence Wait
Trie Cache Update Wait
Execution Cache Update Wait
ObservabilityCharts |
|
derek bench big-blocks bal=true |
|
✅ Benchmark complete! View run Benchmark ResultsConfiguration
30 big blocks, mode: engine, 7 warmup, 10 run pairs, BAL: true Wait Time BreakdownPersistence Wait
Trie Cache Update Wait
Execution Cache Update Wait
Target Metrics
ObservabilityCharts |
This reverts commit 0f0f726.



























Start known-parent proofs at direct children and batch targets sharing a parent into one bounded traversal. This prevents a stale masked parent node (due to partial persistence) from suppressing live child ranges without splitting sibling targets into independent cursor traversals (which is bad for perf).
For targets
aed2andaed4under known parentaed:Before (
origin/main)aedand traverse[aed, aee), putting the parent and all 16 child ranges in scope.After
aed2, and traverse the bounded sibling span[aed2, aed5)once. The parent is never read by the trie traversal, while outer siblingsaed0–aed1andaed5–aedfare excluded from calculation.aed2andaed4are calculated and retained independently.aed3stays inside the traversal span but is not retained. Usable cached trie data skips its leaves; if it is uncached, the hashed cursor advances through it sequentially instead of performing another seek ataed4.This narrows the work from the whole parent range while preserving efficient sequential traversal between targeted siblings.
Testing
Ran 1k big blocks, 20k mainnet blocks, and 10k mainnet blocks with reorgs with no issues.