⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buf0lru.h

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 H
字号:
/******************************************************The database buffer pool LRU replacement algorithm(c) 1995 Innobase OyCreated 11/5/1995 Heikki Tuuri*******************************************************/#ifndef buf0lru_h#define buf0lru_h#include "univ.i"#include "ut0byte.h"#include "buf0types.h"/**********************************************************************Tries to remove LRU flushed blocks from the end of the LRU list and put themto the free list. This is beneficial for the efficiency of the insert bufferoperation, as flushed pages from non-unique non-clustered indexes are heretaken out of the buffer pool, and their inserts redirected to the insertbuffer. Otherwise, the flushed blocks could get modified again before readoperations need new buffer blocks, and the i/o work done in flushing would bewasted. */voidbuf_LRU_try_free_flushed_blocks(void);/*==================================*//**********************************************************************Returns TRUE if less than 25 % of the buffer pool is available. This can beused in heuristics to prevent huge transactions eating up the whole bufferpool for their locks. */iboolbuf_LRU_buf_pool_running_out(void);/*==============================*/				/* out: TRUE if less than 25 % of buffer pool				left *//*#######################################################################These are low-level functions#########################################################################*//* Minimum LRU list length for which the LRU_old pointer is defined */#define BUF_LRU_OLD_MIN_LEN	80#define BUF_LRU_FREE_SEARCH_LEN		(5 + 2 * BUF_READ_AHEAD_AREA)/**********************************************************************Invalidates all pages belonging to a given tablespace when we are deletingthe data file(s) of that tablespace. A PROBLEM: if readahead is being started,what guarantees that it will not try to read in pages after this operation hascompleted? */voidbuf_LRU_invalidate_tablespace(/*==========================*/	ulint	id);	/* in: space id *//**********************************************************************Gets the minimum LRU_position field for the blocks in an initial segment(determined by BUF_LRU_INITIAL_RATIO) of the LRU list. The limit is notguaranteed to be precise, because the ulint_clock may wrap around. */ulintbuf_LRU_get_recent_limit(void);/*==========================*/			/* out: the limit; zero if could not determine it *//**********************************************************************Look for a replaceable block from the end of the LRU list and put it tothe free list if found. */iboolbuf_LRU_search_and_free_block(/*==========================*/				/* out: TRUE if freed */	ulint	n_iterations);   /* in: how many times this has been called				repeatedly without result: a high value means				that we should search farther; if value is				k < 10, then we only search k/10 * number				of pages in the buffer pool from the end				of the LRU list *//**********************************************************************Returns a free block from the buf_pool. The block is taken off thefree list. If it is empty, blocks are moved from the end of theLRU list to the free list. */buf_block_t*buf_LRU_get_free_block(void);/*=========================*/				/* out: the free control block; also if AWE is				used, it is guaranteed that the block has its				page mapped to a frame when we return *//**********************************************************************Puts a block back to the free list. */voidbuf_LRU_block_free_non_file_page(/*=============================*/	buf_block_t*	block);	/* in: block, must not contain a file page *//**********************************************************************Adds a block to the LRU list. */voidbuf_LRU_add_block(/*==============*/	buf_block_t*	block,	/* in: control block */	ibool		old);	/* in: TRUE if should be put to the old				blocks in the LRU list, else put to the				start; if the LRU list is very short, added to				the start regardless of this parameter *//**********************************************************************Moves a block to the start of the LRU list. */voidbuf_LRU_make_block_young(/*=====================*/	buf_block_t*	block);	/* in: control block *//**********************************************************************Moves a block to the end of the LRU list. */voidbuf_LRU_make_block_old(/*===================*/	buf_block_t*	block);	/* in: control block */#ifdef UNIV_DEBUG/**************************************************************************Validates the LRU list. */iboolbuf_LRU_validate(void);/*==================*//**************************************************************************Prints the LRU list. */voidbuf_LRU_print(void);/*===============*/#endif /* UNIV_DEBUG */#ifndef UNIV_NONINL#include "buf0lru.ic"#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -