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 154 of file RCluster.hxx.
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 columnId) const |
const std::unordered_set< DescriptorId_t > & | GetAvailColumns () 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 columnId) |
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 | |
std::unordered_set< DescriptorId_t > | fAvailColumns |
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>
|
inlineexplicit |
Definition at line 166 of file RCluster.hxx.
|
delete |
|
default |
|
default |
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 191 of file RCluster.hxx.
|
inline |
Definition at line 190 of file RCluster.hxx.
|
inline |
Definition at line 189 of file RCluster.hxx.
|
inline |
Definition at line 192 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 | columnId | ) |
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 70 of file RCluster.cxx.
|
protected |
Set of the (complete) columns represented by the RCluster.
Definition at line 161 of file RCluster.hxx.
|
protected |
References the cluster identifier in the page source that created the cluster.
Definition at line 157 of file RCluster.hxx.
|
protected |
Lookup table for the on-disk pages.
Definition at line 163 of file RCluster.hxx.
|
protected |
Multiple page maps can be combined in a single RCluster.
Definition at line 159 of file RCluster.hxx.