Drizzled Public API Documentation

trx0purge.h
Go to the documentation of this file.
1 /*****************************************************************************
2 
3 Copyright (C) 1996, 2011, Innobase Oy. All Rights Reserved.
4 
5 This program is free software; you can redistribute it and/or modify it under
6 the terms of the GNU General Public License as published by the Free Software
7 Foundation; version 2 of the License.
8 
9 This program is distributed in the hope that it will be useful, but WITHOUT
10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 
13 You should have received a copy of the GNU General Public License along with
14 this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
15 St, Fifth Floor, Boston, MA 02110-1301 USA
16 
17 *****************************************************************************/
18 
19 /**************************************************/
26 #pragma once
27 #ifndef trx0purge_h
28 #define trx0purge_h
29 
30 #include "univ.i"
31 #include "trx0types.h"
32 #include "mtr0mtr.h"
33 #include "trx0sys.h"
34 #include "que0types.h"
35 #include "page0page.h"
36 #include "usr0sess.h"
37 #include "fil0fil.h"
38 
40 extern trx_purge_t* purge_sys;
41 
45 
46 /********************************************************************/
50 UNIV_INLINE
53 /*========================*/
54  fil_addr_t node_addr);
56 /*****************************************************************/
62 UNIV_INTERN
63 ibool
65 /*=============================*/
66  trx_id_t trx_id);
67 /********************************************************************/
70 UNIV_INTERN
71 void
73 /*=================*/
74  ib_bh_t* ib_bh);
75 /********************************************************************/
77 UNIV_INTERN
78 void
80 /*======================*/
81 /************************************************************************
82 Adds the update undo log as the first log in the history list. Removes the
83 update undo log segment from the rseg slot if it is too big for reuse. */
84 UNIV_INTERN
85 void
87 /*=================================*/
88  trx_t* trx,
89  page_t* undo_page,
91  mtr_t* mtr);
92 /********************************************************************/
97 UNIV_INTERN
100 /*=====================*/
101  roll_ptr_t* roll_ptr,
102  trx_undo_inf_t** cell,
104  mem_heap_t* heap);
105 /*******************************************************************/
107 UNIV_INTERN
108 void
110 /*==================*/
111  trx_undo_inf_t* cell);
112 /*******************************************************************/
115 UNIV_INTERN
116 ulint
117 trx_purge(
118 /*======*/
119  ulint limit);
121 /******************************************************************/
123 UNIV_INTERN
124 void
125 trx_purge_sys_print(void);
126 /*======================*/
127 
130  ulint state;
149  ulint handle_limit;
151  /*------------------------------*/
152  /* The following two fields form the 'purge pointer' which advances
153  during a purge, and which is used in history list truncation */
154 
160  /*-----------------------------*/
161  ibool next_stored;
168  ulint page_no;
171  ulint offset;
174  ulint hdr_page_no;
176  ulint hdr_offset;
177  /*-----------------------------*/
184  /*-----------------------------*/
189 };
190 
191 #define TRX_PURGE_ON 1 /* purge operation is running */
192 #define TRX_STOP_PURGE 2 /* purge operation is stopped, or
193  it should be stopped */
194 #ifndef UNIV_NONINL
195 #include "trx0purge.ic"
196 #endif
197 
198 #endif
byte trx_undo_rec_t
Definition: trx0types.h:112
ib_id_t roll_ptr_t
Definition: trx0types.h:87
undo_no_t purge_undo_no
Definition: trx0purge.h:158
rw_lock_t latch
Definition: trx0purge.h:139
trx_rseg_t * rseg
Definition: trx0purge.h:166
UNIV_INTERN void trx_purge_sys_print(void)
Definition: trx0purge.cc:1213
UNIV_INTERN ulint trx_purge(ulint limit)
Definition: trx0purge.cc:1124
UNIV_INTERN void trx_purge_sys_create(ib_bh_t *ib_bh)
Definition: trx0purge.cc:222
UNIV_INTERN void trx_purge_rec_release(trx_undo_inf_t *cell)
Definition: trx0purge.cc:1112
trx_undo_arr_t * arr
Definition: trx0purge.h:178
trx_undo_rec_t trx_purge_dummy_rec
Definition: trx0purge.cc:52
ib_bh_t * ib_bh
Definition: trx0purge.h:185
UNIV_INLINE fil_addr_t trx_purge_get_log_from_hist(fil_addr_t node_addr)
ulint n_pages_handled
Definition: trx0purge.h:147
UNIV_INTERN ibool trx_purge_update_undo_must_exist(trx_id_t trx_id)
Definition: trx0purge.cc:72
ulint handle_limit
Definition: trx0purge.h:149
sess_t * sess
Definition: trx0purge.h:131
read_view_t * view
Definition: trx0purge.h:145
UNIV_INTERN trx_undo_rec_t * trx_purge_fetch_next_rec(roll_ptr_t *roll_ptr, trx_undo_inf_t **cell, mem_heap_t *heap)
Definition: trx0purge.cc:1037
mutex_t bh_mutex
Definition: trx0purge.h:188
ib_id_t trx_id_t
Definition: trx0types.h:85
trx_id_t purge_trx_no
Definition: trx0purge.h:155
UNIV_INTERN void trx_purge_add_update_undo_to_history(trx_t *trx, page_t *undo_page, mtr_t *mtr)
Definition: trx0purge.cc:313
trx_purge_t * purge_sys
Definition: trx0purge.cc:48
byte page_t
Definition: page0types.h:37
UNIV_INTERN void trx_purge_sys_close(void)
Definition: trx0purge.cc:269
ib_id_t undo_no_t
Definition: trx0types.h:89
mem_heap_t * heap
Definition: trx0purge.h:181