Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RNTupleWriteOptionsDaos.hxx
Go to the documentation of this file.
1/// \file ROOT/RNTupleWriteOptionsDaos.hxx
2/// \ingroup NTuple ROOT7
3/// \author Jakob Blomer <jblomer@cern.ch>
4/// \date 2024-02-22
5/// \warning This is part of the ROOT 7 prototype! It will change without notice. It might trigger earthquakes. Feedback
6/// is welcome!
7
8/*************************************************************************
9 * Copyright (C) 1995-2019, Rene Brun and Fons Rademakers. *
10 * All rights reserved. *
11 * *
12 * For the licensing terms see $ROOTSYS/LICENSE. *
13 * For the list of contributors see $ROOTSYS/README/CREDITS. *
14 *************************************************************************/
15
16#ifndef ROOT7_RNTupleWriteOptionsDaos
17#define ROOT7_RNTupleWriteOptionsDaos
18
20
21#include <cstdint>
22#include <memory>
23#include <string>
24#include <utility>
25
26namespace ROOT {
27namespace Experimental {
28
29// clang-format off
30/**
31\class ROOT::Experimental::RNTupleWriteOptionsDaos
32\ingroup NTuple
33\brief DAOS-specific user-tunable settings for storing ntuples
34*/
35// clang-format on
37 std::string fObjectClass{"SX"};
38 /// The maximum cage size is set to the equivalent of 16 uncompressed pages - 1MiB by default. Empirically, such a
39 /// cage size yields acceptable results in throughput and page granularity for most use cases. A `fMaxCageSize` of 0
40 /// disables the caging mechanism.
42
43public:
44 ~RNTupleWriteOptionsDaos() override = default;
45 std::unique_ptr<RNTupleWriteOptions> Clone() const override
46 {
47 return std::make_unique<RNTupleWriteOptionsDaos>(*this);
48 }
49
50 const std::string &GetObjectClass() const { return fObjectClass; }
51 /// Set the object class used to generate OIDs that relate to user data. Any
52 /// `OC_xxx` constant defined in `daos_obj_class.h` may be used here without
53 /// the OC_ prefix.
54 void SetObjectClass(const std::string &val) { fObjectClass = val; }
55
56 uint32_t GetMaxCageSize() const { return fMaxCageSize; }
57 /// Set the upper bound for page concatenation into cages, in bytes. It is assumed
58 /// that cage size will be no smaller than the approximate uncompressed page size.
59 /// To disable page concatenation, set this value to 0.
60 void SetMaxCageSize(uint32_t cageSz) { fMaxCageSize = cageSz; }
61};
62
63} // namespace Experimental
64} // namespace ROOT
65
66#endif // ROOT7_RNTupleWriteOptionsDaos
DAOS-specific user-tunable settings for storing ntuples.
void SetObjectClass(const std::string &val)
Set the object class used to generate OIDs that relate to user data.
std::unique_ptr< RNTupleWriteOptions > Clone() const override
void SetMaxCageSize(uint32_t cageSz)
Set the upper bound for page concatenation into cages, in bytes.
uint32_t fMaxCageSize
The maximum cage size is set to the equivalent of 16 uncompressed pages - 1MiB by default.
Common user-tunable settings for storing ntuples.
std::size_t fApproxUnzippedPageSize
Should be just large enough so that the compression ratio does not benefit much more from larger page...
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...