Skip to content

fstree: add compressed object decompression tool - #4079

Merged
roman-khimov merged 1 commit into
masterfrom
uncompress-util
Jul 15, 2026
Merged

fstree: add compressed object decompression tool#4079
roman-khimov merged 1 commit into
masterfrom
uncompress-util

Conversation

@End-rey

@End-rey End-rey commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@codecov

codecov Bot commented Jul 9, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 62.93436% with 96 lines in your changes missing coverage. Please review.
✅ Project coverage is 26.82%. Comparing base (6180c09) to head (0c03868).
⚠️ Report is 19 commits behind head on master.

Files with missing lines Patch % Lines
...ject_storage/blobstor/fstree/rewrite_compressed.go 57.94% 26 Missing and 19 partials ⚠️
...torage/blobstor/fstree/rewrite_compressed_linux.go 52.17% 17 Missing and 16 partials ⚠️
cmd/fstree-decompress/root.go 78.31% 10 Missing and 8 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4079      +/-   ##
==========================================
+ Coverage   26.28%   26.82%   +0.53%     
==========================================
  Files         671      675       +4     
  Lines       45862    45941      +79     
==========================================
+ Hits        12056    12322     +266     
+ Misses      32674    32453     -221     
- Partials     1132     1166      +34     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@End-rey
End-rey force-pushed the uncompress-util branch from da8c054 to bad672e Compare July 9, 2026 13:38
Comment thread pkg/local_object_storage/blobstor/fstree/rewrite_compressed.go Outdated
Comment thread pkg/local_object_storage/blobstor/fstree/rewrite_compressed.go Outdated
Comment thread pkg/local_object_storage/blobstor/fstree/rewrite_compressed.go Outdated
Comment thread pkg/local_object_storage/blobstor/fstree/rewrite_compressed.go Outdated
// The method preserves combined physical files by rewriting all hard links to
// the same new combined file. The storage node must not write to this FSTree
// while the migration is running.
func (t *FSTree) RewriteCompressed() (RewriteCompressedStats, error) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if it is an FSTree method, why do we need this utility then? it can be a background routing for the next release

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Theoretically, yes, I also had this thought, but:

  • either it needs to be synchronized with other activities (deletion first of all to avoid object resurrection) which requires some effort
  • or it keeps the same logic as an outsider, but then having a separate process is easier, can be controlled by shard and can even be performed before the release

Comment thread pkg/local_object_storage/blobstor/fstree/rewrite_compressed.go Outdated
Comment thread pkg/local_object_storage/blobstor/fstree/rewrite_compressed.go Outdated
Comment thread pkg/local_object_storage/blobstor/fstree/rewrite_compressed_linux.go Outdated
Comment thread pkg/local_object_storage/blobstor/fstree/rewrite_compressed_linux.go Outdated
Comment thread pkg/local_object_storage/blobstor/fstree/rewrite_compressed.go Outdated
Add fstree-decompress for rewriting old zstd-compressed FSTree objects as plain
canonical object bytes. Support single FSTree roots via `--path` and node
configs via `--config`.

Signed-off-by: Andrey Butusov <andrey@nspcc.io>
@roman-khimov
roman-khimov merged commit c708025 into master Jul 15, 2026
22 checks passed
@roman-khimov
roman-khimov deleted the uncompress-util branch July 15, 2026 14:39
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.

3 participants