|
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