Logo ROOT  
Reference Guide
No Matches
ROOT::Experimental::RNTupleWriteOptionsDaos Class Reference

DAOS-specific user-tunable settings for storing ntuples.

Definition at line 36 of file RNTupleWriteOptionsDaos.hxx.

Public Member Functions

 ~RNTupleWriteOptionsDaos () override=default
std::unique_ptr< RNTupleWriteOptionsClone () const override
uint32_t GetMaxCageSize () const
const std::string & GetObjectClass () const
void SetMaxCageSize (uint32_t cageSz)
 Set the upper bound for page concatenation into cages, in bytes.
void SetObjectClass (const std::string &val)
 Set the object class used to generate OIDs that relate to user data.
- Public Member Functions inherited from ROOT::Experimental::RNTupleWriteOptions
virtual ~RNTupleWriteOptions ()=default
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
bool GetUseTailPageOptimization () 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)
void SetUseTailPageOptimization (bool val)

Private Attributes

uint32_t fMaxCageSize = 16 * RNTupleWriteOptions::fApproxUnzippedPageSize
 The maximum cage size is set to the equivalent of 16 uncompressed pages - 1MiB by default.
std::string fObjectClass {"SX"}

Additional Inherited Members

- Public Types inherited from ROOT::Experimental::RNTupleWriteOptions
enum class  EImplicitMT { kOff , kDefault }
- Static Public Attributes inherited from ROOT::Experimental::RNTupleWriteOptions
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 inherited from ROOT::Experimental::RNTupleWriteOptions
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
 Whether to use buffered writing (with RPageSinkBuf).
EImplicitMT fUseImplicitMT = EImplicitMT::kDefault
 Whether to use implicit multi-threading to compress pages. Only has an effect if buffered writing is turned on.
bool fUseTailPageOptimization = true
 Whether to optimize tail pages to avoid an undersized last page per cluster (see above).

#include <ROOT/RNTupleWriteOptionsDaos.hxx>

Inheritance diagram for ROOT::Experimental::RNTupleWriteOptionsDaos:

Constructor & Destructor Documentation

◆ ~RNTupleWriteOptionsDaos()

ROOT::Experimental::RNTupleWriteOptionsDaos::~RNTupleWriteOptionsDaos ( )

Member Function Documentation

◆ Clone()

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

Reimplemented from ROOT::Experimental::RNTupleWriteOptions.

Definition at line 45 of file RNTupleWriteOptionsDaos.hxx.

◆ GetMaxCageSize()

uint32_t ROOT::Experimental::RNTupleWriteOptionsDaos::GetMaxCageSize ( ) const

Definition at line 56 of file RNTupleWriteOptionsDaos.hxx.

◆ GetObjectClass()

const std::string & ROOT::Experimental::RNTupleWriteOptionsDaos::GetObjectClass ( ) const

Definition at line 50 of file RNTupleWriteOptionsDaos.hxx.

◆ SetMaxCageSize()

void ROOT::Experimental::RNTupleWriteOptionsDaos::SetMaxCageSize ( uint32_t  cageSz)

Set the upper bound for page concatenation into cages, in bytes.

It is assumed that cage size will be no smaller than the approximate uncompressed page size. To disable page concatenation, set this value to 0.

Definition at line 60 of file RNTupleWriteOptionsDaos.hxx.

◆ SetObjectClass()

void ROOT::Experimental::RNTupleWriteOptionsDaos::SetObjectClass ( const std::string &  val)

Set the object class used to generate OIDs that relate to user data.

Any OC_xxx constant defined in daos_obj_class.h may be used here without the OC_ prefix.

Definition at line 54 of file RNTupleWriteOptionsDaos.hxx.

Member Data Documentation

◆ fMaxCageSize

uint32_t ROOT::Experimental::RNTupleWriteOptionsDaos::fMaxCageSize = 16 * RNTupleWriteOptions::fApproxUnzippedPageSize

The maximum cage size is set to the equivalent of 16 uncompressed pages - 1MiB by default.

Empirically, such a cage size yields acceptable results in throughput and page granularity for most use cases. A fMaxCageSize of 0 disables the caging mechanism.

Definition at line 41 of file RNTupleWriteOptionsDaos.hxx.

◆ fObjectClass

std::string ROOT::Experimental::RNTupleWriteOptionsDaos::fObjectClass {"SX"}

Definition at line 37 of file RNTupleWriteOptionsDaos.hxx.

Libraries for ROOT::Experimental::RNTupleWriteOptionsDaos:

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