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

pevm: support parallel merge mode #238

Draft
wants to merge 30 commits into
base: feature/TxDAG-PEVM
Choose a base branch
from

Conversation

welkin22
Copy link
Contributor

Description

Currently, in our PEVM code, only the execution phase is parallelized. After the parallel execution ends, the results need to be merged serially into the StateDB. I have modified the merging process to be executed in parallel as well, which further improves the performance of the PEVM and reduces the time consumption.

Rationale

By providing a new ParallelStateDB to replace the original StateDB, it supports concurrent reading and writing of data.
Provide ParallelGasPool instead of the original GasPool to support gas calculation in a concurrent environment.
Other similar changes.

Example

Enable parallel merge mode by adding startup parameters:

--parallel.parallel-merge

Note that this startup parameter conflicts with parallel.unordered-merge, and when both are set, parallel.unordered-merge will be invalid.

Changes

Notable changes:

  • ParallelStateDB
  • ParallelGasPool
  • The state.StateDBer interface replaces direct references to StateDB.
  • I supplemented a large number of txDAG files for the TestBlockchainWithTxDAG unit test. I found that the previous unit test had issues, as the code did not enter the branch that uses the DAG files.

@github-actions github-actions bot requested a review from redhdx December 12, 2024 09:08
@welkin22 welkin22 requested review from sunny2022da and andyzhang2023 and removed request for redhdx and andyzhang2023 December 12, 2024 09:08
@welkin22 welkin22 marked this pull request as draft December 12, 2024 09:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant