summaryrefslogtreecommitdiff
path: root/storage/innobase/include/trx0purge.h
diff options
context:
space:
mode:
authorGuilhem Bichot <guilhem@mysql.com>2009-08-04 13:25:19 +0200
committerGuilhem Bichot <guilhem@mysql.com>2009-08-04 13:25:19 +0200
commitb57e4dbd88671df86e2cf39aff5178976d710b64 (patch)
tree32be2bfec3ca062c65566c60ecf59b673d1f97e9 /storage/innobase/include/trx0purge.h
parent1a0c2153a036296785dcdfa7b5f4974515616e11 (diff)
parent94efc1c6b084ed531b513e70fb66e7b7a1186b56 (diff)
downloadmariadb-git-b57e4dbd88671df86e2cf39aff5178976d710b64.tar.gz
Creation of mysql-trunk = {summit + "Innodb plugin replacing the builtin"}:
bzr branch mysql-5.1-performance-version mysql-trunk # Summit cd mysql-trunk bzr merge mysql-5.1-innodb_plugin # which is 5.1 + Innodb plugin bzr rm innobase # remove the builtin Next step: build, test fixes.
Diffstat (limited to 'storage/innobase/include/trx0purge.h')
-rw-r--r--storage/innobase/include/trx0purge.h169
1 files changed, 0 insertions, 169 deletions
diff --git a/storage/innobase/include/trx0purge.h b/storage/innobase/include/trx0purge.h
deleted file mode 100644
index c4aab91a93a..00000000000
--- a/storage/innobase/include/trx0purge.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/******************************************************
-Purge old versions
-
-(c) 1996 Innobase Oy
-
-Created 3/26/1996 Heikki Tuuri
-*******************************************************/
-
-#ifndef trx0purge_h
-#define trx0purge_h
-
-#include "univ.i"
-#include "trx0types.h"
-#include "mtr0mtr.h"
-#include "trx0sys.h"
-#include "que0types.h"
-#include "page0page.h"
-#include "usr0sess.h"
-#include "fil0fil.h"
-
-/* The global data structure coordinating a purge */
-extern trx_purge_t* purge_sys;
-
-/* A dummy undo record used as a return value when we have a whole undo log
-which needs no purge */
-extern trx_undo_rec_t trx_purge_dummy_rec;
-
-/************************************************************************
-Calculates the file address of an undo log header when we have the file
-address of its history list node. */
-UNIV_INLINE
-fil_addr_t
-trx_purge_get_log_from_hist(
-/*========================*/
- /* out: file address of the log */
- fil_addr_t node_addr); /* in: file address of the history
- list node of the log */
-/*********************************************************************
-Checks if trx_id is >= purge_view: then it is guaranteed that its update
-undo log still exists in the system. */
-
-ibool
-trx_purge_update_undo_must_exist(
-/*=============================*/
- /* out: TRUE if is sure that it is preserved, also
- if the function returns FALSE, it is possible that
- the undo log still exists in the system */
- dulint trx_id);/* in: transaction id */
-/************************************************************************
-Creates the global purge system control structure and inits the history
-mutex. */
-
-void
-trx_purge_sys_create(void);
-/*======================*/
-/************************************************************************
-Adds the update undo log as the first log in the history list. Removes the
-update undo log segment from the rseg slot if it is too big for reuse. */
-
-void
-trx_purge_add_update_undo_to_history(
-/*=================================*/
- trx_t* trx, /* in: transaction */
- page_t* undo_page, /* in: update undo log header page,
- x-latched */
- mtr_t* mtr); /* in: mtr */
-/************************************************************************
-Fetches the next undo log record from the history list to purge. It must be
-released with the corresponding release function. */
-
-trx_undo_rec_t*
-trx_purge_fetch_next_rec(
-/*=====================*/
- /* out: copy of an undo log record, or
- pointer to the dummy undo log record
- &trx_purge_dummy_rec if the whole undo log
- can skipped in purge; NULL if none left */
- dulint* roll_ptr,/* out: roll pointer to undo record */
- trx_undo_inf_t** cell, /* out: storage cell for the record in the
- purge array */
- mem_heap_t* heap); /* in: memory heap where copied */
-/***********************************************************************
-Releases a reserved purge undo record. */
-
-void
-trx_purge_rec_release(
-/*==================*/
- trx_undo_inf_t* cell); /* in: storage cell */
-/***********************************************************************
-This function runs a purge batch. */
-
-ulint
-trx_purge(void);
-/*===========*/
- /* out: number of undo log pages handled in
- the batch */
-/**********************************************************************
-Prints information of the purge system to stderr. */
-
-void
-trx_purge_sys_print(void);
-/*======================*/
-
-/* The control structure used in the purge operation */
-struct trx_purge_struct{
- ulint state; /* Purge system state */
- sess_t* sess; /* System session running the purge
- query */
- trx_t* trx; /* System transaction running the purge
- query: this trx is not in the trx list
- of the trx system and it never ends */
- que_t* query; /* The query graph which will do the
- parallelized purge operation */
- rw_lock_t latch; /* The latch protecting the purge view.
- A purge operation must acquire an
- x-latch here for the instant at which
- it changes the purge view: an undo
- log operation can prevent this by
- obtaining an s-latch here. */
- read_view_t* view; /* The purge will not remove undo logs
- which are >= this view (purge view) */
- mutex_t mutex; /* Mutex protecting the fields below */
- ulint n_pages_handled;/* Approximate number of undo log
- pages processed in purge */
- ulint handle_limit; /* Target of how many pages to get
- processed in the current purge */
- /*------------------------------*/
- /* The following two fields form the 'purge pointer' which advances
- during a purge, and which is used in history list truncation */
-
- dulint purge_trx_no; /* Purge has advanced past all
- transactions whose number is less
- than this */
- dulint purge_undo_no; /* Purge has advanced past all records
- whose undo number is less than this */
- /*-----------------------------*/
- ibool next_stored; /* TRUE if the info of the next record
- to purge is stored below: if yes, then
- the transaction number and the undo
- number of the record are stored in
- purge_trx_no and purge_undo_no above */
- trx_rseg_t* rseg; /* Rollback segment for the next undo
- record to purge */
- ulint page_no; /* Page number for the next undo
- record to purge, page number of the
- log header, if dummy record */
- ulint offset; /* Page offset for the next undo
- record to purge, 0 if the dummy
- record */
- ulint hdr_page_no; /* Header page of the undo log where
- the next record to purge belongs */
- ulint hdr_offset; /* Header byte offset on the page */
- /*-----------------------------*/
- trx_undo_arr_t* arr; /* Array of transaction numbers and
- undo numbers of the undo records
- currently under processing in purge */
- mem_heap_t* heap; /* Temporary storage used during a
- purge: can be emptied after purge
- completes */
-};
-
-#define TRX_PURGE_ON 1 /* purge operation is running */
-#define TRX_STOP_PURGE 2 /* purge operation is stopped, or
- it should be stopped */
-#ifndef UNIV_NONINL
-#include "trx0purge.ic"
-#endif
-
-#endif