Skip to content

Conversation

enirolf
Copy link
Contributor

@enirolf enirolf commented Sep 25, 2025

For snapshotting to RNTuple, users can now pass an RNTupleWriteOptions to RSnapshotOptions to configure the output RNTuple. Compression settings that have been set directly through RSnapshotOptions::fCompressionAlgorithm and RSnapshotOptions::fCompressionLevel are propagated to RSnapshotOptions::fNTupleWriteOpts, provided that they haven't been set there already as well.

In addition, a check has been added to warn users when they set options that are specific to one output format, but RSnapshotOptions.fOutputFormat has been set to use the other.

Closes #19784.

Copy link

github-actions bot commented Sep 25, 2025

Test Results

    22 files      22 suites   3d 21h 49m 9s ⏱️
 3 680 tests  3 680 ✅ 0 💤 0 ❌
79 071 runs  79 071 ✅ 0 💤 0 ❌

Results for commit cb535da.

♻️ This comment has been updated with latest results.

Copy link
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.

LGTM.

// compression settings in fNTupleWriteOpts have not been changed, and the compression algorithm or level in fOptions
// have.
if (fOptions.fNTupleWriteOpts.GetCompression() == RCompressionSetting::EDefaults::kUseGeneralPurpose &&
(fOptions.fCompressionAlgorithm != RCompressionSetting::EAlgorithm::kZLIB ||
Copy link
Contributor

Choose a reason for hiding this comment

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

I think that leaves the possibility that a user explicitly sets fCompression... to what happens to be the current default, but then is surprised because RNTuple doesn't pick it up but continue to use its zstd default. I don't have a good solution though, maybe that's ok.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hmm, good point. Perhaps to avoid situations like these it might be better to also warn users for fCompression..., and require them to be set through fNTupleWriteOpts only.

N.B., compression settings that have been set directly through the
snapshot options are propagated to the RNTuple write options, provided
that they haven't been set there as well.
... and warn users when an option has been set that has no effect on the
chosen output format.
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.

[df] RNTuple snapshot + TTree-specific options
3 participants