[r3.6] execution/state: skip the domain read when the tx already found no account - #23089
Merged
Merged
Conversation
…count (#23074) When the read set holds no account for an address, `versionedStateReader.ReadAccountData` went to the domain — including when the read set held an AddressPath entry that says there is no account. That entry is an answer, not a gap: `readAccountInternal` records it header-only before the load, and `accountRead` overwrites it with the account as soon as a load finds one, so a header-only entry means the load came back empty. Implication "read set records the address -> the read returns nil", over `rpc/jsonrpc` + `execution/tests`: **10618/10618**, including the self-destruct / EIP-161 / CREATE2 family. **Worth nothing on main today**, measured: apply-loop domain account reads through the versioned reader are 7506 with and without, whole `rpc/jsonrpc` suite. `Normalize` still gets the plain domain reader, so only the finalize IBS uses this path and it never asks for a recorded-absent address. Once `Normalize` takes the read-set reader (#23050), the same condition takes those reads 18961 -> 8926 (**-52.9%**). Divergence not seen in 10618 samples: an account self-destructed by an earlier tx and revived by a balance-only credit writes no AddressPath cell, so the old path returned the pre-SD account where this one falls through to BAL synthesis. Green: `execution/state`, `execution/stagedsync`, `execution/tests`, `rpc/jsonrpc`.
AskAlexSharov
enabled auto-merge
August 7, 2026 10:37
awskii
approved these changes
Aug 7, 2026
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.
Cherry-pick of #23074 to release/3.6.