Skip to content

[io] Write byte counts in streamer field#22430

Merged
jblomer merged 6 commits into
root-project:Arlesiennefrom
jblomer:streamer-field-bytecount-v2
Jun 9, 2026
Merged

[io] Write byte counts in streamer field#22430
jblomer merged 6 commits into
root-project:Arlesiennefrom
jblomer:streamer-field-bytecount-v2

Conversation

@jblomer

@jblomer jblomer commented May 29, 2026

Copy link
Copy Markdown
Contributor

Adds support for streamer field v1, which writes the byte counts of large objects into the stream.

The first two commits should be backported.

Replaces #20608

@jblomer jblomer self-assigned this May 29, 2026
@jblomer jblomer requested review from bellenot and pcanal as code owners May 29, 2026 14:59
@jblomer jblomer requested review from enirolf, hahnjo and silverweed May 29, 2026 14:59
@jblomer jblomer changed the title Streamer field bytecount v2 [io] Write byte counts in streamer field May 29, 2026
@github-actions

github-actions Bot commented May 29, 2026

Copy link
Copy Markdown

Test Results

    22 files      22 suites   3d 8h 4m 40s ⏱️
 3 855 tests  3 853 ✅ 0 💤 2 ❌
76 126 runs  76 124 ✅ 0 💤 2 ❌

For more details on these failures, see this check.

Results for commit fe3c24b.

♻️ This comment has been updated with latest results.

@jblomer jblomer force-pushed the streamer-field-bytecount-v2 branch from fd54941 to 3b67b13 Compare May 31, 2026 19:19
Comment thread tree/ntuple/src/RFieldMeta.cxx
Comment thread tree/ntuple/doc/BinaryFormatSpecification.md Outdated
Comment thread tree/ntuple/doc/BinaryFormatSpecification.md Outdated
Comment thread tree/ntuple/src/RFieldMeta.cxx Outdated
Comment thread tree/ntuple/src/RFieldMeta.cxx Outdated
Comment thread tree/ntuple/test/rfield_streamer_beyond.cxx Outdated
Comment thread io/io/inc/TBufferFile.h Outdated
Comment thread tree/ntuple/src/RFieldMeta.cxx Outdated
Comment thread tree/ntuple/test/CustomStruct.hxx Outdated
Comment thread tree/ntuple/test/rfield_streamer_beyond.cxx

@pcanal pcanal left a comment

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.

Thanks.

@jblomer jblomer force-pushed the streamer-field-bytecount-v2 branch from 3b67b13 to 2f171ca Compare June 5, 2026 07:37
Comment thread tree/ntuple/inc/ROOT/RField.hxx Outdated
@jblomer jblomer force-pushed the streamer-field-bytecount-v2 branch from 2f171ca to fe3c24b Compare June 8, 2026 19:40
jblomer added 5 commits June 8, 2026 21:41
The version 0 and version 1 streamer fields are exactly the same for
small objects (<=1GiB). For larger objects, the version 1 streamer field
stores the byte count stack before the data. This is up to a future
patch. For the moment, we assert that the streamed buffer is never
>1GiB.
Add version 1 streamer field.
Uses RStreamerField as a test bed for (de-)serializing large objects
with TBufferFile.
@jblomer jblomer merged commit e535674 into root-project:Arlesienne Jun 9, 2026
27 of 30 checks passed
@jblomer jblomer deleted the streamer-field-bytecount-v2 branch June 9, 2026 12:48
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.

4 participants