Skip to content

bundle/artifacts: parallel gzip (pgzip) for the tgz artifact builder - #6577

Open
vinchenzo-db wants to merge 1 commit into
mainfrom
vchen/tgz-pgzip
Open

bundle/artifacts: parallel gzip (pgzip) for the tgz artifact builder#6577
vinchenzo-db wants to merge 1 commit into
mainfrom
vchen/tgz-pgzip

Conversation

@vinchenzo-db

Copy link
Copy Markdown
Contributor

Both DABs-built tgz paths gzip single-threaded today: tarballFromInclude via compress/gzip and tarballFromGit via git's --format=tar.gz. gzip dominates packaging time on a large tree. Pipe both through klauspost/pgzip (MIT), which spreads compression across cores and still emits an ordinary gzip stream, at the same default level so tarball sizes are unchanged.

The tgz artifact is content-addressed on upload, so the compressed bytes must be reproducible. pgzip only parallelizes across fixed-size blocks, so pinning the block size keeps output identical regardless of the build host's core count; TestTarballFromGitIsReproducible guards this.

Mirrors the pgzip approach in the air plain_tar packer (#6571), requested by pietern.

Changes

Why

Tests

Both DABs-built tgz paths gzip single-threaded today: tarballFromInclude via
compress/gzip and tarballFromGit via git's --format=tar.gz. gzip dominates
packaging time on a large tree. Pipe both through klauspost/pgzip (MIT), which
spreads compression across cores and still emits an ordinary gzip stream, at the
same default level so tarball sizes are unchanged.

The tgz artifact is content-addressed on upload, so the compressed bytes must be
reproducible. pgzip only parallelizes across fixed-size blocks, so pinning the
block size keeps output identical regardless of the build host's core count;
TestTarballFromGitIsReproducible guards this.

Mirrors the pgzip approach in the air plain_tar packer (#6571),
requested by pietern.

Co-authored-by: Isaac <no-reply@databricks.com>
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Approval status: pending

/bundle/ - needs approval

Files: bundle/artifacts/tarball.go, bundle/artifacts/tarball_test.go
Suggested: @pietern
Also eligible: @janniklasrose, @shreyas-goenka, @anton-107, @andrewnester, @denik, @lennartkats-db

General files (require maintainer)

Files: NOTICE, go.mod, go.sum
Based on git history:

  • @pietern -- recent work in ./

Any maintainer (@andrewnester, @anton-107, @denik, @pietern, @shreyas-goenka, @simonfaltum, @renaudhartert-db, @janniklasrose, @lennartkats-db, @rugpanov, @rclarey) can approve all areas.
See OWNERS for ownership rules.

@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 91591fd

Run: 34283917692

Env 🔄​flaky 💚​RECOVERED ✅​pass 🙈​skip Time
💚​ aws linux 1 275 15 8:02
🔄​ aws windows 1 1 276 13 8:21
💚​ azure linux 1 274 15 8:25
🔄​ azure windows 1 1 275 13 7:47
💚​ gcp linux 1 275 15 9:06
💚​ gcp windows 1 277 13 7:38
Test Name aws linux aws windows azure linux azure windows gcp linux gcp windows
💚​ TestAccept 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
🔄​ TestSyncFullFileSync ✅​p ✅​p ✅​p 🔄​f ✅​p ✅​p
🔄​ TestSyncIncrementalFileSync ✅​p 🔄​f ✅​p ✅​p ✅​p ✅​p
Top 7 slowest tests (at least 2 minutes):
duration env testname
7:36 gcp windows TestAccept
7:26 azure windows TestAccept
7:20 aws windows TestAccept
4:05 aws linux TestAccept
3:57 gcp linux TestAccept
3:49 azure linux TestAccept
2:02 gcp linux TestFilerRecursiveDelete/workspace_files_extensions

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