Skip to content

feat: use transfer manager for parallel S3 snapshot downloads#27

Merged
bdchatham merged 1 commit into
mainfrom
feat/parallel-s3-download
Mar 15, 2026
Merged

feat: use transfer manager for parallel S3 snapshot downloads#27
bdchatham merged 1 commit into
mainfrom
feat/parallel-s3-download

Conversation

@bdchatham
Copy link
Copy Markdown
Contributor

@bdchatham bdchatham commented Mar 15, 2026

Summary

  • Replace single-stream s3.GetObject in SnapshotRestorer with the AWS SDK transfer manager GetObject, which downloads byte ranges in parallel via a concurrentReader and reassembles them into a sequential io.Reader
  • No temp files or two-phase extraction needed -- the existing streaming gzip+tar pipeline works unchanged, but S3 reads are now parallelized behind the scenes
  • Existing S3GetObjectAPI / S3ClientFactory types preserved for genesis.go which only fetches small files

Test plan

  • All 6 existing snapshot restore tests pass with updated mock
  • golangci-lint reports 0 issues
  • Deploy to brandon cluster and verify snapshot download speed improvement

Replace the single-stream s3.GetObject with the transfer manager GetObject
for snapshot restores. The transfer manager downloads byte ranges in parallel
via a concurrentReader and reassembles them into a sequential io.Reader,
giving us parallel throughput without needing a temp file or changing the
streaming extraction pipeline.
@bdchatham bdchatham force-pushed the feat/parallel-s3-download branch from 3095ad1 to 0bb14b9 Compare March 15, 2026 15:16
@bdchatham bdchatham marked this pull request as ready for review March 15, 2026 15:32
@bdchatham bdchatham merged commit 9123721 into main Mar 15, 2026
2 checks passed
@bdchatham bdchatham deleted the feat/parallel-s3-download branch March 15, 2026 15:32
bdchatham added a commit to sei-protocol/sei-k8s-controller that referenced this pull request Mar 15, 2026
…wnloads

Update seictl dependency to pick up the transfer manager integration
(sei-protocol/seictl#27) which uses the AWS S3 transfer manager for
parallel byte-range downloads during snapshot restore. Also updates the
default sidecar image and sample manifests to the new container digest.
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