Common user-tunable settings for storing ntuples.
All page sink classes need to support the common options.
Definition at line 37 of file RNTupleWriteOptions.hxx.
Public Types | |
enum class | EImplicitMT { kOff , kDefault } |
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 |
bool | GetHasSmallClusters () const |
std::size_t | GetMaxUnzippedClusterSize () const |
bool | GetUseBufferedWrite () const |
EImplicitMT | GetUseImplicitMT () 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 | SetHasSmallClusters (bool val) |
void | SetMaxUnzippedClusterSize (std::size_t val) |
void | SetUseBufferedWrite (bool val) |
void | SetUseImplicitMT (EImplicitMT 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::kUseGeneralPurpose} |
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 |
EImplicitMT | fUseImplicitMT = EImplicitMT::kDefault |
#include <ROOT/RNTupleWriteOptions.hxx>
|
strong |
Enumerator | |
---|---|
kOff | |
kDefault |
Definition at line 39 of file RNTupleWriteOptions.hxx.
|
virtualdefault |
|
virtual |
Reimplemented in ROOT::Experimental::RNTupleWriteOptionsDaos.
Definition at line 44 of file RNTupleWriteOptions.cxx.
|
inline |
Definition at line 84 of file RNTupleWriteOptions.hxx.
|
inline |
Definition at line 78 of file RNTupleWriteOptions.hxx.
|
inline |
Definition at line 71 of file RNTupleWriteOptions.hxx.
|
inline |
Definition at line 93 of file RNTupleWriteOptions.hxx.
|
inline |
Definition at line 81 of file RNTupleWriteOptions.hxx.
|
inline |
Definition at line 87 of file RNTupleWriteOptions.hxx.
|
inline |
Definition at line 90 of file RNTupleWriteOptions.hxx.
void ROOT::Experimental::RNTupleWriteOptions::SetApproxUnzippedPageSize | ( | std::size_t | val | ) |
Definition at line 61 of file RNTupleWriteOptions.cxx.
void ROOT::Experimental::RNTupleWriteOptions::SetApproxZippedClusterSize | ( | std::size_t | val | ) |
Definition at line 49 of file RNTupleWriteOptions.cxx.
|
inline |
Definition at line 72 of file RNTupleWriteOptions.hxx.
|
inline |
Definition at line 73 of file RNTupleWriteOptions.hxx.
|
inline |
Definition at line 94 of file RNTupleWriteOptions.hxx.
void ROOT::Experimental::RNTupleWriteOptions::SetMaxUnzippedClusterSize | ( | std::size_t | val | ) |
Definition at line 55 of file RNTupleWriteOptions.cxx.
|
inline |
Definition at line 88 of file RNTupleWriteOptions.hxx.
|
inline |
Definition at line 91 of file RNTupleWriteOptions.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 55 of file RNTupleWriteOptions.hxx.
|
protected |
Approximation of the target compressed cluster size.
Definition at line 47 of file RNTupleWriteOptions.hxx.
|
protected |
Definition at line 45 of file RNTupleWriteOptions.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 60 of file RNTupleWriteOptions.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 50 of file RNTupleWriteOptions.hxx.
|
protected |
Definition at line 56 of file RNTupleWriteOptions.hxx.
|
protected |
Definition at line 57 of file RNTupleWriteOptions.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 66 of file RNTupleWriteOptions.hxx.