Logo ROOT  
Reference Guide
 
Loading...
Searching...
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 GetApproxZippedClusterSize () const
 
int GetCompression () const
 
bool GetEnablePageChecksums () const
 
std::size_t GetInitialNElementsPerPage () const
 
std::uint64_t GetMaxKeySize () const
 
std::size_t GetMaxUnzippedClusterSize () const
 
std::size_t GetMaxUnzippedPageSize () const
 
std::size_t GetPageBufferBudget () const
 
bool GetUseBufferedWrite () const
 
bool GetUseDirectIO () const
 
EImplicitMT GetUseImplicitMT () const
 
std::size_t GetWriteBufferSize () const
 
void SetApproxZippedClusterSize (std::size_t val)
 
void SetCompression (int val)
 
void SetCompression (RCompressionSetting::EAlgorithm::EValues algorithm, int compressionLevel)
 
void SetEnablePageChecksums (bool val)
 Note that turning off page checksums will also turn off the same page merging optimization (see tuning.md)
 
void SetInitialNElementsPerPage (std::size_t val)
 
void SetMaxUnzippedClusterSize (std::size_t val)
 
void SetMaxUnzippedPageSize (std::size_t val)
 
void SetPageBufferBudget (std::size_t val)
 
void SetUseBufferedWrite (bool val)
 
void SetUseDirectIO (bool val)
 
void SetUseImplicitMT (EImplicitMT val)
 
void SetWriteBufferSize (std::size_t val)
 

Private Attributes

uint32_t fMaxCageSize = 16 * RNTupleWriteOptions::fMaxUnzippedPageSize
 The maximum cage size is set to the equivalent of 16 uncompressed pages - 16MiB 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 kDefaultMaxKeySize = 0x4000'0000
 
- Protected Attributes inherited from ROOT::Experimental::RNTupleWriteOptions
std::size_t fApproxZippedClusterSize = 100 * 1000 * 1000
 Approximation of the target compressed cluster size.
 
int fCompression {RCompressionSetting::EDefaults::kUseGeneralPurpose}
 
bool fEnablePageChecksums = true
 If set, checksums will be calculated and written for every page.
 
std::size_t fInitialNElementsPerPage = 64
 Initially, columns start with a page large enough to hold the given number of elements.
 
std::uint64_t fMaxKeySize = kDefaultMaxKeySize
 Specifies the max size of a payload storeable into a single TKey.
 
std::size_t fMaxUnzippedClusterSize = 1024 * 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.
 
std::size_t fMaxUnzippedPageSize = 1024 * 1024
 Pages can grow only to the given limit in bytes.
 
std::size_t fPageBufferBudget = 0
 The maximum size that the sum of all page buffers used for writing into a persistent sink are allowed to use.
 
bool fUseBufferedWrite = true
 Whether to use buffered writing (with RPageSinkBuf).
 
bool fUseDirectIO = false
 Whether to use Direct I/O for writing.
 
EImplicitMT fUseImplicitMT = EImplicitMT::kDefault
 Whether to use implicit multi-threading to compress pages. Only has an effect if buffered writing is turned on.
 
std::size_t fWriteBufferSize = 4 * 1024 * 1024
 Buffer size to use for writing to files, must be a multiple of 4096 bytes.
 

#include <ROOT/RNTupleWriteOptionsDaos.hxx>

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

Constructor & Destructor Documentation

◆ ~RNTupleWriteOptionsDaos()

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

Member Function Documentation

◆ Clone()

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

Reimplemented from ROOT::Experimental::RNTupleWriteOptions.

Definition at line 44 of file RNTupleWriteOptionsDaos.hxx.

◆ GetMaxCageSize()

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

Definition at line 55 of file RNTupleWriteOptionsDaos.hxx.

◆ GetObjectClass()

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

Definition at line 49 of file RNTupleWriteOptionsDaos.hxx.

◆ SetMaxCageSize()

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

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 59 of file RNTupleWriteOptionsDaos.hxx.

◆ SetObjectClass()

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

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 53 of file RNTupleWriteOptionsDaos.hxx.

Member Data Documentation

◆ fMaxCageSize

uint32_t ROOT::Experimental::RNTupleWriteOptionsDaos::fMaxCageSize = 16 * RNTupleWriteOptions::fMaxUnzippedPageSize
private

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

A fMaxCageSize of 0 disables the caging mechanism.

Definition at line 40 of file RNTupleWriteOptionsDaos.hxx.

◆ fObjectClass

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

Definition at line 37 of file RNTupleWriteOptionsDaos.hxx.

Libraries for ROOT::Experimental::RNTupleWriteOptionsDaos:

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