MySQL 5.6.14 Source Code Document
|
#include <buf0buf.h>
Public Attributes | |
Optimistic search field | |
ib_uint64_t | modify_clock |
Hash search fields (unprotected) | |
NOTE that these fields are NOT protected by any semaphore! | |
ulint | n_hash_helps |
ulint | n_fields |
ulint | n_bytes |
ibool | left_side |
Hash search fields | |
These 5 fields may only be modified when we have an x-latch on btr_search_latch AND
An exception to this is when we init or create a page in the buffer pool in buf0buf.cc. Another exception is that assigning block->index = NULL is allowed whenever holding an x-latch on btr_search_latch. | |
unsigned | curr_n_fields:10 |
unsigned | curr_n_bytes:15 |
unsigned | curr_left_side:1 |
dict_index_t * | index |
General fields | |
buf_page_t | page |
byte * | frame |
ib_mutex_t | mutex |
rw_lock_t | lock |
unsigned | lock_hash_val:32 |
ibool | check_index_page_at_flush |
UT_LIST_NODE_T (buf_block_t) unzip_LRU |
buf_block_t::UT_LIST_NODE_T | ( | buf_block_t | ) |
node of the decompressed LRU list; a block is in the unzip_LRU list if page.state == BUF_BLOCK_FILE_PAGE and page.zip.data != NULL
ibool buf_block_t::check_index_page_at_flush |
TRUE if we know that this is an index page, and want the database to check its consistency before flush; note that there may be pages in the buffer pool which are index pages, but this flag is not set because we do not keep track of all pages; NOT protected by any mutex
unsigned buf_block_t::curr_left_side |
unsigned buf_block_t::curr_n_bytes |
unsigned buf_block_t::curr_n_fields |
byte* buf_block_t::frame |
dict_index_t* buf_block_t::index |
ibool buf_block_t::left_side |
rw_lock_t buf_block_t::lock |
unsigned buf_block_t::lock_hash_val |
hashed value of the page address in the record lock hash table; protected by buf_block_t::lock (or buf_block_t::mutex, buf_pool->mutex in buf_page_get_gen(), buf_page_init_for_read() and buf_page_create())
ib_uint64_t buf_block_t::modify_clock |
this clock is incremented every time a pointer to a record on the page may become obsolete; this is used in the optimistic cursor positioning: if the modify clock has not changed, we know that the pointer is still valid; this field may be changed if the thread (1) owns the pool mutex and the page is not bufferfixed, or (2) the thread has an x-latch on the block
ib_mutex_t buf_block_t::mutex |
ulint buf_block_t::n_bytes |
ulint buf_block_t::n_fields |
ulint buf_block_t::n_hash_helps |
buf_page_t buf_block_t::page |
page information; this must be the first field, so that buf_pool->page_hash can point to buf_page_t or buf_block_t