Skip to content

[ntuple] Merger: avoid resealing if not needed#20112

Merged
silverweed merged 2 commits intoroot-project:masterfrom
silverweed:ntuple_merge_l2
Dec 4, 2025
Merged

[ntuple] Merger: avoid resealing if not needed#20112
silverweed merged 2 commits intoroot-project:masterfrom
silverweed:ntuple_merge_l2

Conversation

@silverweed
Copy link
Contributor

Currently we either "fast merge" the page (i.e. we copy it as-is to the destination) or we reseal it if fast merging is not possible (which happens where the compression or the on-disk encoding don't match).
There is a middle ground where we can avoid resealing if only the page compression differs but not the on-disk encoding.
We were not currently leveraging this and doing the extra work of resealing the pages in all cases where just recompression could be done.

With this PR we introduce this middle ground case ("L2 merging", aka "recompress merging") which skips the resealing (thus the re-encoding) of the pages whenever possible.

(see here for the L2 terminology)

Checklist:

  • tested changes locally
  • updated the docs (if necessary)

@github-actions
Copy link

github-actions bot commented Oct 15, 2025

Test Results

    22 files      22 suites   3d 20h 32m 11s ⏱️
 3 777 tests  3 774 ✅ 0 💤 3 ❌
81 179 runs  81 176 ✅ 0 💤 3 ❌

For more details on these failures, see this check.

Results for commit 40620a61.

♻️ This comment has been updated with latest results.

Copy link
Contributor

@jblomer jblomer left a comment

Choose a reason for hiding this comment

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

Nice!

I think the codimd write-up should be submitted as a doc PR.

@silverweed silverweed force-pushed the ntuple_merge_l2 branch 2 times, most recently from c9c22cc to 579e1f9 Compare November 10, 2025 08:17
Currently we either "fast merge" the page (i.e. we copy it as-is to the
destination) or we reseal it if fast merging is not possible.
There is a middle ground where we can avoid resealing if only the page
compression differs but not the on-disk encoding.
We were not currently leveraging this and doing the extra work of
resealing the pages in all cases where just recompression could be done.
With this PR we introduce this middle ground case ("L2 merging", aka
"recompress merging") which skips the resealing (thus the re-encoding)
of the pages whenever possible.
@silverweed silverweed merged commit 356df0f into root-project:master Dec 4, 2025
26 of 30 checks passed
@silverweed silverweed deleted the ntuple_merge_l2 branch December 4, 2025 07:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants