libfoedus-core
FOEDUS Core Library
foedus::storage::array::ArrayStorageControlBlock Struct Referencefinal

Shared data of this storage type. More...

Detailed Description

Shared data of this storage type.

Definition at line 48 of file array_storage_pimpl.hpp.

#include <array_storage_pimpl.hpp>

Collaboration diagram for foedus::storage::array::ArrayStorageControlBlock:

Public Member Functions

 ArrayStorageControlBlock ()=delete
 
 ~ArrayStorageControlBlock ()=delete
 
bool exists () const
 

Public Attributes

soc::SharedMutex status_mutex_
 
StorageStatus status_
 Status of the storage. More...
 
DualPagePointer root_page_pointer_
 Points to the root page (or something equivalent). More...
 
ArrayMetadata meta_
 metadata of this storage. More...
 
uint8_t levels_
 Number of levels. More...
 
LookupRouteFinder route_finder_
 
uint64_t intervals_ [8]
 intervals_[x] is the range of array offset in one page of level-x. More...
 

Constructor & Destructor Documentation

foedus::storage::array::ArrayStorageControlBlock::ArrayStorageControlBlock ( )
delete
foedus::storage::array::ArrayStorageControlBlock::~ArrayStorageControlBlock ( )
delete

Member Function Documentation

bool foedus::storage::array::ArrayStorageControlBlock::exists ( ) const
inline

Definition at line 53 of file array_storage_pimpl.hpp.

References foedus::storage::kExists, foedus::storage::kMarkedForDeath, and status_.

Referenced by foedus::storage::array::ArrayStoragePimpl::exists().

53 { return status_ == kExists || status_ == kMarkedForDeath; }
StorageStatus status_
Status of the storage.
The storage has been marked for drop and can't be used.
Definition: storage_id.hpp:164
The storage has been created and ready for use.
Definition: storage_id.hpp:158

Here is the caller graph for this function:

Member Data Documentation

uint64_t foedus::storage::array::ArrayStorageControlBlock::intervals_[8]

intervals_[x] is the range of array offset in one page of level-x.

For example, [0] is the number of records in leaf (level-0), [1] = [0] * kInteriorFanout, .... When you use this information, be careful on right-most page. If the page is right-most (eg root page), the end should be the array's size, which might be smaller than the range it can physically contain.

Definition at line 78 of file array_storage_pimpl.hpp.

Referenced by foedus::storage::array::ArrayStoragePimpl::load_empty().

uint8_t foedus::storage::array::ArrayStorageControlBlock::levels_
StorageStatus foedus::storage::array::ArrayStorageControlBlock::status_
soc::SharedMutex foedus::storage::array::ArrayStorageControlBlock::status_mutex_

Definition at line 55 of file array_storage_pimpl.hpp.


The documentation for this struct was generated from the following file: