25 #ifndef _LOG_MANAGER_H_ 26 #define _LOG_MANAGER_H_ 30 #if !defined (SERVER_MODE) && !defined (SA_MODE) 31 #error Belongs to server module 50 #define LOG_TOPOP_STACK_INIT_SIZE 1024 59 #define LOG_IS_SYSTEM_OP_STARTED(tdes) ((tdes)->topops.last >= 0) 72 const char *prefix_logname,
DKNPAGES npages);
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[]);
82 const char *prefix_logname);
84 int undo_length,
int redo_length,
const void *undo_data,
const void *redo_data);
87 const void *undo_data,
const void *redo_data);
91 PGLENGTH offset,
int length,
const void *data);
95 PGLENGTH offset,
int length,
const void *data);
97 int num_undo_crumbs,
int num_redo_crumbs,
const LOG_CRUMB * undo_crumbs,
100 int num_crumbs,
const LOG_CRUMB * crumbs);
102 int num_crumbs,
const LOG_CRUMB * crumbs);
105 const RECDES * undo_recdes,
const RECDES * redo_recdes);
108 const RECDES * redo_recdes);
149 char *redo_rcv_data);
151 const char *prefix_logname,
DKNPAGES log_npages, FILE * outfp);
153 const char *prefix_logname);
155 const char *prefix_logname);
160 #if defined(ENABLE_UNUSED_FUNCTION) 161 extern void log_simulate_crash (
THREAD_ENTRY * thread_p,
int flush_log,
int flush_data_pages);
164 const VPID * rcv_vpid,
int length,
const void *data,
const LOG_LSA * ref_lsa);
176 int arg_cnt,
void **ptr);
178 int out_cnt,
void *ptr);
182 int arg_cnt,
void **ptr);
184 int out_cnt,
void *ptr);
195 int undo_size,
const char *undo_data);
202 int *undo_buffer_size,
char **undo_buffer,
int *undo_size,
char **undo_data);
213 #if defined (SERVER_MODE) 214 extern void log_flush_daemon_get_stats (UINT64 * statsp);
215 #endif // SERVER_MODE
TRAN_STATE log_abort(THREAD_ENTRY *thread_p, int tran_index)
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)
int log_execute_run_postpone(THREAD_ENTRY *thread_p, LOG_LSA *log_lsa, LOG_REC_REDO *redo, char *redo_rcv_data)
void log_skip_logging_set_lsa(THREAD_ENTRY *thread_p, LOG_DATA_ADDR *addr)
bool log_is_in_crash_recovery(void)
void log_append_undoredo_recdes(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, const RECDES *undo_recdes, const RECDES *redo_recdes)
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)
void log_sysop_start_atomic(THREAD_ENTRY *thread_p)
void log_append_repl_info(THREAD_ENTRY *thread_p, LOG_TDES *tdes, bool is_commit)
int log_recreate(THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname, DKNPAGES log_npages, FILE *outfp)
int log_archive_log_header_end_scan(THREAD_ENTRY *thread_p, void **ptr)
enum log_getnewtrid LOG_GETNEWTRID
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)
bool LOG_CS_OWN(THREAD_ENTRY *thread_p)
void log_append_redo_crumbs(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, int num_crumbs, const LOG_CRUMB *crumbs)
void log_append_ha_server_state(THREAD_ENTRY *thread_p, int state)
int log_active_log_header_end_scan(THREAD_ENTRY *thread_p, void **ptr)
void log_append_undo_data(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, int length, const void *data)
void log_sysop_abort(THREAD_ENTRY *thread_p)
void log_append_redo_recdes2(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, const VFID *vfid, PAGE_PTR pgptr, PGLENGTH offset, const RECDES *recdes)
void log_sysop_start(THREAD_ENTRY *thread_p)
void LOG_CS_PROMOTE(THREAD_ENTRY *thread_p)
void log_rv_dump_hexa(FILE *fp, int length, void *data)
enum log_wrote_eot_log LOG_WRITE_EOT_LOG
PGLENGTH log_get_io_page_size(THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname)
TRAN_STATE log_abort_partial(THREAD_ENTRY *thread_p, const char *savepoint_name, LOG_LSA *savept_lsa)
void log_append_undo_crumbs(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, int num_crumbs, const LOG_CRUMB *crumbs)
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)
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)
void log_append_empty_record(THREAD_ENTRY *thread_p, LOG_RECTYPE logrec_type, LOG_DATA_ADDR *addr)
void log_rv_dump_char(FILE *fp, int length, void *data)
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)
const char * log_sysop_end_type_string(LOG_SYSOP_END_TYPE end_type)
void log_sysop_commit(THREAD_ENTRY *thread_p)
const char * log_to_string(LOG_RECTYPE type)
int log_active_log_header_start_scan(THREAD_ENTRY *thread_p, int show_type, DB_VALUE **arg_values, int arg_cnt, void **ptr)
void log_abort_all_active_transaction(THREAD_ENTRY *thread_p)
SCAN_CODE log_active_log_header_next_scan(THREAD_ENTRY *thread_p, int cursor, DB_VALUE **out_values, int out_cnt, void *ptr)
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)
void log_append_redo_data(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, int length, const void *data)
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)
int log_create(THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname, DKNPAGES npages)
int log_rv_outside_noop_redo(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
void log_sysop_end_logical_compensate(THREAD_ENTRY *thread_p, LOG_LSA *undo_nxlsa)
SCAN_CODE log_archive_log_header_next_scan(THREAD_ENTRY *thread_p, int cursor, DB_VALUE **out_values, int out_cnt, void *ptr)
void log_wakeup_checkpoint_daemon()
void log_append_redo_recdes(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, const RECDES *recdes)
void log_do_postpone(THREAD_ENTRY *thread_p, LOG_TDES *tdes, LOG_LSA *start_posplsa)
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)
enum log_rectype LOG_RECTYPE
void LOG_CS_ENTER(THREAD_ENTRY *thread_p)
void LOG_CS_ENTER_READ_MODE(THREAD_ENTRY *thread_p)
void log_skip_logging(THREAD_ENTRY *thread_p, LOG_DATA_ADDR *addr)
TRAN_STATE log_commit_local(THREAD_ENTRY *thread_p, LOG_TDES *tdes, bool retain_lock, bool is_local_tran)
void log_append_undo_recdes(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, const RECDES *recdes)
int log_get_charset_from_header_page(THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname)
bool log_check_system_op_is_started(THREAD_ENTRY *thread_p)
LOG_LSA * log_get_parent_lsa_system_op(THREAD_ENTRY *thread_p, LOG_LSA *parent_lsa)
void log_stop_ha_delay_registration()
void log_append_dboutside_redo(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, int length, const void *data)
void log_append_postpone(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, LOG_DATA_ADDR *addr, int length, const void *data)
void log_append_undo_recdes2(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, const VFID *vfid, PAGE_PTR pgptr, PGLENGTH offset, const RECDES *recdes)
LOG_LSA * log_get_append_lsa(void)
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)
int log_get_num_pages_for_creation(int db_npages)
LOG_LSA * log_get_eof_lsa(void)
void log_sysop_attach_to_outer(THREAD_ENTRY *thread_p)
LOG_LSA * log_get_restart_lsa(void)
INT64 log_get_clock_msec(void)
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)
int log_add_to_modified_class_list(THREAD_ENTRY *thread_p, const char *classname, const OID *class_oid)
LOG_LSA * log_append_savepoint(THREAD_ENTRY *thread_p, const char *savept_name)
bool log_is_in_crash_recovery_and_not_yet_completes_redo(void)
void log_sysop_end_logical_undo(THREAD_ENTRY *thread_p, LOG_RCVINDEX rcvindex, const VFID *vfid, int undo_size, const char *undo_data)
void log_sysop_end_recovery_postpone(THREAD_ENTRY *thread_p, LOG_REC_SYSOP_END *log_record, int data_size, const char *data)
int log_get_db_start_parameters(INT64 *db_creation, LOG_LSA *chkpt_lsa)
void log_wakeup_log_flush_daemon()
void log_restart_emergency(THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname)
void log_sysop_end_logical_run_postpone(THREAD_ENTRY *thread_p, LOG_LSA *posp_lsa)
bool log_is_class_being_modified(THREAD_ENTRY *thread_p, const OID *class_oid)
TRAN_STATE log_commit(THREAD_ENTRY *thread_p, int tran_index, bool retain_lock)
enum log_sysop_end_type LOG_SYSOP_END_TYPE
LOG_LSA * log_get_crash_point_lsa(void)
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)
SCAN_CODE log_get_undo_record(THREAD_ENTRY *thread_p, LOG_PAGE *log_page_p, LOG_LSA process_lsa, RECDES *recdes)
TRAN_STATE log_complete_for_2pc(THREAD_ENTRY *thread_p, LOG_TDES *tdes, LOG_RECTYPE iscommitted, LOG_GETNEWTRID get_newtrid)
void xlog_dump(THREAD_ENTRY *thread_p, FILE *out_fp, int isforward, LOG_PAGEID start_logpageid, DKNPAGES dump_npages, TRANID desired_tranid)
int log_rv_copy_char(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
bool log_is_tran_in_system_op(THREAD_ENTRY *thread_p)
bool log_is_logged_since_restart(const LOG_LSA *lsa_ptr)
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)
void log_final(THREAD_ENTRY *thread_p)
int log_archive_log_header_start_scan(THREAD_ENTRY *thread_p, int show_type, DB_VALUE **arg_values, int arg_cnt, void **ptr)
TRAN_STATE log_abort_local(THREAD_ENTRY *thread_p, LOG_TDES *tdes, bool is_local_tran)
void LOG_CS_EXIT(THREAD_ENTRY *thread_p)
bool log_is_log_flush_daemon_available()
bool LOG_CS_OWN_WRITE_MODE(THREAD_ENTRY *thread_p)