Skip to content
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

Introduce multiple block executor implementations #8

Merged
merged 6 commits into from
Jul 9, 2024

Conversation

liuchengxu
Copy link
Member

@liuchengxu liuchengxu commented Jul 8, 2024

This PR introduces various block execution strategies, basically the different combo of state backend (disk/in-memory) and block execution (runtime/off-runtime).

The initial idea was to leverage the in-memory backend for faster state root computation. However, the final performance boost on block execution was roughly less than 10x, with the memory usage skyrocketing to 43GB when the chain grows to block 430000+. The number is much lower than my expectation since the read/write of disk versus memory could be up to 1000x. This experiment of block execution optimization does not produce a satisfying full sync performance from genesis, we still need to dig into it.

There are a few leftovers that can be worked on later.

@liuchengxu liuchengxu merged commit 880bcf9 into main Jul 9, 2024
3 checks passed
@liuchengxu liuchengxu deleted the in-memory-block-executor branch July 9, 2024 04:31
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.

1 participant