Skip to content

Commit 7bf6afb

Browse files
committed
[NFC][ntuple] arch doc regarding active entry tokens
1 parent 9eeba3e commit 7bf6afb

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

tree/ntuple/doc/Architecture.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,11 @@ Data is populated to an explicit `REntry` or the model's default entry through `
251251
The reader can create `RNTupleView` objects for the independent reading of individual fields.
252252
The reader can create `RBulkValues` objects for bulk reading of individual fields.
253253
254+
By default, the caches for compressed and uncompressed data used by the reader will assume sequential access
255+
(or at least a read pattern that is monotonic in the entry number).
256+
The reader can, however, create "active entry tokens" that are used keep data of past entries pinned in the cache.
257+
This can be useful to implement "event mixing" or multi-stream reading where multiple threads share a single reader.
258+
254259
Additionally, the reader provides access to a cached copy of the descriptor.
255260
It can display individual entries (`RNTupleReader::Show()`) and summary information (`RNTupleReader::PrintInfo()`).
256261
@@ -424,6 +429,8 @@ That means that RDataFrame uses a separate data source for every thread, each of
424429
425430
### Concurrent Readers
426431
Multiple readers can read the same RNTuple concurrently as long as access to every individual reader is sequential.
432+
The reader support efficient multi-stream access (multiple threads/streams sharing the same reader)
433+
as long as reader access is locked and every stream uses an active entry token.
427434
428435
### Parallel REntry Preparation
429436
Multiple `REntry` object can be concurrently prepared by multiple threads.

0 commit comments

Comments
 (0)