Skip to content

perf(storage): parallelize sharded history last-shard reads (v2.8.0 backport) - #29

Closed
BrianBland wants to merge 2 commits into
releases/v2.8.0from
brianbland/v2.8.0-history-shards
Closed

BrianBland wants to merge 2 commits into
releases/v2.8.0from
brianbland/v2.8.0-history-shards

Conversation

@BrianBland

Copy link
Copy Markdown

Rebases the Base carry of paradigmxyz#26766 (snapshot f47fd63) from base-v2.7.0.2 (de52d82) onto v2.8.0.

Every other patch in base-v2.7.0.2 (paradigmxyz#27498, paradigmxyz#27669, paradigmxyz#27665, paradigmxyz#27939, paradigmxyz#27940, paradigmxyz#27677, #28) is already in v2.8.0, so this is the only carried patch.

Conflict: v2.8.0 adds paradigmxyz#27602 (rebuild pruned history from empty). The backport already carried equivalent rebuild-from-empty handling for its chunked execution, so IndexAccountHistoryStage/IndexStorageHistoryStage::execute keep the backport's logic (identical to base-v2.7.0.2). Both upstream's prune_rebuild_retries_after_checkpoint_rollback test and the backport's prune_bump_rebuilds_empty_table_then_merges_later_chunks test are kept and pass.

Consumed by just reth-prepare-release in base/base to cut base-v2.8.0.1.

Tests: cargo test -p reth-stages --lib -- index_ (46 passed), cargo test -p reth-provider --lib -- history (61 passed).

…ry last-shard reads

Squashed paradigmxyz#26766 at f47fd63,
rebased onto v2.8.0 from base-v2.7.0.2 (de52d82).

v2.8.0 includes paradigmxyz#27602, which rebuilds pruned history
from empty. The backport already carried equivalent rebuild-from-empty
handling for its chunked execution, so the index history stages keep the
backport's logic. Both the upstream rollback test and the backport's
chunked prune test are kept.

Co-authored-by: Toshi <toshi-noreply@coinbase.com>
Co-authored-by: Toshi <toshi-noreply@coinbase.com>
@BrianBland

Copy link
Copy Markdown
Author

Not carrying this for v2.8.0: base/base now pins upstream v2.8.0 with no patches. Upstream closed paradigmxyz#26766 as stale, and paradigmxyz#27602 fixes the empty-rebuild restore case that motivated it. If benchmarks later show incremental or live persistence needs parallel tail reads, re-carry from the upstream head dc38531, which also has the 16-job cap and synced clear.

@BrianBland BrianBland closed this Oct 21, 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.

2 participants