-
Notifications
You must be signed in to change notification settings - Fork 1.5k
execution: FCU background-commit worker + generation-chain reader consistency #21414
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
mh0lt
wants to merge
186
commits into
main
Choose a base branch
from
mh/perf-semaphore-pr-v2
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
186 commits
Select commit
Hold shift + click to select a range
ddc6df7
commitment: extract canonical DecodeBranchInto from unfoldBranchNode
31fdf57
commitment: add BranchCache with pinned root + bounded LRU tail
1593f0e
commitment: document BranchCache concurrency contract
8a2c565
commitment: wire BranchCache into trie read + encoder write paths
2849165
commitment, db/state: lift BranchCache lifetime to aggregator scope
f87937e
commitment: BranchCache divergence detector + per-block fingerprint log
b61655c
commitment: disable deferred-encoding mode (use inline CollectUpdate)
7e21628
commitment: add DISABLE_BRANCH_CACHE_READS env kill-switch
8d6d19a
commitment: multi-layer state probe at BranchCache divergence site
87f12be
commitment: tag BranchCache writes with origin + write-seq + timestamp
6989427
commitment, db/state/execctx: move BranchCache behind sd.mem chain
99823bb
commitment/branch_cache: document responsibility split + post-WarmupC…
4410704
commitment/branch_cache: add pinned tier (PinEntry / PinnedCount)
9b7c02a
commitment/preload: PreloadContractTrunk recursive enumeration
a60b052
state/execctx, commitment: PIN_CONTRACT_TRUNKS env hook
71d8480
state/execctx: trunk-preload sync (was async, hit cgo-pointer panic)
f85308d
commitment, state/execctx: trunk-preload progress logs + max-branches…
a289adc
state/execctx: run trunk-preload AFTER SeekCommitment
29ebc42
state/execctx: trunk-preload async with own tx, triggered from Enable…
db656cc
execution/commitment: PIN_TRUNK_MAX_DEPTH env + raise maxBranches cap
ce8cce4
stagedsync/exec3_parallel: re-enable trie warmup on parallel path
e97c95f
commitment: WarmupCache hit/miss/evict observability counters
af2ef68
commitment: extract unfoldKeyPath as per-key traversal primitive
4074bcc
commitment: WarmupCache dirty-flag + PutBranchIfClean invariants
4be9c86
commitment: WarmupCache GetBranchDecoded — lazy-decode read path
733dad5
execmodule: chain ValidateChain SD to currentContext for head-extendi…
a823097
db/state: H0 baseline benchmark for snapshot-vs-MDBX read cost
118298a
db/state: H0 real-datadir bootstrap; first production numbers
005790f
db/state, commitment: H_GetAsOf bench + per-block calculator timing
4276219
commitment: surface per-block telemetry on cache-fp log
1e8c25c
stagedsync/calc_state: skip wasted ensureStorage in StoragePath Apply…
a263695
commitment: split disk-load counter from EVM-write plumbing
fd593ca
state, commitment: scaffold to quantify EIP-684 HasPrefix cost on sna…
d2ac8ef
commitment, dbg: warmer scales 1:1 with cores; document pooling strategy
20b020d
existence, state, commitment: add measurement counters for assumption…
fefec01
commitment/warmuper: stop walking past leaf cells
c57420b
commitment: drop BranchEncoder's WarmupCache fast path
63e1124
commitment/hph: drop hph.cache (WarmupCache read-through layer)
39b758e
commitment, db/state, stagedsync: delete WarmupCache type and toggle …
b99c192
commitment: mark BranchCache dirty in CollectDeferredUpdate too
80ea439
commitment/warmuper: scope warmer to branches only — drop account/sto…
614fb7b
state, commitment: add unique-prefix file-read counter
4b95d45
state, commitment: add unique-prefix length histogram
d566e9b
state, commitment: refine length histogram inside storage subtree
65fbd14
state/changeset: trunk-probe log to identify hot contracts
c07a688
commitment: surface pinned-tier counters on cache-fp log
a62cbaf
db/state, db/kv: add TemporalMemBatch.FlushWithCallback
8bad508
commitment, state/execctx: BFS / budget-driven trunk preload
b29f3cf
state/execctx: raise PIN_TRUNK_RAM_BUDGET_MB default 32 → 64
d494eec
state/execctx: clamp PIN_TRUNK_RAM_BUDGET_MB at 64 MiB per contract
6ea7ff8
commitment/branch_cache: pin-aware Invalidate, GetWithOrigin, Clear
9ef3b9c
state/execctx: invalidate stale BranchCache entries on SD.Unwind
878f04a
commitment/preload: split BFS into resumable ContractTrunkPreload
a2b6ab5
commitment/branch_cache: add miss-callback hook for adaptive controller
be2616e
commitment: AdaptivePinController for promotion / extension / demotion
b082c93
state/execctx: wire AdaptivePinController into SharedDomains
2c6ee4e
commitment: Prometheus metrics for trunk-pin layer
f48c411
commitment: tests for trunk-pin layer + delete orphaned warmup test
e69e9bf
commitment, db/state: drop bench-only env knobs and cache-fp log
e0b0189
lint: gofmt fixes + drop snapshot_vs_mdbx bench test
fa4d7f7
perf(r3): bulk storage-trunk preload via two-parity range scan (core …
b4591a2
perf(r3): wire triggerTrunkPreload to the bulk range-scan path
ae86359
perf(r3): adaptive controller uses LoadBulk (range scan) when available
4ca9284
perf(preload): retire the broken R3 range-scan preload
3e0154f
perf(preload): parallel file-only wave-BFS preload (cut-down)
4c9968a
perf(preload): cap per-wave fetch by remaining budget
eb0c0c5
perf(preload): phase 1 — MDBX-resident branch prefetch (operational c…
a3374fe
db/state: test for the phase-1 dbPrefetch cursor walk
9db0d59
commitment, db/state: resumable parallel preload + adaptive parallel-…
ae9b3f3
execution/commitment: keep the trie checkpoint key out of BranchCache
3065d89
execution: parent fork-validation SD into the canonical generation
ae711df
execution/commitment: prealloc rest slice in preload_parallel
b2a9d64
db/state/execctx, execution/execmodule: clear BranchCache on SetHead …
9f5086b
Merge remote-tracking branch 'origin/main' into mh/perf-caches-pr
f151829
execution/stagedsync/rawdbreset: clear branchCache on ResetExec (#21138)
9898f3c
common/dbg, node/ethconfig: default ExecWorkerCount = NumCPU-1
6454b7b
Revert "common/dbg, node/ethconfig: default ExecWorkerCount = NumCPU-1"
e8ba812
cmd/evm, execution/tests: per-subtest ephemeral SharedDomains for sta…
mh0lt 54a9029
execution/tests: read pre-state via sd.AsGetter so tx execution sees …
mh0lt 57dd0d6
execution/engineapi/engineapitester: reset aggregator branchCache bet…
mh0lt 5a415cf
execution/cache, db/state/execctx: SD-transparent ethHash bypass for …
4499ad5
execution/cache, db/state, execution/state: codeSizeCache for EXTCODE…
ad565fe
execution/exec, execution/execmodule: BlockReadAheader populates cach…
2d82956
execution/state, execution/cache: stateObject.code populate + addrToH…
987f741
execution/cache, db/state/execctx: addr → codeHash LRU above SD
934082b
execution/exec: cachePopulatingGetter caches negative results
e96df71
execution/cache: surface fill-and-freeze cliff via inserts/dropped co…
7b5a71c
execution/cache: replace GenericCache map with sharded LRU + Mode
3fec476
execution/cache: STATE_CACHE_MODE env override at NewStateCache time
1a56794
execution/cache: correct the LFU rationale in Mode docstring
4a512ce
execution/cache: reduce default cache caps to 100 MB each (bench knob)
da4b091
Parallel-exec correctness fixes (PR #3 of the perf stack) (#21387)
mh0lt 3b11e0e
Merge remote-tracking branch 'origin/main' into mh/perf-caches-pr
mh0lt b7d89ad
Merge remote-tracking branch 'origin/mh/perf-caches-pr' into mh/perf-…
mh0lt 9b15362
execution/state: drop tautological nil checks in code-loading paths (…
mh0lt 6b582fd
execution/execmodule: clear BranchCache between unwindToCommonCanonic…
mh0lt 25eb151
Revert "execution/execmodule: clear BranchCache between unwindToCommo…
mh0lt 0021402
execution/commitment, common/maphash: txN-tagged BranchCache entries …
mh0lt f972499
db/state, db/state/execctx: plumb real txN to BranchCache writes
mh0lt b93969a
db/state/execctx, execution/commitment: wire BranchCache.UnwindTo int…
mh0lt c9a3deb
execution/commitment, db/state, execmodule: trim comments per project…
mh0lt 4618add
execution/engineapi, db/state/execctx, execution/commitment: remove o…
mh0lt 0dc7b1b
execution/commitment, db/state/execctx, cmd/evm: fix 4 Copilot review…
mh0lt fd74979
db/state/execctx: decode AccountsDomain codeHash with DeserialiseV3
mh0lt ba6c67a
db/state, db/kv: unify FlushWithCallback — flush-only refresh for bra…
a5f973b
execution/execmodule: FCU semaphore decouple + foreground-priority bg…
f54eb60
execution/execmodule: gate-2 overlay-continuity wiring (FCU/ValidateC…
980898d
execution/execmodule: commitWorker lifecycle — drain + exit before DB…
a1dbe0b
execution, rpc, txpool: route latest-state reads through the in-fligh…
c2ee3fc
execution: published-leaf SD reads for the outer layer under async co…
2a41192
execution/cache, state, stagedsync: txNum/epoch cache invalidation; r…
mh0lt 42a2aaf
execution: wire state cache into SetHead unwind (fixes BadBlock on re…
mh0lt 2683865
commitment: LatestStateReader.Clone keeps its source tx, not the comp…
mh0lt 44355fd
db/state, commitment: lock-free per-worker read metrics (+ tx-aware B…
mh0lt a027002
db/state: drop process-wide metrics accumulator (metrics-on safety)
mh0lt 943968d
commitment: meter the main-fold reads per-ComputeCommitment
mh0lt f375aa8
db/state, commitment: collapse metrics to per-worker DomainMetrics in…
mh0lt cd1fb81
exec: meter parallel-exec worker reads (per-worker DomainMetrics, per…
mh0lt bd6097e
execution/cache: fix off-by-one in state-cache unwind floor
mh0lt 67d0f33
execution: address #21380 review feedback
mh0lt 6f9f737
Merge origin/main into mh/perf-caches-pr (#21380)
mh0lt 5d16a64
Merge mh/perf-caches-pr into mh/perf-statecache-lru-pr (#21386)
mh0lt 2542895
Merge mh/perf-statecache-lru-pr into mh/perf-semaphore-pr-v2 (#21414)
mh0lt 14604c0
Merge remote-tracking branch 'origin/main' into mh/perf-semaphore-pr-v2
mh0lt 24a9000
execution/execmodule, node: default fcuBackgroundCommit + fix bg-prun…
mh0lt c8fa249
Merge remote-tracking branch 'origin/main' into mh/perf-semaphore-pr-v2
mh0lt 12e9a88
execmodule, cl/beacon: route bg-commit reads via published SD (WIP)
mh0lt d1350b7
execution, rpc, cmd/rpcdaemon: route bg-commit test reads via publish…
mh0lt dbea3a2
db/state, execmodule: SharedDomains range-as-of merging in-mem histor…
mh0lt aaac43f
db/state, execmodule: SharedDomains.HistoryRange merging in-mem + com…
mh0lt 2de5052
db/state, execmodule: SharedDomains.IndexRange over in-mem history
mh0lt ce06873
rpc/jsonrpc: route test state cache + block reads via published SD (b…
mh0lt aa69f55
rpc/jsonrpc: route remaining test-body block/state reads via publishe…
mh0lt f239ba6
execmodule/execmoduletester: retry InsertChain FCU on ExecutionStatus…
mh0lt 04ab253
rpc/jsonrpc: head-pointer tests read raw DB, not published-SD overlay
mh0lt 25b379b
db/state, execmodule: SharedDomains.HistorySeek over in-mem history
mh0lt 3081f38
rpc/jsonrpc: route ListStorageKeys parity tests via published SD
mh0lt 7514590
rpc/jsonrpc: resolve head-pointer test blocks via overlay before raw …
mh0lt 25ede7e
rpc/jsonrpc: eth_getProof builds tip proof against in-flight commitment
mh0lt 2f205c3
execution/execmodule: clear published overlay after SetHead unwind
mh0lt 957e42e
execution/execmodule: reset gen chain + context on SetHead unwind
mh0lt dd04431
db/state: keep standalone inverted-index writes in a local collection
mh0lt c83386a
execution/execmodule: roll back generation read-tx in closeAllGens
mh0lt 2472857
execution/execmodule: route unwind-gap test blockgen via published SD
mh0lt 511b8ec
execution: fix bg-commit test flake and route readers via published SD
mh0lt 4670f5c
execution/types, execution/engineapi, execution/stagedsync: carry the…
mh0lt be79ad7
Merge remote-tracking branch 'origin/main' into mh/perf-semaphore-pr-v2
mh0lt 3b0a19c
cmd/utils/app, db/snapshotsync: make the import tool bg-commit-durable
mh0lt b7f352b
execution/builder, db/state/execctx: isolate the block builder from t…
mh0lt 8f8d941
execution/builder, execution/execmodule: pin block builder to a scope…
mh0lt 56c0f3c
execution/execmodule: bind scoped read view roTx to the background co…
mh0lt 1a7ecd2
execution/stagedsync: don't save a genesis changeset in serial exec
mh0lt 582b08d
execution/stagedsync: treat empty apply-loop close as clean, not more…
mh0lt ffacdd0
db/state, execution: one coordinated generation-chain lookup path for…
mh0lt 1fad509
Merge remote-tracking branch 'origin/main' into mh/perf-semaphore-pr-v2
mh0lt 4605dcc
execution/builder, execution/execmodule: coordinate the builder's sco…
mh0lt beec531
execution/execmodule: harden bg-commit generation lifecycle + builder…
mh0lt f592b6d
rpc/jsonrpc: guard nil header in getProof
mh0lt 6f0d543
rpc/jsonrpc: wrap latest-block tip reads with the block overlay
mh0lt 2fe4547
execution/execmodule, db/kv: dedup overlay-base, drop dead code, add …
mh0lt 604e974
Merge remote-tracking branch 'origin/main' into mh/perf-semaphore-pr-v2
mh0lt f7caf29
execution/execmodule: remove unused waitForegroundIdle
mh0lt 2fe5177
execution/exec, execution/execmodule: route read-ahead prefetch throu…
mh0lt c6d6c06
execution/execmodule: drain commits in insertValidateAndUfc1By1 test …
mh0lt 5c7a67f
execution/exec: read-ahead prefetch uses a plain RO snapshot, not a c…
mh0lt 8e1b25f
Merge remote-tracking branch 'origin/main' into mh/perf-semaphore-pr-v2
mh0lt 5bf8294
Merge remote-tracking branch 'origin/main' into mh/perf-semaphore-pr-v2
mh0lt 758a6d7
execution/stagedsync, execution/execmodule: commitment calculator own…
mh0lt 2e1c28a
execution/stagedsync: remove dead exec-side changeset accumulator mac…
mh0lt 046b3ec
execution/stagedsync: trim stale/oversized changeset comments (review)
mh0lt b57e1ed
execution/execmodule: assert tip newPayload carries a BAL in fold-ahe…
mh0lt c323df0
execution/stagedsync: post-block-consistent fold reader (fix wrong ro…
mh0lt 32370ba
Merge remote-tracking branch 'origin/main' into mh/perf-semaphore-pr-v2
mh0lt 0e89d5a
Merge remote-tracking branch 'origin/main' into mh/perf-semaphore-pr-v2
mh0lt dcc35f1
execution/execmodule: scope payload-bodies BAL getter tests to a sync…
mh0lt 6710bcb
execution, db: address yperbasis review round 5 (P1/P2 blockers)
mh0lt 1e9bae9
Merge origin/main into mh/perf-semaphore-pr-v2
mh0lt 7647816
db/state/execctx: revert HasPrefix parent-chain walk (false CREATE-co…
mh0lt 751e7ee
execution/execmodule, db/state: fix bg-prune FCU race + clear-aware H…
mh0lt ad2f1f2
execution/execmodule: read e.currentContext under lock in FCU cleanup
mh0lt 7ea6f80
execution, db, rpc: address FCU bg-commit review (P1/P2 blockers)
mh0lt c747cfe
db/state, execution, rpc: rename BlockOverlayTemporalTx -> OverlayTem…
mh0lt 868efdc
execution/execmodule: drop redundant ParentOverlayTemporalTx
mh0lt 928dbef
execution, db: address FCU bg-commit review round 7 (P1/P2/P3)
mh0lt da3d119
Merge remote-tracking branch 'origin/main' into mh/perf-semaphore-pr-v2
mh0lt 607ca28
Merge remote-tracking branch 'origin/main' into mh/perf-semaphore-pr-v2
mh0lt File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.