Skip to content

[638][df] Revert choice to change default Snapshot TTree compression settings#22001

Open
vepadulano wants to merge 1 commit intoroot-project:v6-38-00-patchesfrom
vepadulano:rdf-revert-snapshot-default-v638
Open

[638][df] Revert choice to change default Snapshot TTree compression settings#22001
vepadulano wants to merge 1 commit intoroot-project:v6-38-00-patchesfrom
vepadulano:rdf-revert-snapshot-default-v638

Conversation

@vepadulano
Copy link
Copy Markdown
Member

Backport of #21753. Unfortunately it can't be made retroactive, but I believe future patch releases of 6.38 should also include the revert.

root-project@61088a3
made the deliberate choice to change the default compression settings when
calling Snapshot with TTree output format from 101 to 505. This choice was the
result of internal discussion within the team, based on the empirical evidence
available up to that point that showed ZSTD outperforming ZLIB on all metrics
for the TTree datasets (as well as for RNTuple datasets).

This commit proposes to revert that choice based on new evidence, summarised at
https://github.com/vepadulano/ttree-lossless-compression-studies. The main
takeaway message from that study is that TTree datasets with branches of type
ROOT::RVec where many (if not all) of the collections are empty are compressed
better with ZLIB than with ZSTD. Being this case actually quite relevant, as
most datasets are made of branches with collection types and as the result of
analysis steps these collections may be skimmed quite drastically, there is
enough motivation to move the default compression settings for TTree back to
101.

This commit changes the default RSnapshotOptions values for compression settings
respectively to 'kUndefined' and '0' for the compression algorithm and the
compression level. When the 'kUndefined' compression algorithm is used, Snapshot
will behave differently depending on the output format: the settings will be 101
for TTree and 505 for RNTuple.

Add one test per respective output format to check the default values are
respected.

The message shown to users of ROOT 6.38 has been updated to take the new
findings into account.
@vepadulano vepadulano requested review from jblomer and pcanal April 21, 2026 14:22
@vepadulano vepadulano self-assigned this Apr 21, 2026
@vepadulano vepadulano requested a review from martamaja10 as a code owner April 21, 2026 14:22
@dpiparo dpiparo changed the title [df] Revert choice to change default Snapshot TTree compression settings [638][df] Revert choice to change default Snapshot TTree compression settings Apr 21, 2026
@github-actions
Copy link
Copy Markdown

Test Results

    19 files      19 suites   2d 23h 17m 52s ⏱️
 3 716 tests  3 716 ✅ 0 💤 0 ❌
68 883 runs  68 883 ✅ 0 💤 0 ❌

Results for commit f85cec8.

Copy link
Copy Markdown
Member

@pcanal pcanal left a comment

Choose a reason for hiding this comment

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

Thanks.

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