16#ifndef ROOT7_RNTupleWriteOptions
17#define ROOT7_RNTupleWriteOptions
26namespace Experimental {
28class RNTupleWriteOptions;
103 virtual std::unique_ptr<RNTupleWriteOptions>
Clone()
const;
static void SetMaxKeySize(RNTupleWriteOptions &options, std::uint64_t maxKeySize)
Common user-tunable settings for storing ntuples.
std::size_t GetWriteBufferSize() const
int GetCompression() const
void SetInitialNElementsPerPage(std::size_t val)
std::size_t fPageBufferBudget
The maximum size that the sum of all page buffers used for writing into a persistent sink are allowed...
std::size_t fInitialNElementsPerPage
Initially, columns start with a page large enough to hold the given number of elements.
void SetCompression(int val)
bool GetUseDirectIO() const
void SetPageBufferBudget(std::size_t val)
std::size_t GetPageBufferBudget() const
std::size_t GetApproxZippedClusterSize() const
std::uint64_t fMaxKeySize
Specifies the max size of a payload storeable into a single TKey.
std::size_t GetInitialNElementsPerPage() const
bool GetUseBufferedWrite() const
std::size_t fWriteBufferSize
Buffer size to use for writing to files, must be a multiple of 4096 bytes.
bool fEnablePageChecksums
If set, checksums will be calculated and written for every page.
bool fUseDirectIO
Whether to use Direct I/O for writing.
void SetApproxZippedClusterSize(std::size_t val)
void SetMaxUnzippedPageSize(std::size_t val)
bool GetEnablePageChecksums() const
virtual std::unique_ptr< RNTupleWriteOptions > Clone() const
std::size_t GetMaxUnzippedPageSize() const
std::size_t fMaxUnzippedPageSize
Pages can grow only to the given limit in bytes.
std::size_t GetMaxUnzippedClusterSize() const
std::size_t fApproxZippedClusterSize
Approximation of the target compressed cluster size.
std::size_t fMaxUnzippedClusterSize
Memory limit for committing a cluster: with very high compression ratio, we need a limit on how large...
bool fUseBufferedWrite
Whether to use buffered writing (with RPageSinkBuf).
void SetCompression(RCompressionSetting::EAlgorithm::EValues algorithm, int compressionLevel)
void SetUseImplicitMT(EImplicitMT val)
EImplicitMT GetUseImplicitMT() const
EImplicitMT fUseImplicitMT
Whether to use implicit multi-threading to compress pages. Only has an effect if buffered writing is ...
std::uint64_t GetMaxKeySize() const
void SetUseDirectIO(bool val)
void SetEnablePageChecksums(bool val)
Note that turning off page checksums will also turn off the same page merging optimization (see tunin...
void SetUseBufferedWrite(bool val)
static constexpr std::uint64_t kDefaultMaxKeySize
void SetWriteBufferSize(std::size_t val)
virtual ~RNTupleWriteOptions()=default
void SetMaxUnzippedClusterSize(std::size_t val)
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
int CompressionSettings(RCompressionSetting::EAlgorithm::EValues algorithm, int compressionLevel)
EValues
Note: this is only temporarily a struct and will become a enum class hence the name convention used.
@ kUseGeneralPurpose
Use the new recommended general-purpose setting; it is a best trade-off between compression ratio/dec...