|
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