30 #include <sys/types.h>
75 #define BUF_LRU_OLD_MIN_LEN 512
78 #define BUF_LRU_FREE_SEARCH_LEN(b) (5 + 2 * BUF_READ_AHEAD_AREA(b))
118 __attribute__((nonnull));
156 __attribute__((nonnull,warn_unused_result));
233 #if defined UNIV_DEBUG || defined UNIV_BUF_DEBUG
239 buf_LRU_validate(
void);
242 #if defined UNIV_DEBUG_PRINT || defined UNIV_DEBUG || defined UNIV_BUF_DEBUG
256 #define BUF_LRU_OLD_RATIO_DIV 1024
260 #define BUF_LRU_OLD_RATIO_MAX BUF_LRU_OLD_RATIO_DIV
266 #define BUF_LRU_OLD_RATIO_MIN 51
268 #if BUF_LRU_OLD_RATIO_MIN >= BUF_LRU_OLD_RATIO_MAX
269 # error "BUF_LRU_OLD_RATIO_MIN >= BUF_LRU_OLD_RATIO_MAX"
271 #if BUF_LRU_OLD_RATIO_MAX > BUF_LRU_OLD_RATIO_DIV
272 # error "BUF_LRU_OLD_RATIO_MAX > BUF_LRU_OLD_RATIO_DIV"
304 #define buf_LRU_stat_inc_io() buf_LRU_stat_cur.io++
307 #define buf_LRU_stat_inc_unzip() buf_LRU_stat_cur.unzip++
310 #include "buf0lru.ic"
UNIV_INTERN bool buf_LRU_file_restore(void)
UNIV_INTERN void buf_LRU_make_block_young(buf_page_t *bpage)
buf_lru_free_block_status
uint buf_LRU_old_threshold_ms
UNIV_INTERN void buf_LRU_block_free_non_file_page(buf_block_t *block)
UNIV_INTERN ibool buf_LRU_search_and_free_block(buf_pool_t *buf_pool, ulint n_iterations)
buf_LRU_stat_t buf_LRU_stat_sum
The buffer pool structure.
UNIV_INTERN enum buf_lru_free_block_status buf_LRU_free_block(buf_page_t *bpage, ibool zip) __attribute__((nonnull))
UNIV_INTERN void buf_LRU_make_block_old(buf_page_t *bpage)
UNIV_INTERN void buf_unzip_LRU_add_block(buf_block_t *block, ibool old)
buf_LRU_stat_t buf_LRU_stat_cur
UNIV_INTERN void buf_LRU_try_free_flushed_blocks(buf_pool_t *buf_pool)
UNIV_INTERN void buf_LRU_add_block(buf_page_t *bpage, ibool old)
UNIV_INTERN bool buf_LRU_file_dump(void)
UNIV_INTERN buf_block_t * buf_LRU_get_free_only(buf_pool_t *buf_pool)
UNIV_INTERN void buf_LRU_invalidate_tablespace(ulint id)
UNIV_INTERN ibool buf_LRU_buf_pool_running_out(void)
UNIV_INTERN ulint buf_LRU_old_ratio_update(uint old_pct, ibool adjust)
Statistics for selecting the LRU list for eviction.
UNIV_INTERN void buf_LRU_insert_zip_clean(buf_page_t *bpage)
UNIV_INTERN void buf_LRU_stat_update(void)
UNIV_INTERN buf_block_t * buf_LRU_get_free_block(buf_pool_t *buf_pool) __attribute__((nonnull