CUBRID Engine  latest
log_manager.h
Go to the documentation of this file.
1 /*
2  * Copyright 2008 Search Solution Corporation
3  * Copyright 2016 CUBRID Corporation
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
19 
20 /*
21  * log_manager.h - LOG AND RECOVERY MANAGER (AT THE SERVER)
22  *
23  */
24 
25 #ifndef _LOG_MANAGER_H_
26 #define _LOG_MANAGER_H_
27 
28 #ident "$Id$"
29 
30 #if !defined (SERVER_MODE) && !defined (SA_MODE)
31 #error Belongs to server module
32 #endif /* !defined (SERVER_MODE) && !defined (SA_MODE) */
33 
34 #include "config.h"
35 #include "disk_manager.h"
36 #include "error_manager.h"
37 #include "file_io.h"
38 #include "log_comm.h"
39 #include "log_impl.h"
40 #include "log_lsa.hpp"
41 #include "recovery.h"
42 #include "storage_common.h"
43 #include "thread_compat.hpp"
44 
45 #include <time.h>
46 
47 // forward declarations
48 struct bo_restart_arg;
49 
50 #define LOG_TOPOP_STACK_INIT_SIZE 1024
51 
54 {
57 };
58 
59 #define LOG_IS_SYSTEM_OP_STARTED(tdes) ((tdes)->topops.last >= 0)
60 
61 extern const char *log_to_string (LOG_RECTYPE type);
62 extern bool log_is_in_crash_recovery (void);
64 extern LOG_LSA *log_get_restart_lsa (void);
65 extern LOG_LSA *log_get_crash_point_lsa (void);
66 extern LOG_LSA *log_get_append_lsa (void);
67 extern LOG_LSA *log_get_eof_lsa (void);
68 extern bool log_is_logged_since_restart (const LOG_LSA * lsa_ptr);
69 extern int log_get_db_start_parameters (INT64 * db_creation, LOG_LSA * chkpt_lsa);
70 extern int log_get_num_pages_for_creation (int db_npages);
71 extern int log_create (THREAD_ENTRY * thread_p, const char *db_fullname, const char *logpath,
72  const char *prefix_logname, DKNPAGES npages);
73 extern void log_initialize (THREAD_ENTRY * thread_p, const char *db_fullname, const char *logpath,
74  const char *prefix_logname, int ismedia_crash, bo_restart_arg * r_args);
75 #if defined(ENABLE_UNUSED_FUNCTION)
76 extern int log_update_compatibility_and_release (THREAD_ENTRY * thread_p, float compatibility, char release[]);
77 #endif
78 extern void log_abort_all_active_transaction (THREAD_ENTRY * thread_p);
79 extern void log_final (THREAD_ENTRY * thread_p);
80 extern void log_stop_ha_delay_registration ();
81 extern void log_restart_emergency (THREAD_ENTRY * thread_p, const char *db_fullname, const char *logpath,
82  const char *prefix_logname);
83 extern void log_append_undoredo_data (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR * addr,
84  int undo_length, int redo_length, const void *undo_data, const void *redo_data);
85 extern void log_append_undoredo_data2 (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, const VFID * vfid,
86  PAGE_PTR pgptr, PGLENGTH offset, int undo_length, int redo_length,
87  const void *undo_data, const void *redo_data);
88 extern void log_append_undo_data (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR * addr, int length,
89  const void *data);
90 extern void log_append_undo_data2 (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, const VFID * vfid, PAGE_PTR pgptr,
91  PGLENGTH offset, int length, const void *data);
92 extern void log_append_redo_data (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR * addr, int length,
93  const void *data);
94 extern void log_append_redo_data2 (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, const VFID * vfid, PAGE_PTR pgptr,
95  PGLENGTH offset, int length, const void *data);
96 extern void log_append_undoredo_crumbs (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR * addr,
97  int num_undo_crumbs, int num_redo_crumbs, const LOG_CRUMB * undo_crumbs,
98  const LOG_CRUMB * redo_crumbs);
99 extern void log_append_undo_crumbs (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR * addr,
100  int num_crumbs, const LOG_CRUMB * crumbs);
101 extern void log_append_redo_crumbs (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR * addr,
102  int num_crumbs, const LOG_CRUMB * crumbs);
103 
104 extern void log_append_undoredo_recdes (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR * addr,
105  const RECDES * undo_recdes, const RECDES * redo_recdes);
106 extern void log_append_undoredo_recdes2 (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, const VFID * vfid,
107  PAGE_PTR pgptr, PGLENGTH offset, const RECDES * undo_recdes,
108  const RECDES * redo_recdes);
109 
110 extern void log_append_undo_recdes (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR * addr,
111  const RECDES * recdes);
112 extern void log_append_undo_recdes2 (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, const VFID * vfid, PAGE_PTR pgptr,
113  PGLENGTH offset, const RECDES * recdes);
114 
115 extern void log_append_redo_recdes (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR * addr,
116  const RECDES * recdes);
117 extern void log_append_redo_recdes2 (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, const VFID * vfid, PAGE_PTR pgptr,
118  PGLENGTH offset, const RECDES * recdes);
119 
120 extern void log_append_dboutside_redo (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, int length, const void *data);
121 extern void log_append_postpone (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR * addr, int length,
122  const void *data);
123 extern void log_append_compensate (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, const VPID * vpid, PGLENGTH offset,
124  PAGE_PTR pgptr, int length, const void *data, LOG_TDES * tdes);
125 extern void log_append_compensate_with_undo_nxlsa (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, const VPID * vpid,
126  PGLENGTH offset, PAGE_PTR pgptr, int length, const void *data,
127  LOG_TDES * tdes, const LOG_LSA * undo_nxlsa);
128 extern void log_append_ha_server_state (THREAD_ENTRY * thread_p, int state);
129 extern void log_append_empty_record (THREAD_ENTRY * thread_p, LOG_RECTYPE logrec_type, LOG_DATA_ADDR * addr);
130 extern void log_skip_logging_set_lsa (THREAD_ENTRY * thread_p, LOG_DATA_ADDR * addr);
131 extern void log_skip_logging (THREAD_ENTRY * thread_p, LOG_DATA_ADDR * addr);
132 extern LOG_LSA *log_append_savepoint (THREAD_ENTRY * thread_p, const char *savept_name);
133 extern bool log_check_system_op_is_started (THREAD_ENTRY * thread_p);
134 extern LOG_LSA *log_get_parent_lsa_system_op (THREAD_ENTRY * thread_p, LOG_LSA * parent_lsa);
135 extern bool log_is_tran_in_system_op (THREAD_ENTRY * thread_p);
136 extern int log_add_to_modified_class_list (THREAD_ENTRY * thread_p, const char *classname, const OID * class_oid);
137 extern bool log_is_class_being_modified (THREAD_ENTRY * thread_p, const OID * class_oid);
138 extern TRAN_STATE log_commit_local (THREAD_ENTRY * thread_p, LOG_TDES * tdes, bool retain_lock, bool is_local_tran);
139 extern TRAN_STATE log_abort_local (THREAD_ENTRY * thread_p, LOG_TDES * tdes, bool is_local_tran);
140 extern TRAN_STATE log_commit (THREAD_ENTRY * thread_p, int tran_index, bool retain_lock);
141 extern TRAN_STATE log_abort (THREAD_ENTRY * thread_p, int tran_index);
142 extern TRAN_STATE log_abort_partial (THREAD_ENTRY * thread_p, const char *savepoint_name, LOG_LSA * savept_lsa);
143 extern TRAN_STATE log_complete (THREAD_ENTRY * thread_p, LOG_TDES * tdes, LOG_RECTYPE iscommitted,
144  LOG_GETNEWTRID get_newtrid, LOG_WRITE_EOT_LOG wrote_eot_log);
145 extern TRAN_STATE log_complete_for_2pc (THREAD_ENTRY * thread_p, LOG_TDES * tdes, LOG_RECTYPE iscommitted,
146  LOG_GETNEWTRID get_newtrid);
147 extern void log_do_postpone (THREAD_ENTRY * thread_p, LOG_TDES * tdes, LOG_LSA * start_posplsa);
148 extern int log_execute_run_postpone (THREAD_ENTRY * thread_p, LOG_LSA * log_lsa, LOG_REC_REDO * redo,
149  char *redo_rcv_data);
150 extern int log_recreate (THREAD_ENTRY * thread_p, const char *db_fullname, const char *logpath,
151  const char *prefix_logname, DKNPAGES log_npages, FILE * outfp);
152 extern PGLENGTH log_get_io_page_size (THREAD_ENTRY * thread_p, const char *db_fullname, const char *logpath,
153  const char *prefix_logname);
154 extern int log_get_charset_from_header_page (THREAD_ENTRY * thread_p, const char *db_fullname, const char *logpath,
155  const char *prefix_logname);
156 extern int log_rv_copy_char (THREAD_ENTRY * thread_p, LOG_RCV * rcv);
157 extern void log_rv_dump_char (FILE * fp, int length, void *data);
158 extern void log_rv_dump_hexa (FILE * fp, int length, void *data);
159 extern int log_rv_outside_noop_redo (THREAD_ENTRY * thread_p, LOG_RCV * rcv);
160 #if defined(ENABLE_UNUSED_FUNCTION)
161 extern void log_simulate_crash (THREAD_ENTRY * thread_p, int flush_log, int flush_data_pages);
162 #endif
163 extern void log_append_run_postpone (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR * addr,
164  const VPID * rcv_vpid, int length, const void *data, const LOG_LSA * ref_lsa);
165 extern int log_get_next_nested_top (THREAD_ENTRY * thread_p, LOG_TDES * tdes, LOG_LSA * start_postpone_lsa,
166  LOG_TOPOP_RANGE ** out_nxtop_range_stack);
167 extern void log_append_repl_info (THREAD_ENTRY * thread_p, LOG_TDES * tdes, bool is_commit);
168 
169 /*
170  * FOR DEBUGGING
171  */
172 extern void xlog_dump (THREAD_ENTRY * thread_p, FILE * out_fp, int isforward, LOG_PAGEID start_logpageid,
173  DKNPAGES dump_npages, TRANID desired_tranid);
174 
175 extern int log_active_log_header_start_scan (THREAD_ENTRY * thread_p, int show_type, DB_VALUE ** arg_values,
176  int arg_cnt, void **ptr);
177 extern SCAN_CODE log_active_log_header_next_scan (THREAD_ENTRY * thread_p, int cursor, DB_VALUE ** out_values,
178  int out_cnt, void *ptr);
179 extern int log_active_log_header_end_scan (THREAD_ENTRY * thread_p, void **ptr);
180 
181 extern int log_archive_log_header_start_scan (THREAD_ENTRY * thread_p, int show_type, DB_VALUE ** arg_values,
182  int arg_cnt, void **ptr);
183 extern SCAN_CODE log_archive_log_header_next_scan (THREAD_ENTRY * thread_p, int cursor, DB_VALUE ** out_values,
184  int out_cnt, void *ptr);
185 extern int log_archive_log_header_end_scan (THREAD_ENTRY * thread_p, void **ptr);
186 extern SCAN_CODE log_get_undo_record (THREAD_ENTRY * thread_p, LOG_PAGE * log_page_p, LOG_LSA process_lsa,
187  RECDES * recdes);
188 
189 extern void log_sysop_start (THREAD_ENTRY * thread_p);
190 extern void log_sysop_start_atomic (THREAD_ENTRY * thread_p);
191 extern void log_sysop_abort (THREAD_ENTRY * thread_p);
192 extern void log_sysop_attach_to_outer (THREAD_ENTRY * thread_p);
193 extern void log_sysop_commit (THREAD_ENTRY * thread_p);
194 extern void log_sysop_end_logical_undo (THREAD_ENTRY * thread_p, LOG_RCVINDEX rcvindex, const VFID * vfid,
195  int undo_size, const char *undo_data);
196 extern void log_sysop_end_logical_compensate (THREAD_ENTRY * thread_p, LOG_LSA * undo_nxlsa);
197 extern void log_sysop_end_logical_run_postpone (THREAD_ENTRY * thread_p, LOG_LSA * posp_lsa);
198 extern void log_sysop_end_recovery_postpone (THREAD_ENTRY * thread_p, LOG_REC_SYSOP_END * log_record, int data_size,
199  const char *data);
201  bool with_undo_data, LOG_REC_SYSOP_START_POSTPONE * sysop_start_postpone,
202  int *undo_buffer_size, char **undo_buffer, int *undo_size, char **undo_data);
203 
204 extern const char *log_sysop_end_type_string (LOG_SYSOP_END_TYPE end_type);
205 
206 extern INT64 log_get_clock_msec (void);
207 
209 extern void log_wakeup_checkpoint_daemon ();
210 extern void log_wakeup_log_flush_daemon ();
211 
212 extern bool log_is_log_flush_daemon_available ();
213 #if defined (SERVER_MODE)
214 extern void log_flush_daemon_get_stats (UINT64 * statsp);
215 #endif // SERVER_MODE
216 
218 
219 //
220 // log critical section
221 //
222 
223 void LOG_CS_ENTER (THREAD_ENTRY * thread_p);
224 void LOG_CS_ENTER_READ_MODE (THREAD_ENTRY * thread_p);
225 void LOG_CS_EXIT (THREAD_ENTRY * thread_p);
226 void LOG_CS_DEMOTE (THREAD_ENTRY * thread_p);
227 void LOG_CS_PROMOTE (THREAD_ENTRY * thread_p);
228 
229 bool LOG_CS_OWN (THREAD_ENTRY * thread_p);
230 bool LOG_CS_OWN_WRITE_MODE (THREAD_ENTRY * thread_p);
231 
232 #endif /* _LOG_MANAGER_H_ */
char * PAGE_PTR
TRAN_STATE log_abort(THREAD_ENTRY *thread_p, int tran_index)
Definition: log_manager.c:5185
TRAN_STATE log_complete(THREAD_ENTRY *thread_p, LOG_TDES *tdes, LOG_RECTYPE iscommitted, LOG_GETNEWTRID get_newtrid, LOG_WRITE_EOT_LOG wrote_eot_log)
Definition: log_manager.c:5377
int log_execute_run_postpone(THREAD_ENTRY *thread_p, LOG_LSA *log_lsa, LOG_REC_REDO *redo, char *redo_rcv_data)
Definition: log_manager.c:8213
void log_skip_logging_set_lsa(THREAD_ENTRY *thread_p, LOG_DATA_ADDR *addr)
Definition: log_manager.c:3204
bool log_is_in_crash_recovery(void)
Definition: log_manager.c:476
SCAN_CODE
void log_append_undoredo_recdes(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, const RECDES *undo_recdes, const RECDES *redo_recdes)
Definition: log_manager.c:2434
void log_append_undoredo_recdes2(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, const VFID *vfid, PAGE_PTR pgptr, PGLENGTH offset, const RECDES *undo_recdes, const RECDES *redo_recdes)
Definition: log_manager.c:2441
void log_sysop_start_atomic(THREAD_ENTRY *thread_p)
Definition: log_manager.c:3644
int TRANID
void log_append_repl_info(THREAD_ENTRY *thread_p, LOG_TDES *tdes, bool is_commit)
Definition: log_manager.c:4564
int log_recreate(THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname, DKNPAGES log_npages, FILE *outfp)
Definition: log_manager.c:8449
int log_archive_log_header_end_scan(THREAD_ENTRY *thread_p, void **ptr)
Definition: log_manager.c:9316
enum log_getnewtrid LOG_GETNEWTRID
Definition: log_impl.h:287
PAGEID DKNPAGES
void log_append_undoredo_crumbs(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, int num_undo_crumbs, int num_redo_crumbs, const LOG_CRUMB *undo_crumbs, const LOG_CRUMB *redo_crumbs)
Definition: log_manager.c:2030
bool LOG_CS_OWN(THREAD_ENTRY *thread_p)
LOG_RCVINDEX
Definition: recovery.h:36
void log_append_redo_crumbs(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, int num_crumbs, const LOG_CRUMB *crumbs)
Definition: log_manager.c:2307
void log_append_ha_server_state(THREAD_ENTRY *thread_p, int state)
Definition: log_manager.c:3156
int log_active_log_header_end_scan(THREAD_ENTRY *thread_p, void **ptr)
Definition: log_manager.c:9154
void log_append_undo_data(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, int length, const void *data)
Definition: log_manager.c:1917
void log_sysop_abort(THREAD_ENTRY *thread_p)
Definition: log_manager.c:4017
void log_append_redo_recdes2(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, const VFID *vfid, PAGE_PTR pgptr, PGLENGTH offset, const RECDES *recdes)
Definition: log_manager.c:2579
void log_sysop_start(THREAD_ENTRY *thread_p)
Definition: log_manager.c:3578
void LOG_CS_PROMOTE(THREAD_ENTRY *thread_p)
void log_rv_dump_hexa(FILE *fp, int length, void *data)
Definition: log_manager.c:8734
enum log_wrote_eot_log LOG_WRITE_EOT_LOG
Definition: log_impl.h:291
PGLENGTH log_get_io_page_size(THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname)
Definition: log_manager.c:8572
TRAN_STATE log_abort_partial(THREAD_ENTRY *thread_p, const char *savepoint_name, LOG_LSA *savept_lsa)
Definition: log_manager.c:5282
void log_append_undo_crumbs(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, int num_crumbs, const LOG_CRUMB *crumbs)
Definition: log_manager.c:2170
int log_get_next_nested_top(THREAD_ENTRY *thread_p, LOG_TDES *tdes, LOG_LSA *start_postpone_lsa, LOG_TOPOP_RANGE **out_nxtop_range_stack)
Definition: log_manager.c:7694
LOG_LSA end_lsa
Definition: log_manager.h:56
void log_append_run_postpone(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, const VPID *rcv_vpid, int length, const void *data, const LOG_LSA *ref_lsa)
Definition: log_manager.c:2860
void log_append_empty_record(THREAD_ENTRY *thread_p, LOG_RECTYPE logrec_type, LOG_DATA_ADDR *addr)
Definition: log_manager.c:3117
void log_rv_dump_char(FILE *fp, int length, void *data)
Definition: log_manager.c:8719
void log_initialize(THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname, int ismedia_crash, bo_restart_arg *r_args)
Definition: log_manager.c:1005
const char * log_sysop_end_type_string(LOG_SYSOP_END_TYPE end_type)
Definition: log_manager.c:3549
void log_sysop_commit(THREAD_ENTRY *thread_p)
Definition: log_manager.c:3895
const char * log_to_string(LOG_RECTYPE type)
Definition: log_manager.c:343
int log_active_log_header_start_scan(THREAD_ENTRY *thread_p, int show_type, DB_VALUE **arg_values, int arg_cnt, void **ptr)
Definition: log_manager.c:8817
void log_abort_all_active_transaction(THREAD_ENTRY *thread_p)
Definition: log_manager.c:1552
void THREAD_ENTRY
SCAN_CODE log_active_log_header_next_scan(THREAD_ENTRY *thread_p, int cursor, DB_VALUE **out_values, int out_cnt, void *ptr)
Definition: log_manager.c:8913
void log_append_undo_data2(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, const VFID *vfid, PAGE_PTR pgptr, PGLENGTH offset, int length, const void *data)
Definition: log_manager.c:1933
void log_append_redo_data(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, int length, const void *data)
Definition: log_manager.c:1979
void LOG_CS_DEMOTE(THREAD_ENTRY *thread_p)
void log_append_compensate(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, const VPID *vpid, PGLENGTH offset, PAGE_PTR pgptr, int length, const void *data, LOG_TDES *tdes)
Definition: log_manager.c:2964
int log_create(THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname, DKNPAGES npages)
Definition: log_manager.c:749
int log_rv_outside_noop_redo(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
Definition: log_manager.c:8753
void log_sysop_end_logical_compensate(THREAD_ENTRY *thread_p, LOG_LSA *undo_nxlsa)
Definition: log_manager.c:3963
LOG_LSA start_lsa
Definition: log_manager.h:55
SCAN_CODE log_archive_log_header_next_scan(THREAD_ENTRY *thread_p, int cursor, DB_VALUE **out_values, int out_cnt, void *ptr)
Definition: log_manager.c:9252
void log_wakeup_checkpoint_daemon()
void log_append_redo_recdes(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, const RECDES *recdes)
Definition: log_manager.c:2573
void log_do_postpone(THREAD_ENTRY *thread_p, LOG_TDES *tdes, LOG_LSA *start_posplsa)
Definition: log_manager.c:7908
void log_wakeup_remove_log_archive_daemon()
void log_append_redo_data2(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, const VFID *vfid, PAGE_PTR pgptr, PGLENGTH offset, int length, const void *data)
Definition: log_manager.c:1995
enum log_rectype LOG_RECTYPE
Definition: log_record.hpp:138
void LOG_CS_ENTER(THREAD_ENTRY *thread_p)
void LOG_CS_ENTER_READ_MODE(THREAD_ENTRY *thread_p)
INT64 LOG_PAGEID
void log_skip_logging(THREAD_ENTRY *thread_p, LOG_DATA_ADDR *addr)
Definition: log_manager.c:3244
TRAN_STATE log_commit_local(THREAD_ENTRY *thread_p, LOG_TDES *tdes, bool retain_lock, bool is_local_tran)
Definition: log_manager.c:4883
void log_append_undo_recdes(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, const RECDES *recdes)
Definition: log_manager.c:2532
int log_get_charset_from_header_page(THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname)
Definition: log_manager.c:8645
bool log_check_system_op_is_started(THREAD_ENTRY *thread_p)
Definition: log_manager.c:4166
LOG_LSA * log_get_parent_lsa_system_op(THREAD_ENTRY *thread_p, LOG_LSA *parent_lsa)
Definition: log_manager.c:4198
void log_stop_ha_delay_registration()
Definition: log_manager.c:1790
void log_append_dboutside_redo(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, int length, const void *data)
Definition: log_manager.c:2627
void log_append_postpone(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, int length, const void *data)
Definition: log_manager.c:2698
void log_append_undo_recdes2(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, const VFID *vfid, PAGE_PTR pgptr, PGLENGTH offset, const RECDES *recdes)
Definition: log_manager.c:2538
LOG_LSA * log_get_append_lsa(void)
Definition: log_manager.c:559
void log_append_compensate_with_undo_nxlsa(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, const VPID *vpid, PGLENGTH offset, PAGE_PTR pgptr, int length, const void *data, LOG_TDES *tdes, const LOG_LSA *undo_nxlsa)
Definition: log_manager.c:2990
int log_get_num_pages_for_creation(int db_npages)
Definition: log_manager.c:696
LOG_LSA * log_get_eof_lsa(void)
Definition: log_manager.c:572
void log_sysop_attach_to_outer(THREAD_ENTRY *thread_p)
Definition: log_manager.c:4076
LOG_LSA * log_get_restart_lsa(void)
Definition: log_manager.c:515
INT64 log_get_clock_msec(void)
INT16 PGLENGTH
void log_append_undoredo_data(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, int undo_length, int redo_length, const void *undo_data, const void *redo_data)
Definition: log_manager.c:1837
int log_add_to_modified_class_list(THREAD_ENTRY *thread_p, const char *classname, const OID *class_oid)
Definition: log_manager.c:4757
LOG_LSA * log_append_savepoint(THREAD_ENTRY *thread_p, const char *savept_name)
Definition: log_manager.c:3344
bool log_is_in_crash_recovery_and_not_yet_completes_redo(void)
Definition: log_manager.c:495
void log_sysop_end_logical_undo(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, const VFID *vfid, int undo_size, const char *undo_data)
Definition: log_manager.c:3920
void log_sysop_end_recovery_postpone(THREAD_ENTRY *thread_p, LOG_REC_SYSOP_END *log_record, int data_size, const char *data)
Definition: log_manager.c:4003
int log_get_db_start_parameters(INT64 *db_creation, LOG_LSA *chkpt_lsa)
Definition: log_manager.c:668
void log_wakeup_log_flush_daemon()
Definition: log_manager.c:9715
void log_restart_emergency(THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname)
Definition: log_manager.c:1811
void log_sysop_end_logical_run_postpone(THREAD_ENTRY *thread_p, LOG_LSA *posp_lsa)
Definition: log_manager.c:3982
bool log_is_class_being_modified(THREAD_ENTRY *thread_p, const OID *class_oid)
Definition: log_manager.c:4786
TRAN_STATE log_commit(THREAD_ENTRY *thread_p, int tran_index, bool retain_lock)
Definition: log_manager.c:5076
enum log_sysop_end_type LOG_SYSOP_END_TYPE
Definition: log_record.hpp:282
TRAN_STATE
Definition: log_comm.h:36
LOG_LSA * log_get_crash_point_lsa(void)
Definition: log_manager.c:537
int log_read_sysop_start_postpone(THREAD_ENTRY *thread_p, LOG_LSA *log_lsa, LOG_PAGE *log_page, bool with_undo_data, LOG_REC_SYSOP_START_POSTPONE *sysop_start_postpone, int *undo_buffer_size, char **undo_buffer, int *undo_size, char **undo_data)
Definition: log_manager.c:9553
SCAN_CODE log_get_undo_record(THREAD_ENTRY *thread_p, LOG_PAGE *log_page_p, LOG_LSA process_lsa, RECDES *recdes)
Definition: log_manager.c:9370
TRAN_STATE log_complete_for_2pc(THREAD_ENTRY *thread_p, LOG_TDES *tdes, LOG_RECTYPE iscommitted, LOG_GETNEWTRID get_newtrid)
Definition: log_manager.c:5474
void xlog_dump(THREAD_ENTRY *thread_p, FILE *out_fp, int isforward, LOG_PAGEID start_logpageid, DKNPAGES dump_npages, TRANID desired_tranid)
Definition: log_manager.c:6759
int log_rv_copy_char(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
Definition: log_manager.c:8696
bool log_is_tran_in_system_op(THREAD_ENTRY *thread_p)
Definition: log_manager.c:4234
bool log_is_logged_since_restart(const LOG_LSA *lsa_ptr)
Definition: log_manager.c:593
void log_update_global_btid_online_index_stats(THREAD_ENTRY *thread_p)
void log_append_undoredo_data2(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, const VFID *vfid, PAGE_PTR pgptr, PGLENGTH offset, int undo_length, int redo_length, const void *undo_data, const void *redo_data)
Definition: log_manager.c:1861
void log_final(THREAD_ENTRY *thread_p)
Definition: log_manager.c:1664
int log_archive_log_header_start_scan(THREAD_ENTRY *thread_p, int show_type, DB_VALUE **arg_values, int arg_cnt, void **ptr)
Definition: log_manager.c:9175
TRAN_STATE log_abort_local(THREAD_ENTRY *thread_p, LOG_TDES *tdes, bool is_local_tran)
Definition: log_manager.c:5001
void LOG_CS_EXIT(THREAD_ENTRY *thread_p)
bool log_is_log_flush_daemon_available()
Definition: log_manager.c:9730
bool LOG_CS_OWN_WRITE_MODE(THREAD_ENTRY *thread_p)