| InnoDB Plugin
    1.0
    | 
The buffer pool structure. More...
#include <buf0buf.h>

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!
| ulint buf_pool_t::buddy_n_frames | 
Number of frames allocated from the buffer pool to the buddy system
| buf_buddy_stat_t buf_pool_t::buddy_stat[BUF_BUDDY_SIZES_MAX+1] | 
Statistics of buddy system, indexed by block size
| buf_chunk_t* buf_pool_t::chunks | 
buffer pool chunks
| ulint buf_pool_t::curr_pool_size | 
Current pool size in bytes
| ulint buf_pool_t::curr_size | 
current pool size in pages
| ut_list_base< buf_page_t > buf_pool_t::flush_list | 
base node of the modified block list
| const buf_page_t* buf_pool_t::flush_list_hp | 
"hazard pointer" used during scan of flush_list while doing flush list batch. Protected by flush_list_mutex
| ib_mutex_t buf_pool_t::flush_list_mutex | 
mutex protecting the flush list access. This mutex protects flush_list, flush_rbt and bpage::list pointers when the bpage is on flush_list. It also protects writes to bpage::oldest_modification and flush_list_hp
| 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
| ut_list_base< buf_page_t > buf_pool_t::free | 
base node of the free block list
| ulint buf_pool_t::freed_page_clock | 
a sequence number used to count the number of buffer blocks removed from the end of the LRU list; NOTE that this counter may wrap around at 4 billion! A thread is allowed to read this for heuristic purposes without holding any mutex or latch
| ibool buf_pool_t::init_flush[BUF_FLUSH_N_TYPES] | 
this is TRUE when a flush of the given type is being initialized
| ulint buf_pool_t::instance_no | 
Array index of this buffer pool instance
| time_t buf_pool_t::last_printout_time | 
when buf_print_io was last time called
| ut_list_base< buf_page_t > buf_pool_t::LRU | 
base node of the LRU list
| buf_page_t* buf_pool_t::LRU_old | 
pointer to the about LRU_old_ratio/BUF_LRU_OLD_RATIO_DIV oldest blocks in the LRU list; NULL if LRU length less than BUF_LRU_OLD_MIN_LEN; NOTE: when LRU_old != NULL, its length should always equal LRU_old_len
| 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 | 
Reserve this much of the buffer pool for "old" blocks
| ib_mutex_t buf_pool_t::mutex | 
Buffer pool mutex of this instance
| ulint buf_pool_t::mutex_exit_forbidden | 
Forbid release mutex
| ulint buf_pool_t::n_chunks | 
number of buffer pool chunks
| ulint buf_pool_t::n_flush[BUF_FLUSH_N_TYPES] | 
this is the number of pending writes in the given flush type
| ulint buf_pool_t::n_pend_reads | 
number of pending read operations
| ulint buf_pool_t::n_pend_unzip | 
number of pending decompressions
| os_event_t buf_pool_t::no_flush[BUF_FLUSH_N_TYPES] | 
this is in the set state when there is no flush batch of the given type running
| ulint buf_pool_t::old_pool_size | 
Old pool size in bytes
| buf_pool_stat_t buf_pool_t::old_stat | 
old statistics
| 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 | 
current statistics
| ibool buf_pool_t::try_LRU_scan | 
Set to FALSE when an LRU scan for free block fails. This flag is used to avoid repeated scans of LRU list when we know that there is no free block available in the scan depth for eviction. Set to TRUE whenever we flush a batch from the buffer pool. Protected by the buf_pool->mutex
| ut_list_base< buf_block_t > buf_pool_t::unzip_LRU | 
base node of the unzip_LRU list
| buf_page_t* buf_pool_t::watch | 
Sentinel records for buffer pool watches. Protected by buf_pool->mutex.
| ut_list_base< buf_page_t > buf_pool_t::zip_clean | 
unmodified compressed pages
| ut_list_base< buf_buddy_free_t > buf_pool_t::zip_free[BUF_BUDDY_SIZES_MAX] | 
buddy free lists
| 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
 1.8.1.2
 1.8.1.2