MySQL 5.6.14 Source Code Document
|
The buffer pool structure. More...
#include <buf0buf.h>
Public Attributes | |
General fields | |
ib_mutex_t | mutex |
ib_mutex_t | zip_mutex |
ulint | instance_no |
ulint | old_pool_size |
ulint | curr_pool_size |
ulint | LRU_old_ratio |
ulint | n_chunks |
buf_chunk_t * | chunks |
ulint | curr_size |
hash_table_t * | page_hash |
hash_table_t * | zip_hash |
ulint | n_pend_reads |
ulint | n_pend_unzip |
time_t | last_printout_time |
buf_buddy_stat_t | buddy_stat [BUF_BUDDY_SIZES_MAX+1] |
buf_pool_stat_t | stat |
buf_pool_stat_t | old_stat |
Page flushing algorithm fields | |
ib_mutex_t | flush_list_mutex |
const buf_page_t * | flush_list_hp |
ibool | init_flush [BUF_FLUSH_N_TYPES] |
ulint | n_flush [BUF_FLUSH_N_TYPES] |
os_event_t | no_flush [BUF_FLUSH_N_TYPES] |
ib_rbt_t * | flush_rbt |
ulint | freed_page_clock |
ibool | try_LRU_scan |
UT_LIST_BASE_NODE_T (buf_page_t) flush_list |
LRU replacement algorithm fields | |
buf_page_t * | LRU_old |
ulint | LRU_old_len |
UT_LIST_BASE_NODE_T (buf_page_t) free | |
UT_LIST_BASE_NODE_T (buf_page_t) LRU | |
UT_LIST_BASE_NODE_T (buf_block_t) unzip_LRU |
Buddy allocator fields | |
The buddy allocator is used for allocating compressed page frames and buf_page_t descriptors of blocks that exist in the buffer pool only in compressed form. | |
buf_page_t * | watch |
UT_LIST_BASE_NODE_T (buf_buddy_free_t) zip_free[BUF_BUDDY_SIZES_MAX] |
The buffer pool structure.
NOTE! The definition appears here only for other modules of this directory (buf) to see it. Do not use from outside!
buf_pool_t::UT_LIST_BASE_NODE_T | ( | buf_page_t | ) |
base node of the modified block list
buf_pool_t::UT_LIST_BASE_NODE_T | ( | buf_page_t | ) |
base node of the free block list
buf_pool_t::UT_LIST_BASE_NODE_T | ( | buf_page_t | ) |
base node of the LRU list
buf_pool_t::UT_LIST_BASE_NODE_T | ( | buf_block_t | ) |
base node of the unzip_LRU list
buf_pool_t::UT_LIST_BASE_NODE_T | ( | buf_buddy_free_t | ) |
buddy free lists
buf_buddy_stat_t buf_pool_t::buddy_stat[BUF_BUDDY_SIZES_MAX+1] |
ulint buf_pool_t::curr_pool_size |
const buf_page_t* buf_pool_t::flush_list_hp |
ib_mutex_t buf_pool_t::flush_list_mutex |
ib_rbt_t* buf_pool_t::flush_rbt |
a red-black tree is used exclusively during recovery to speed up insertions in the flush_list. This tree contains blocks in order of oldest_modification LSN and is kept in sync with the flush_list. Each member of the tree MUST also be on the flush_list. This tree is relevant only in recovery and is set to NULL once the recovery is over. Protected by flush_list_mutex
ulint buf_pool_t::freed_page_clock |
ibool buf_pool_t::init_flush[BUF_FLUSH_N_TYPES] |
ulint buf_pool_t::instance_no |
time_t buf_pool_t::last_printout_time |
buf_page_t* buf_pool_t::LRU_old |
ulint buf_pool_t::LRU_old_len |
length of the LRU list from the block to which LRU_old points onward, including that block; see buf0lru.cc for the restrictions on this value; 0 if LRU_old == NULL; NOTE: LRU_old_len must be adjusted whenever LRU_old shrinks or grows!
ulint buf_pool_t::LRU_old_ratio |
ib_mutex_t buf_pool_t::mutex |
ulint buf_pool_t::n_flush[BUF_FLUSH_N_TYPES] |
ulint buf_pool_t::n_pend_reads |
ulint buf_pool_t::n_pend_unzip |
os_event_t buf_pool_t::no_flush[BUF_FLUSH_N_TYPES] |
buf_pool_stat_t buf_pool_t::old_stat |
hash_table_t* buf_pool_t::page_hash |
hash table of buf_page_t or buf_block_t file pages, buf_page_in_file() == TRUE, indexed by (space_id, offset). page_hash is protected by an array of mutexes. Changes in page_hash are protected by buf_pool->mutex and the relevant page_hash mutex. Lookups can happen while holding the buf_pool->mutex or the relevant page_hash mutex.
buf_pool_stat_t buf_pool_t::stat |
ibool buf_pool_t::try_LRU_scan |
buf_page_t* buf_pool_t::watch |
hash_table_t* buf_pool_t::zip_hash |
hash table of buf_block_t blocks whose frames are allocated to the zip buddy system, indexed by block->frame
ib_mutex_t buf_pool_t::zip_mutex |
Zip mutex of this buffer pool instance, protects compressed only pages (of type buf_page_t, not buf_block_t