paradigmxyz
reth
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
Merge branch 'main' into reth/storage-optimize_RocksDB
meetrick:reth/storage-optimize_RocksDB
4 minutes ago
feat(stages): make prewarming runnable with new_with_prewarm constructor Add ExecutionStage::new_with_prewarm() constructor that directly creates an execution stage with prewarming enabled. This allows running prewarming on a reth box by modifying the pipeline setup. Changes: - Add MaybePrewarmFactory trait and NoPrewarm/PrewarmFactory types for type-safe prewarm configuration - Add new_with_prewarm() constructor that takes provider factory and cache size - Actually spawn prewarm threads during execution loop - Add example showing how to enable prewarming Usage: 1. Modify crates/node/builder/src/setup.rs 2. Replace ExecutionStage::new() with ExecutionStage::new_with_prewarm() 3. Pass provider_factory.clone() and cache size (e.g., 8_000_000_000 for 8GB) 4. Build and run: cargo build --release -p reth Metrics to monitor: - sync.stages.execution.prewarm.prewarm_blocks_started - sync.stages.execution.prewarm.prewarm_blocks_completed - sync.stages.execution.caching.{account,storage,code}_cache_{hits,misses} Amp-Thread-ID: https://ampcode.com/threads/T-019be803-c0e3-77f8-a172-7fe0163703a8 Co-authored-by: Amp <amp@ampcode.com>
feat/execution-stage-prewarm
2 hours ago
fix(stages): remove 'static bound from ExecutionStage Stage impl The 'static bound was added during the prewarm POC but is not needed since PrewarmController is no longer stored as a struct field. This bound was propagating to downstream crates and breaking compilation. Also: - Remove unused PrewarmController import - Add #[allow(dead_code)] for intentionally unused POC fields - Remove prewarm controller field (will be created on-demand later)
feat/execution-stage-prewarm
2 hours ago
test(stages): add unit tests for prewarm controller
feat/execution-stage-prewarm
2 hours ago
test(db): add adversarial tests for MDBX_RESERVE zero-copy writes Adds 11 additional tests covering edge cases and adversarial scenarios: - Transaction abort discards reserve-path writes - Rapid successive overwrites to same key - Interleaved reserve-path and fallback-path (compressable) writes - Cursor reuse after multiple reserve operations - Boundary values (zero, max, patterns) - Write then delete - Stress test with 1000 entries - Alternating read/write transactions - DupSort with 100 duplicates - Insert duplicate key fails correctly - Append order enforcement
yk/perf-encode-into
2 hours ago
test(db): add roundtrip tests for MDBX_RESERVE zero-copy writes Tests verify that: - B256 values (uncompressable) roundtrip correctly via reserve path - insert/append/upsert operations work with reserve path - DupSort append_dup works with reserve path - Mixed operations across transactions work correctly
yk/perf-encode-into
2 hours ago
perf(db): integrate MDBX_RESERVE for zero-copy writes For values that implement uncompressable_ref() (like B256, Address), use MDBX's reserve API to write directly into memory-mapped pages. This eliminates one memcpy by: 1. Calling cursor.reserve() to get a mutable slice into MDBX's page 2. Copying data directly into the reserved space For compressable values, falls back to the existing compress + put path.
yk/perf-encode-into
2 hours ago
chore: resolve merge conflicts with main
feat/debug-get-block-access-list
3 hours ago
Active Branches
perf(provider): optimize RocksDB history pruning with changeset-based approach
last run
4 minutes ago
#20674
CodSpeed Performance Gauge
0%
feat(stages): add execution stage prewarming POC
last run
2 hours ago
#21347
CodSpeed Performance Gauge
0%
perf(db-api): add EncodeInto trait for zero-copy encoding
last run
2 hours ago
#21327
CodSpeed Performance Gauge
0%
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs