Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Experimental::RNTupleWriteOptions Class Reference

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< RNTupleWriteOptionsClone () 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>

Inheritance diagram for ROOT::Experimental::RNTupleWriteOptions:
[legend]

Constructor & Destructor Documentation

◆ ~RNTupleWriteOptions()

virtual ROOT::Experimental::RNTupleWriteOptions::~RNTupleWriteOptions ( )
virtualdefault

Member Function Documentation

◆ Clone()

std::unique_ptr< ROOT::Experimental::RNTupleWriteOptions > ROOT::Experimental::RNTupleWriteOptions::Clone ( ) const
virtual

Reimplemented in ROOT::Experimental::RNTupleWriteOptionsDaos.

Definition at line 45 of file RNTupleOptions.cxx.

◆ GetApproxUnzippedPageSize()

std::size_t ROOT::Experimental::RNTupleWriteOptions::GetApproxUnzippedPageSize ( ) const
inline

Definition at line 92 of file RNTupleOptions.hxx.

◆ GetApproxZippedClusterSize()

std::size_t ROOT::Experimental::RNTupleWriteOptions::GetApproxZippedClusterSize ( ) const
inline

Definition at line 86 of file RNTupleOptions.hxx.

◆ GetCompression()

int ROOT::Experimental::RNTupleWriteOptions::GetCompression ( ) const
inline

Definition at line 77 of file RNTupleOptions.hxx.

◆ GetContainerFormat()

ENTupleContainerFormat ROOT::Experimental::RNTupleWriteOptions::GetContainerFormat ( ) const
inline

Definition at line 83 of file RNTupleOptions.hxx.

◆ GetHasSmallClusters()

bool ROOT::Experimental::RNTupleWriteOptions::GetHasSmallClusters ( ) const
inline

Definition at line 98 of file RNTupleOptions.hxx.

◆ GetMaxUnzippedClusterSize()

std::size_t ROOT::Experimental::RNTupleWriteOptions::GetMaxUnzippedClusterSize ( ) const
inline

Definition at line 89 of file RNTupleOptions.hxx.

◆ GetUseBufferedWrite()

bool ROOT::Experimental::RNTupleWriteOptions::GetUseBufferedWrite ( ) const
inline

Definition at line 95 of file RNTupleOptions.hxx.

◆ SetApproxUnzippedPageSize()

void ROOT::Experimental::RNTupleWriteOptions::SetApproxUnzippedPageSize ( std::size_t  val)

Definition at line 62 of file RNTupleOptions.cxx.

◆ SetApproxZippedClusterSize()

void ROOT::Experimental::RNTupleWriteOptions::SetApproxZippedClusterSize ( std::size_t  val)

Definition at line 50 of file RNTupleOptions.cxx.

◆ SetCompression() [1/2]

void ROOT::Experimental::RNTupleWriteOptions::SetCompression ( int  val)
inline

Definition at line 78 of file RNTupleOptions.hxx.

◆ SetCompression() [2/2]

void ROOT::Experimental::RNTupleWriteOptions::SetCompression ( RCompressionSetting::EAlgorithm::EValues  algorithm,
int  compressionLevel 
)
inline

Definition at line 79 of file RNTupleOptions.hxx.

◆ SetContainerFormat()

void ROOT::Experimental::RNTupleWriteOptions::SetContainerFormat ( ENTupleContainerFormat  val)
inline

Definition at line 84 of file RNTupleOptions.hxx.

◆ SetHasSmallClusters()

void ROOT::Experimental::RNTupleWriteOptions::SetHasSmallClusters ( bool  val)
inline

Definition at line 99 of file RNTupleOptions.hxx.

◆ SetMaxUnzippedClusterSize()

void ROOT::Experimental::RNTupleWriteOptions::SetMaxUnzippedClusterSize ( std::size_t  val)

Definition at line 56 of file RNTupleOptions.cxx.

◆ SetUseBufferedWrite()

void ROOT::Experimental::RNTupleWriteOptions::SetUseBufferedWrite ( bool  val)
inline

Definition at line 96 of file RNTupleOptions.hxx.

Member Data Documentation

◆ fApproxUnzippedPageSize

std::size_t ROOT::Experimental::RNTupleWriteOptions::fApproxUnzippedPageSize = 64 * 1024
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.

◆ fApproxZippedClusterSize

std::size_t ROOT::Experimental::RNTupleWriteOptions::fApproxZippedClusterSize = 50 * 1000 * 1000
protected

Approximation of the target compressed cluster size.

Definition at line 54 of file RNTupleOptions.hxx.

◆ fCompression

int ROOT::Experimental::RNTupleWriteOptions::fCompression {RCompressionSetting::EDefaults::kUseAnalysis}
protected

Definition at line 51 of file RNTupleOptions.hxx.

◆ fContainerFormat

ENTupleContainerFormat ROOT::Experimental::RNTupleWriteOptions::fContainerFormat {ENTupleContainerFormat::kTFile}
protected

Definition at line 52 of file RNTupleOptions.hxx.

◆ fHasSmallClusters

bool ROOT::Experimental::RNTupleWriteOptions::fHasSmallClusters = false
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.

◆ fMaxUnzippedClusterSize

std::size_t ROOT::Experimental::RNTupleWriteOptions::fMaxUnzippedClusterSize = 512 * 1024 * 1024
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.

◆ fUseBufferedWrite

bool ROOT::Experimental::RNTupleWriteOptions::fUseBufferedWrite = true
protected

Definition at line 63 of file RNTupleOptions.hxx.

◆ kMaxSmallClusterSize

constexpr std::uint64_t ROOT::Experimental::RNTupleWriteOptions::kMaxSmallClusterSize = 512 * 1024 * 1024
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.

Libraries for ROOT::Experimental::RNTupleWriteOptions:

The documentation for this class was generated from the following files: