Repository navigation
Compression frames: consecutive new sub-chunks compressed together (B2→B8 28.3 → 3.6 MB, store 17.0 → 16.7 GB) (#52) - #57
Merged
Merged
Conversation
…nked files together (#52) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… that only frames compress (#52) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Background
Switching a node from decode B2 to decode B8 sent 28.3 MB with onggi against 6.1 MB with Xet-style chunking (#51), because onggi compressed each ~4 KiB sub-chunk alone (#52). A probe on the lab store measured what grouping would give: new sub-chunks compressed per chunk would send 5.8 MB, and in frames of up to 256 KiB across chunks, 3.3 MB.
Changes
pkg/store/frame.go). In a sub-chunked file, push collects consecutive new chunks and compresses them together, up toConfig.Frameraw bytes (new stores: 255 KiB,--frame;0turns it off).Locnames the frame (Offset,Stored,Codec), the frame's raw length (Frame) and its place in it (Inner), so dedup and the per-chunk hash check are unchanged.ONGGIIX3, 56-byte entries) is written only for packs with framed chunks; v1 and v2 are still read and written as before.frame.ReadStoredand repack decode each frame once while chunks come in pack order, and coalesce chunks of one frame into one read.Loc.share).docs/evaluation.md, README.Verification
Compatibility and limits
Related Issue
Closes #52
🤖 Generated with Claude Code