An in-memory subset of the packed and compressed pages of a cluster.
Binds together several page maps that represent all the pages of certain columns of a cluster
Definition at line 155 of file RCluster.hxx.
Classes | |
struct | RKey |
The identifiers that specifies the content of a (partial) cluster. More... | |
Public Types | |
using | ColumnSet_t = std::unordered_set< DescriptorId_t > |
Public Member Functions | |
RCluster (const RCluster &other)=delete | |
RCluster (DescriptorId_t clusterId) | |
RCluster (RCluster &&other)=default | |
~RCluster ()=default | |
void | Adopt (RCluster &&other) |
Move the contents of other into this cluster; for on-disk pages that are present in both the cluster at hand and the "other" cluster, GetOnDiskPage() may return the page from either of the memory regions (left to the implementation). | |
void | Adopt (std::unique_ptr< ROnDiskPageMap > pageMap) |
Move the given page map into this cluster; for on-disk pages that are present in both the cluster at hand and pageMap, GetOnDiskPage() may return the page from either of the memory regions (left to the implementation). | |
bool | ContainsColumn (DescriptorId_t colId) const |
const ColumnSet_t & | GetAvailPhysicalColumns () const |
DescriptorId_t | GetId () const |
size_t | GetNOnDiskPages () const |
const ROnDiskPage * | GetOnDiskPage (const ROnDiskPage::Key &key) const |
RCluster & | operator= (const RCluster &other)=delete |
RCluster & | operator= (RCluster &&other)=default |
void | SetColumnAvailable (DescriptorId_t physicalColumnId) |
Marks the column as complete; must be done for all columns, even empty ones without associated pages, before the cluster is given from the page storage to the cluster pool. | |
Protected Attributes | |
ColumnSet_t | fAvailPhysicalColumns |
Set of the (complete) columns represented by the RCluster. | |
DescriptorId_t | fClusterId |
References the cluster identifier in the page source that created the cluster. | |
std::unordered_map< ROnDiskPage::Key, ROnDiskPage > | fOnDiskPages |
Lookup table for the on-disk pages. | |
std::vector< std::unique_ptr< ROnDiskPageMap > > | fPageMaps |
Multiple page maps can be combined in a single RCluster. | |
#include <ROOT/RCluster.hxx>
using ROOT::Experimental::Detail::RCluster::ColumnSet_t = std::unordered_set<DescriptorId_t> |
Definition at line 157 of file RCluster.hxx.
|
inlineexplicit |
Definition at line 175 of file RCluster.hxx.
|
delete |
|
default |
|
default |
void ROOT::Experimental::Detail::RCluster::Adopt | ( | RCluster && | other | ) |
Move the contents of other into this cluster; for on-disk pages that are present in both the cluster at hand and the "other" cluster, GetOnDiskPage() may return the page from either of the memory regions (left to the implementation).
Definition at line 54 of file RCluster.cxx.
void ROOT::Experimental::Detail::RCluster::Adopt | ( | std::unique_ptr< ROnDiskPageMap > | pageMap | ) |
Move the given page map into this cluster; for on-disk pages that are present in both the cluster at hand and pageMap, GetOnDiskPage() may return the page from either of the memory regions (left to the implementation).
Their content is supposed to be the same. Page maps cannot be physically merged them because they have potentially used different allocation mechanisms (e.g. mmap vs. malloc).
Definition at line 45 of file RCluster.cxx.
|
inline |
Definition at line 200 of file RCluster.hxx.
|
inline |
Definition at line 199 of file RCluster.hxx.
|
inline |
Definition at line 198 of file RCluster.hxx.
|
inline |
Definition at line 201 of file RCluster.hxx.
const ROOT::Experimental::Detail::ROnDiskPage * ROOT::Experimental::Detail::RCluster::GetOnDiskPage | ( | const ROnDiskPage::Key & | key | ) | const |
Definition at line 37 of file RCluster.cxx.
void ROOT::Experimental::Detail::RCluster::SetColumnAvailable | ( | DescriptorId_t | physicalColumnId | ) |
Marks the column as complete; must be done for all columns, even empty ones without associated pages, before the cluster is given from the page storage to the cluster pool.
Marking the available columns is typically the last step of RPageSouce::LoadCluster().
Definition at line 69 of file RCluster.cxx.
|
protected |
Set of the (complete) columns represented by the RCluster.
Definition at line 170 of file RCluster.hxx.
|
protected |
References the cluster identifier in the page source that created the cluster.
Definition at line 166 of file RCluster.hxx.
|
protected |
Lookup table for the on-disk pages.
Definition at line 172 of file RCluster.hxx.
|
protected |
Multiple page maps can be combined in a single RCluster.
Definition at line 168 of file RCluster.hxx.