Skip to content

Conversation

@AskAlexSharov
Copy link
Collaborator

@AskAlexSharov AskAlexSharov commented Aug 8, 2024

Before we had transaction-wide cache (map)
Now i changing it to evm-wide.
EVM - is thread-unsafe object - it's ok to use thread-unsafe LRU.
But ExecV3 already using 1-ENV per worker. Means we will share between blocks (not on chain-tip for now)

bench:

  • on mainnet: it shows 12% improvement on large eth_getLogs call (re-exec large historical range of blocks near 6M block) - on hot state.

About chain-tip:

  • don't see much impact (even if make cache global) - because mainnet/bor-mainnet current bottleneck is "flush" changes to db. but integration loop_exec --unwind=2 shows 5% improvement.
  • in future PR we can share 1 lru for many new blocks - currently creating new one every stage loop iteration.

@AskAlexSharov AskAlexSharov requested a review from awskii August 8, 2024 14:20
@AskAlexSharov AskAlexSharov changed the title [wip] JumpDest: evm-based LRU cache JumpDest: evm-based LRU cache Aug 8, 2024
@AskAlexSharov AskAlexSharov requested a review from JkLondon August 9, 2024 01:13
@awskii awskii merged commit 5b30f2e into main Aug 9, 2024
@awskii awskii deleted the jump_dest_thread_unsafe_lru branch August 9, 2024 17:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants