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

perf(engine): pre-warm in-memory database by executing all transactions in parallel #12052

Open
Tracked by #11161 ...
rkrasiuk opened this issue Oct 24, 2024 · 0 comments · May be fixed by #12083
Open
Tracked by #11161 ...

perf(engine): pre-warm in-memory database by executing all transactions in parallel #12052

rkrasiuk opened this issue Oct 24, 2024 · 0 comments · May be fixed by #12083
Assignees
Labels
A-consensus Related to the consensus engine C-perf A change motivated by improving speed, memory usage or disk footprint

Comments

@rkrasiuk
Copy link
Member

Description

Execute all transactions in parallel (perhaps if tx len or gas used exceeds certain threshold) to pre-warm in-memory state. Then execute the block with pre-warmed state.

let block_number = block.number;
let block_hash = block.hash();
let sealed_block = Arc::new(block.block.clone());
let block = block.unseal();
let exec_time = Instant::now();
let output = self.metrics.executor.execute_metered(executor, (&block, U256::MAX).into())?;

Additional Context

Related to #11161 as it will allow us to start gathering proofs

@rkrasiuk rkrasiuk added C-perf A change motivated by improving speed, memory usage or disk footprint A-consensus Related to the consensus engine labels Oct 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-consensus Related to the consensus engine C-perf A change motivated by improving speed, memory usage or disk footprint
Projects
Status: Todo
Development

Successfully merging a pull request may close this issue.

3 participants
@Rjected @rkrasiuk and others