- Panels Added:
1. Overlay State Provider - Total Duration (Panel 303)
- Metric: reth_storage_overlay_state_provider_total_database_provider_ro_duration
- Shows complete database_provider_ro() execution time
- Thresholds: Green (0s), Yellow (0.1s), Red (0.5s)
2. Overlay State Provider - Base Provider Creation (Panel 304)
- Metric: reth_storage_overlay_state_provider_base_provider_creation_duration
- Time to create base DB provider
- Thresholds: Green (0s), Yellow (0.01s), Red (0.05s)
3. Overlay State Provider - Block Hash Lookup (Panel 305)
- Metric: reth_storage_overlay_state_provider_block_hash_lookup_duration
- Time to convert block hash to block number
- Thresholds: Green (0s), Yellow (0.01s), Red (0.05s)
4. Overlay State Provider - Trie Reverts Fetch (Panel 306)
- Metric: reth_storage_overlay_state_provider_trie_reverts_duration
- Time to fetch trie reverts from database
- Thresholds: Green (0s), Yellow (0.1s), Red (0.5s)
5. Overlay State Provider - State Reverts Fetch (Panel 307)
- Metric: reth_storage_overlay_state_provider_state_reverts_duration
- Time to fetch state reverts from database
- Thresholds: Green (0s), Yellow (0.1s), Red (0.5s)
- Changed the proof worker to lazily initialize the database provider and ProofTaskTx on the first job message instead of during worker spawn.
- This improves the worker's availability time by allowing it to mark itself as available immediately, reducing the startup overhead.
- Updated metrics to capture the duration of DB provider creation and proof transaction initialization only when they are actually created, enhancing performance tracking.
bit of context around pool creation, so you can see whether those steps are dragging.
- Added per-worker timers around database_provider_ro() and ProofTaskTx::new() for both
storage and account pools, feeding new histograms in ProofTaskTrieMetrics (crates/trie/
parallel/src/proof_task.rs:728, crates/trie/parallel/src/proof_task_metrics.rs:18).
- Introduced debug logs when a payload spawns and finishes building the proof worker pools
to make block-level spikes line up with worker lifecycle events (crates/engine/tree/src/
tree/payload_processor/mod.rs:231).
Add metrics to track time from worker spawn start until each proof
worker marks itself as available (after initialization, before
processing first job).
Changes:
- Add storage_worker_spawn_to_available_duration histogram
- Add account_worker_spawn_to_available_duration histogram
- Capture timestamp before spawning workers
- Pass timestamp to worker constructors
- Record elapsed time when workers mark themselves available
These metrics help identify worker initialization bottlenecks and
understand parallel proof computation startup performance.