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

📄 trx0rseg.h

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 H
字号:
/******************************************************Rollback segment(c) 1996 Innobase OyCreated 3/26/1996 Heikki Tuuri*******************************************************/#ifndef trx0rseg_h#define trx0rseg_h#include "univ.i"#include "trx0types.h"#include "trx0sys.h"/**********************************************************************Gets a rollback segment header. */UNIV_INLINEtrx_rsegf_t*trx_rsegf_get(/*==========*/				/* out: rollback segment header, page				x-latched */	ulint	space,		/* in: space where placed */	ulint	page_no,	/* in: page number of the header */	mtr_t*	mtr);		/* in: mtr *//**********************************************************************Gets a newly created rollback segment header. */UNIV_INLINEtrx_rsegf_t*trx_rsegf_get_new(/*==============*/				/* out: rollback segment header, page				x-latched */	ulint	space,		/* in: space where placed */	ulint	page_no,	/* in: page number of the header */	mtr_t*	mtr);		/* in: mtr *//*******************************************************************Gets the file page number of the nth undo log slot. */UNIV_INLINEulinttrx_rsegf_get_nth_undo(/*===================*/				/* out: page number of the undo log segment */	trx_rsegf_t*	rsegf,	/* in: rollback segment header */	ulint		n,	/* in: index of slot */	mtr_t*		mtr);	/* in: mtr *//*******************************************************************Sets the file page number of the nth undo log slot. */UNIV_INLINEvoidtrx_rsegf_set_nth_undo(/*===================*/	trx_rsegf_t*	rsegf,	/* in: rollback segment header */	ulint		n,	/* in: index of slot */	ulint		page_no,/* in: page number of the undo log segment */	mtr_t*		mtr);	/* in: mtr *//********************************************************************Looks for a free slot for an undo log segment. */UNIV_INLINEulinttrx_rsegf_undo_find_free(/*=====================*/				/* out: slot index or ULINT_UNDEFINED if not				found */	trx_rsegf_t*	rsegf,	/* in: rollback segment header */	mtr_t*		mtr);	/* in: mtr *//**********************************************************************Looks for a rollback segment, based on the rollback segment id. */trx_rseg_t*trx_rseg_get_on_id(/*===============*/			/* out: rollback segment */	ulint	id);	/* in: rollback segment id *//********************************************************************Creates a rollback segment header. This function is called only whena new rollback segment is created in the database. */ulinttrx_rseg_header_create(/*===================*/				/* out: page number of the created segment,				FIL_NULL if fail */	ulint	space,		/* in: space id */	ulint	max_size,	/* in: max size in pages */	ulint*	slot_no,	/* out: rseg id == slot number in trx sys */	mtr_t*	mtr);		/* in: mtr *//*************************************************************************Creates the memory copies for rollback segments and initializes therseg list and array in trx_sys at a database startup. */voidtrx_rseg_list_and_array_init(/*=========================*/	trx_sysf_t*	sys_header,	/* in: trx system header */	mtr_t*		mtr);		/* in: mtr *//********************************************************************Creates a new rollback segment to the database. */trx_rseg_t*trx_rseg_create(/*============*/				/* out: the created segment object, NULL if				fail */	ulint	space,		/* in: space id */	ulint	max_size,	/* in: max size in pages */	ulint*	id,		/* out: rseg id */	mtr_t*	mtr);		/* in: mtr *//* Number of undo log slots in a rollback segment file copy */#define TRX_RSEG_N_SLOTS	1024/* Maximum number of transactions supported by a single rollback segment */#define TRX_RSEG_MAX_N_TRXS	(TRX_RSEG_N_SLOTS / 2)/* The rollback segment memory object */struct trx_rseg_struct{	/*--------------------------------------------------------*/	ulint		id;	/* rollback segment id == the index of 				its slot in the trx system file copy */	mutex_t		mutex;	/* mutex protecting the fields in this				struct except id; NOTE that the latching				order must always be kernel mutex ->				rseg mutex */	ulint		space;	/* space where the rollback segment is 				header is placed */	ulint		page_no;/* page number of the rollback segment				header */	ulint		max_size;/* maximum allowed size in pages */	ulint		curr_size;/* current size in pages */	/*--------------------------------------------------------*/	/* Fields for update undo logs */	UT_LIST_BASE_NODE_T(trx_undo_t) update_undo_list;					/* List of update undo logs */	UT_LIST_BASE_NODE_T(trx_undo_t) update_undo_cached;					/* List of update undo log segments					cached for fast reuse */	/*--------------------------------------------------------*/	/* Fields for insert undo logs */	UT_LIST_BASE_NODE_T(trx_undo_t) insert_undo_list;					/* List of insert undo logs */	UT_LIST_BASE_NODE_T(trx_undo_t) insert_undo_cached;					/* List of insert undo log segments					cached for fast reuse */	/*--------------------------------------------------------*/	ulint		last_page_no;	/* Page number of the last not yet					purged log header in the history list;					FIL_NULL if all list purged */	ulint		last_offset;	/* Byte offset of the last not yet					purged log header */	dulint		last_trx_no;	/* Transaction number of the last not					yet purged log */	ibool		last_del_marks;	/* TRUE if the last not yet purged log					needs purging */	/*--------------------------------------------------------*/	UT_LIST_NODE_T(trx_rseg_t) rseg_list;					/* the list of the rollback segment					memory objects */};/* Undo log segment slot in a rollback segment header *//*-------------------------------------------------------------*/#define	TRX_RSEG_SLOT_PAGE_NO	0	/* Page number of the header page of					an undo log segment *//*-------------------------------------------------------------*//* Slot size */#define TRX_RSEG_SLOT_SIZE	4/* The offset of the rollback segment header on its page */#define	TRX_RSEG		FSEG_PAGE_DATA/* Transaction rollback segment header *//*-------------------------------------------------------------*/#define	TRX_RSEG_MAX_SIZE	0	/* Maximum allowed size for rollback					segment in pages */#define	TRX_RSEG_HISTORY_SIZE	4	/* Number of file pages occupied					by the logs in the history list */#define	TRX_RSEG_HISTORY	8	/* The update undo logs for committed					transactions */#define	TRX_RSEG_FSEG_HEADER	(8 + FLST_BASE_NODE_SIZE)					/* Header for the file segment where					this page is placed */#define TRX_RSEG_UNDO_SLOTS	(8 + FLST_BASE_NODE_SIZE + FSEG_HEADER_SIZE)					/* Undo log segment slots *//*-------------------------------------------------------------*/#ifndef UNIV_NONINL#include "trx0rseg.ic"#endif#endif 

⌨️ 快捷键说明

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