Skip to content

Conversation

@matkt
Copy link
Contributor

@matkt matkt commented Dec 16, 2025

PR description

Description

This PR introduces parallel processing capabilities for Merkle Patricia Trie operations during state root computation in Bonsai storage format, significantly improving block validation performance.

Changes

Core Implementation

  • ParallelStoredMerklePatriciaTrie: New parallel implementation of StoredMerklePatriciaTrie
    • Batches pending updates (puts/removes) before processing
    • Recursively processes branch children in parallel using ForkJoinPool
    • Handles branch, extension, leaf, and null node scenarios

Configuration

  • WorldStateConfig: Added isParallelStateRootComputationEnabled flag (default: true)
  • PathBasedExtraStorageConfiguration: Added parallel state root computation configuration
  • CLI Option: --bonsai-parallel-state-root-computation-enabled to enable/disable feature

Key Features

  1. Parallel Branch Processing: When a branch node has multiple children with updates, they are processed concurrently
  2. Extension Node Expansion: Extensions are temporarily expanded into branches when beneficial for parallel processing
  3. Leaf/Null Node Handling: Intelligent expansion into branch structures when multiple diverging updates exist
  4. Smart Partitioning: Updates are grouped by size - large groups processed in parallel, small groups sequentially
  5. Commit Cache: Thread-safe caching of node updates during parallel processing

Backward Compatibility

  • Feature is opt-in via configuration flag (though enabled by default)
  • Falls back to sequential StoredMerklePatriciaTrie when disabled
  • No breaking changes to existing APIs
  • Fully compatible with existing Bonsai storage format

Configuration Examples

# Enable (default)
besu --data-storage-format=BONSAI --bonsai-parallel-state-root-computation-enabled=true

# Disable for comparison/debugging
besu --data-storage-format=BONSAI --bonsai-parallel-state-root-computation-enabled=false

matkt added 30 commits December 4, 2025 10:59
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
@matkt matkt changed the title Merkle trie optimisation feat: Add parallel state root computation support for Bonsai trie Jan 7, 2026
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