Common user-tunable settings for storing ntuples.
All page sink classes need to support the common options.
Definition at line 49 of file RNTupleOptions.hxx.
Public Member Functions | |
virtual | ~RNTupleWriteOptions ()=default |
virtual std::unique_ptr< RNTupleWriteOptions > | Clone () const |
std::size_t | GetApproxUnzippedPageSize () const |
std::size_t | GetApproxZippedClusterSize () const |
int | GetCompression () const |
ENTupleContainerFormat | GetContainerFormat () const |
bool | GetHasSmallClusters () const |
std::size_t | GetMaxUnzippedClusterSize () const |
bool | GetUseBufferedWrite () const |
void | SetApproxUnzippedPageSize (std::size_t val) |
void | SetApproxZippedClusterSize (std::size_t val) |
void | SetCompression (int val) |
void | SetCompression (RCompressionSetting::EAlgorithm::EValues algorithm, int compressionLevel) |
void | SetContainerFormat (ENTupleContainerFormat val) |
void | SetHasSmallClusters (bool val) |
void | SetMaxUnzippedClusterSize (std::size_t val) |
void | SetUseBufferedWrite (bool val) |
Static Public Attributes | |
static constexpr std::uint64_t | kMaxSmallClusterSize = 512 * 1024 * 1024 |
A maximum size of 512MB still allows for a vector of bool to be stored in a small cluster. | |
Protected Attributes | |
std::size_t | fApproxUnzippedPageSize = 64 * 1024 |
Should be just large enough so that the compression ratio does not benefit much more from larger pages. | |
std::size_t | fApproxZippedClusterSize = 50 * 1000 * 1000 |
Approximation of the target compressed cluster size. | |
int | fCompression {RCompressionSetting::EDefaults::kUseAnalysis} |
ENTupleContainerFormat | fContainerFormat {ENTupleContainerFormat::kTFile} |
bool | fHasSmallClusters = false |
If set, 64bit index columns are replaced by 32bit index columns. | |
std::size_t | fMaxUnzippedClusterSize = 512 * 1024 * 1024 |
Memory limit for committing a cluster: with very high compression ratio, we need a limit on how large the I/O buffer can grow during writing. | |
bool | fUseBufferedWrite = true |
#include <ROOT/RNTupleOptions.hxx>
|
virtualdefault |
|
virtual |
Reimplemented in ROOT::Experimental::RNTupleWriteOptionsDaos.
Definition at line 45 of file RNTupleOptions.cxx.
|
inline |
Definition at line 92 of file RNTupleOptions.hxx.
|
inline |
Definition at line 86 of file RNTupleOptions.hxx.
|
inline |
Definition at line 77 of file RNTupleOptions.hxx.
|
inline |
Definition at line 83 of file RNTupleOptions.hxx.
|
inline |
Definition at line 98 of file RNTupleOptions.hxx.
|
inline |
Definition at line 89 of file RNTupleOptions.hxx.
|
inline |
Definition at line 95 of file RNTupleOptions.hxx.
void ROOT::Experimental::RNTupleWriteOptions::SetApproxUnzippedPageSize | ( | std::size_t | val | ) |
Definition at line 62 of file RNTupleOptions.cxx.
void ROOT::Experimental::RNTupleWriteOptions::SetApproxZippedClusterSize | ( | std::size_t | val | ) |
Definition at line 50 of file RNTupleOptions.cxx.
|
inline |
Definition at line 78 of file RNTupleOptions.hxx.
|
inline |
Definition at line 79 of file RNTupleOptions.hxx.
|
inline |
Definition at line 84 of file RNTupleOptions.hxx.
|
inline |
Definition at line 99 of file RNTupleOptions.hxx.
void ROOT::Experimental::RNTupleWriteOptions::SetMaxUnzippedClusterSize | ( | std::size_t | val | ) |
Definition at line 56 of file RNTupleOptions.cxx.
|
inline |
Definition at line 96 of file RNTupleOptions.hxx.
|
protected |
Should be just large enough so that the compression ratio does not benefit much more from larger pages.
Unless the cluster is too small to contain a sufficiently large page, pages are fApproxUnzippedPageSize in size and tail pages (the last page in a cluster) is between fApproxUnzippedPageSize/2 and fApproxUnzippedPageSize * 1.5 in size.
Definition at line 62 of file RNTupleOptions.hxx.
|
protected |
Approximation of the target compressed cluster size.
Definition at line 54 of file RNTupleOptions.hxx.
|
protected |
Definition at line 51 of file RNTupleOptions.hxx.
|
protected |
Definition at line 52 of file RNTupleOptions.hxx.
|
protected |
If set, 64bit index columns are replaced by 32bit index columns.
This limits the cluster size to 512MB but it can result in smaller file sizes for data sets with many collections and lz4 or no compression.
Definition at line 66 of file RNTupleOptions.hxx.
|
protected |
Memory limit for committing a cluster: with very high compression ratio, we need a limit on how large the I/O buffer can grow during writing.
Definition at line 57 of file RNTupleOptions.hxx.
|
protected |
Definition at line 63 of file RNTupleOptions.hxx.
|
staticconstexpr |
A maximum size of 512MB still allows for a vector of bool to be stored in a small cluster.
This is the worst case wrt. the maximum required size of the index column. A 32bit index column can address 512MB of 1-bit (on disk size) bools.
Definition at line 72 of file RNTupleOptions.hxx.