MySQL 8.4.2
Source Code Documentation
|
Context information for each level. More...
#include <btr0mtib.h>
Public Member Functions | |
Level_ctx (dict_index_t *index, size_t level, Btree_load *btree_load) | |
Constructor. More... | |
~Level_ctx () | |
Destructor. More... | |
dberr_t | init () |
Initialize. More... | |
bool | is_leaf () const |
Check if this is leaf level. More... | |
Page_load * | create_page_load () |
void | free_page_load () |
Free the current page load. More... | |
dberr_t | alloc_page_num (page_no_t &page_no) |
Allocate a page number. More... | |
dberr_t | alloc_extent () |
Allocate one extent in the relevant file segment. More... | |
buf_block_t * | alloc (const page_no_t new_page_no) noexcept |
Allocate private memory buffer (BUF_BLOCK_MEMORY) block for given page number. More... | |
void | set_current_page_load (Page_load *sibling) |
Page_load * | get_page_load () const |
trx_id_t | get_trx_id () const |
void | build_extent_cache () |
Build the extent cache. More... | |
bool | load_extent_from_cache () |
Load one extent from extent cache. More... | |
void | build_page_cache () |
Build page loader cache for current exent. More... | |
Page_load * | get_page_load_from_cache () |
Get a free page loader from cache. More... | |
bool | is_page_tracked (const page_no_t &page_no) const |
Static Public Member Functions | |
static Level_ctx * | create (dict_index_t *index, size_t level, Btree_load *btree_load) |
Static member function construct a Level_ctx object. More... | |
static void | destroy (Level_ctx *obj) |
Static member function to destroy a Level_ctx object. More... | |
Public Attributes | |
Page_extent * | m_page_extent {} |
The current extent that is being loaded. More... | |
std::vector< Page_extent * > | m_cached_extents |
Pre allocated extents to prevent repeated allocation and free. More... | |
page_no_t | m_first_page {FIL_NULL} |
The page_no of the first page in this level. More... | |
page_no_t | m_last_page {FIL_NULL} |
The page_no of the last page in this level. More... | |
dict_index_t * | m_index {} |
The index which is being built. More... | |
const size_t | m_level {} |
The B-tree level whose context information is stored in this obj. More... | |
Page_load * | m_page_load {} |
The Page_load of the current page being loaded. More... | |
Btree_load * | m_btree_load |
A back pointer to conceptually higher level btree load object. More... | |
size_t | m_stat_n_pages {} |
Number of pages allocated at this level. More... | |
size_t | m_stat_n_extents {} |
Number of extents allocated at this level. More... | |
bool | m_extent_full {true} |
True if the current extent is full. More... | |
std::vector< page_no_t > | m_pages_allocated |
Context information for each level.
|
inline |
Constructor.
[in] | index | dictionary index object. |
[in] | level | the B-tree level of this context object. |
[in] | btree_load | a back pointer to the Btree_load object to which this Level_ctx object is a part of. |
Btree_multi::Level_ctx::~Level_ctx | ( | ) |
Destructor.
|
noexcept |
Allocate private memory buffer (BUF_BLOCK_MEMORY) block for given page number.
dberr_t Btree_multi::Level_ctx::alloc_extent | ( | ) |
Allocate one extent in the relevant file segment.
No associated buffer blocks are allocated.
Allocate a page number.
Subsequently a Page_load will be created with the allocated page number.
[out] | page_no | page number that was allocated. |
void Btree_multi::Level_ctx::build_extent_cache | ( | ) |
Build the extent cache.
void Btree_multi::Level_ctx::build_page_cache | ( | ) |
Build page loader cache for current exent.
|
static |
Static member function construct a Level_ctx object.
[in] | index | dictionary index object. |
[in] | level | the B-tree level of this context object. |
[in] | btree_load | a back pointer to the Btree_load object to which this Level_ctx object is a part of. |
Page_load * Btree_multi::Level_ctx::create_page_load | ( | ) |
|
static |
Static member function to destroy a Level_ctx object.
[in] | obj | the Level_ctx object to destroy. |
void Btree_multi::Level_ctx::free_page_load | ( | ) |
Free the current page load.
|
inline |
Page_load * Btree_multi::Level_ctx::get_page_load_from_cache | ( | ) |
Get a free page loader from cache.
|
inline |
dberr_t Btree_multi::Level_ctx::init | ( | void | ) |
Initialize.
|
inline |
Check if this is leaf level.
bool Btree_multi::Level_ctx::is_page_tracked | ( | const page_no_t & | page_no | ) | const |
bool Btree_multi::Level_ctx::load_extent_from_cache | ( | ) |
Load one extent from extent cache.
|
inline |
Btree_load* Btree_multi::Level_ctx::m_btree_load |
A back pointer to conceptually higher level btree load object.
std::vector<Page_extent *> Btree_multi::Level_ctx::m_cached_extents |
Pre allocated extents to prevent repeated allocation and free.
bool Btree_multi::Level_ctx::m_extent_full {true} |
True if the current extent is full.
The page_no of the first page in this level.
dict_index_t* Btree_multi::Level_ctx::m_index {} |
The index which is being built.
The page_no of the last page in this level.
const size_t Btree_multi::Level_ctx::m_level {} |
The B-tree level whose context information is stored in this obj.
Page_extent* Btree_multi::Level_ctx::m_page_extent {} |
The current extent that is being loaded.
Page_load* Btree_multi::Level_ctx::m_page_load {} |
The Page_load of the current page being loaded.
std::vector<page_no_t> Btree_multi::Level_ctx::m_pages_allocated |
size_t Btree_multi::Level_ctx::m_stat_n_extents {} |
Number of extents allocated at this level.
size_t Btree_multi::Level_ctx::m_stat_n_pages {} |
Number of pages allocated at this level.