Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
ROOT::Internal::RCluster Class Reference

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 147 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<ROOT::DescriptorId_t>

Public Member Functions

 RCluster (const RCluster &other)=delete
 RCluster (RCluster &&other)=default
 RCluster (ROOT::DescriptorId_t clusterId)
 ~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 (ROOT::DescriptorId_t colId) const
const ColumnSet_tGetAvailPhysicalColumns () const
ROOT::DescriptorId_t GetId () const
size_t GetNOnDiskPages () const
const ROnDiskPageGetOnDiskPage (const ROnDiskPage::Key &key) const
RClusteroperator= (const RCluster &other)=delete
RClusteroperator= (RCluster &&other)=default
void SetColumnAvailable (ROOT::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.
ROOT::DescriptorId_t fClusterId
 References the cluster identifier in the page source that created the cluster.
std::unordered_map< ROnDiskPage::Key, ROnDiskPagefOnDiskPages
 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>

Member Typedef Documentation

◆ ColumnSet_t

Definition at line 149 of file RCluster.hxx.

Constructor & Destructor Documentation

◆ RCluster() [1/3]

ROOT::Internal::RCluster::RCluster ( ROOT::DescriptorId_t clusterId)
inlineexplicit

Definition at line 167 of file RCluster.hxx.

◆ RCluster() [2/3]

ROOT::Internal::RCluster::RCluster ( const RCluster & other)
delete

◆ RCluster() [3/3]

ROOT::Internal::RCluster::RCluster ( RCluster && other)
default

◆ ~RCluster()

ROOT::Internal::RCluster::~RCluster ( )
default

Member Function Documentation

◆ Adopt() [1/2]

void ROOT::Internal::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 46 of file RCluster.cxx.

◆ Adopt() [2/2]

void ROOT::Internal::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 38 of file RCluster.cxx.

◆ ContainsColumn()

bool ROOT::Internal::RCluster::ContainsColumn ( ROOT::DescriptorId_t colId) const
inline

Definition at line 192 of file RCluster.hxx.

◆ GetAvailPhysicalColumns()

const ColumnSet_t & ROOT::Internal::RCluster::GetAvailPhysicalColumns ( ) const
inline

Definition at line 191 of file RCluster.hxx.

◆ GetId()

ROOT::DescriptorId_t ROOT::Internal::RCluster::GetId ( ) const
inline

Definition at line 190 of file RCluster.hxx.

◆ GetNOnDiskPages()

size_t ROOT::Internal::RCluster::GetNOnDiskPages ( ) const
inline

Definition at line 193 of file RCluster.hxx.

◆ GetOnDiskPage()

const ROOT::Internal::ROnDiskPage * ROOT::Internal::RCluster::GetOnDiskPage ( const ROnDiskPage::Key & key) const

Definition at line 30 of file RCluster.cxx.

◆ operator=() [1/2]

RCluster & ROOT::Internal::RCluster::operator= ( const RCluster & other)
delete

◆ operator=() [2/2]

RCluster & ROOT::Internal::RCluster::operator= ( RCluster && other)
default

◆ SetColumnAvailable()

void ROOT::Internal::RCluster::SetColumnAvailable ( ROOT::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 61 of file RCluster.cxx.

Member Data Documentation

◆ fAvailPhysicalColumns

ColumnSet_t ROOT::Internal::RCluster::fAvailPhysicalColumns
protected

Set of the (complete) columns represented by the RCluster.

Definition at line 162 of file RCluster.hxx.

◆ fClusterId

ROOT::DescriptorId_t ROOT::Internal::RCluster::fClusterId
protected

References the cluster identifier in the page source that created the cluster.

Definition at line 158 of file RCluster.hxx.

◆ fOnDiskPages

std::unordered_map<ROnDiskPage::Key, ROnDiskPage> ROOT::Internal::RCluster::fOnDiskPages
protected

Lookup table for the on-disk pages.

Definition at line 164 of file RCluster.hxx.

◆ fPageMaps

std::vector<std::unique_ptr<ROnDiskPageMap> > ROOT::Internal::RCluster::fPageMaps
protected

Multiple page maps can be combined in a single RCluster.

Definition at line 160 of file RCluster.hxx.


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