30 #if !defined (SERVER_MODE) && !defined (SA_MODE) 32 #endif // not SERVER/SA modes 72 #if defined(SERVER_MODE) 73 #define TR_TABLE_CS_ENTER(thread_p) \ 74 csect_enter((thread_p), CSECT_TRAN_TABLE, INF_WAIT) 75 #define TR_TABLE_CS_ENTER_READ_MODE(thread_p) \ 76 csect_enter_as_reader((thread_p), CSECT_TRAN_TABLE, INF_WAIT) 77 #define TR_TABLE_CS_EXIT(thread_p) \ 78 csect_exit((thread_p), CSECT_TRAN_TABLE) 80 #define LOG_ARCHIVE_CS_ENTER(thread_p) \ 81 csect_enter (thread_p, CSECT_LOG_ARCHIVE, INF_WAIT) 82 #define LOG_ARCHIVE_CS_ENTER_READ_MODE(thread_p) \ 83 csect_enter_as_reader (thread_p, CSECT_LOG_ARCHIVE, INF_WAIT) 84 #define LOG_ARCHIVE_CS_EXIT(thread_p) \ 85 csect_exit (thread_p, CSECT_LOG_ARCHIVE) 88 #define TR_TABLE_CS_ENTER(thread_p) 89 #define TR_TABLE_CS_ENTER_READ_MODE(thread_p) 90 #define TR_TABLE_CS_EXIT(thread_p) 92 #define LOG_ARCHIVE_CS_ENTER(thread_p) 93 #define LOG_ARCHIVE_CS_ENTER_READ_MODE(thread_p) 94 #define LOG_ARCHIVE_CS_EXIT(thread_p) 97 #if defined(SERVER_MODE) 99 #define LOG_ARCHIVE_CS_OWN(thread_p) \ 100 (csect_check (thread_p, CSECT_LOG_ARCHIVE) >= 1) 101 #define LOG_ARCHIVE_CS_OWN_WRITE_MODE(thread_p) \ 102 (csect_check_own (thread_p, CSECT_LOG_ARCHIVE) == 1) 103 #define LOG_ARCHIVE_CS_OWN_READ_MODE(thread_p) \ 104 (csect_check_own (thread_p, CSECT_LOG_ARCHIVE) == 2) 107 #define LOG_ARCHIVE_CS_OWN(thread_p) (true) 108 #define LOG_ARCHIVE_CS_OWN_WRITE_MODE(thread_p) (true) 109 #define LOG_ARCHIVE_CS_OWN_READ_MODE(thread_p) (true) 112 #define LOG_ESTIMATE_NACTIVE_TRANS 100 113 #define LOG_ESTIMATE_NOBJ_LOCKS 977 116 #define LOGAREA_SIZE (LOG_PAGESIZE - SSIZEOF(LOG_HDRPAGE)) 119 #define LOG_IS_GROUP_COMMIT_ACTIVE() \ 120 (prm_get_integer_value (PRM_ID_LOG_GROUP_COMMIT_INTERVAL_MSECS) > 0) 122 #define LOG_READ_ALIGN(thread_p, lsa, log_pgptr) \ 125 (lsa)->offset = DB_ALIGN ((lsa)->offset, DOUBLE_ALIGNMENT); \ 126 while ((lsa)->offset >= (int) LOGAREA_SIZE) \ 128 assert (log_pgptr != NULL); \ 130 if (logpb_fetch_page ((thread_p), (lsa), LOG_CS_FORCE_USE, (log_pgptr)) != NO_ERROR) \ 132 logpb_fatal_error ((thread_p), true, ARG_FILE_LINE, \ 135 (lsa)->offset -= LOGAREA_SIZE; \ 136 (lsa)->offset = DB_ALIGN ((lsa)->offset, DOUBLE_ALIGNMENT); \ 141 #define LOG_READ_ADD_ALIGN(thread_p, add, lsa, log_pgptr) \ 144 (lsa)->offset += (add); \ 145 LOG_READ_ALIGN ((thread_p), (lsa), (log_pgptr)); \ 149 #define LOG_READ_ADVANCE_WHEN_DOESNT_FIT(thread_p, length, lsa, log_pgptr) \ 152 if ((lsa)->offset + (int) (length) >= (int) LOGAREA_SIZE) \ 154 assert (log_pgptr != NULL); \ 156 if ((logpb_fetch_page ((thread_p), (lsa), LOG_CS_FORCE_USE, log_pgptr))!= NO_ERROR) \ 158 logpb_fatal_error ((thread_p), true, ARG_FILE_LINE, \ 159 "LOG_READ_ADVANCE_WHEN_DOESNT_FIT"); \ 166 #if defined(SERVER_MODE) 168 #if !defined(LOG_FIND_THREAD_TRAN_INDEX) 169 #define LOG_FIND_THREAD_TRAN_INDEX(thrd) \ 170 ((thrd) ? (thrd)->tran_index : logtb_get_current_tran_index ()) 172 #define LOG_SET_CURRENT_TRAN_INDEX(thrd, index) \ 173 ((thrd) ? (void) ((thrd)->tran_index = (index)) : logtb_set_current_tran_index ((thrd), (index))) 175 #if !defined(LOG_FIND_THREAD_TRAN_INDEX) 176 #define LOG_FIND_THREAD_TRAN_INDEX(thrd) (log_Tran_index) 178 #define LOG_SET_CURRENT_TRAN_INDEX(thrd, index) \ 179 log_Tran_index = (index) 182 #define LOG_ISTRAN_ACTIVE(tdes) \ 183 ((tdes)->state == TRAN_ACTIVE && LOG_ISRESTARTED ()) 185 #define LOG_ISTRAN_COMMITTED(tdes) \ 186 ((tdes)->state == TRAN_UNACTIVE_COMMITTED \ 187 || (tdes)->state == TRAN_UNACTIVE_WILL_COMMIT \ 188 || (tdes)->state == TRAN_UNACTIVE_COMMITTED_WITH_POSTPONE \ 189 || (tdes)->state == TRAN_UNACTIVE_2PC_COMMIT_DECISION \ 190 || (tdes)->state == TRAN_UNACTIVE_COMMITTED_INFORMING_PARTICIPANTS) 192 #define LOG_ISTRAN_ABORTED(tdes) \ 193 ((tdes)->state == TRAN_UNACTIVE_ABORTED \ 194 || (tdes)->state == TRAN_UNACTIVE_UNILATERALLY_ABORTED \ 195 || (tdes)->state == TRAN_UNACTIVE_2PC_ABORT_DECISION \ 196 || (tdes)->state == TRAN_UNACTIVE_ABORTED_INFORMING_PARTICIPANTS) 198 #define LOG_ISTRAN_LOOSE_ENDS(tdes) \ 199 ((tdes)->state == TRAN_UNACTIVE_COMMITTED_INFORMING_PARTICIPANTS \ 200 || (tdes)->state == TRAN_UNACTIVE_ABORTED_INFORMING_PARTICIPANTS \ 201 || (tdes)->state == TRAN_UNACTIVE_2PC_COLLECTING_PARTICIPANT_VOTES \ 202 || (tdes)->state == TRAN_UNACTIVE_2PC_PREPARE) 204 #define LOG_ISTRAN_2PC_IN_SECOND_PHASE(tdes) \ 205 ((tdes)->state == TRAN_UNACTIVE_2PC_ABORT_DECISION \ 206 || (tdes)->state == TRAN_UNACTIVE_2PC_COMMIT_DECISION \ 207 || (tdes)->state == TRAN_UNACTIVE_WILL_COMMIT \ 208 || (tdes)->state == TRAN_UNACTIVE_COMMITTED_WITH_POSTPONE \ 209 || (tdes)->state == TRAN_UNACTIVE_ABORTED_INFORMING_PARTICIPANTS \ 210 || (tdes)->state == TRAN_UNACTIVE_COMMITTED_INFORMING_PARTICIPANTS) 212 #define LOG_ISTRAN_2PC(tdes) \ 213 ((tdes)->state == TRAN_UNACTIVE_2PC_COLLECTING_PARTICIPANT_VOTES \ 214 || (tdes)->state == TRAN_UNACTIVE_2PC_PREPARE \ 215 || LOG_ISTRAN_2PC_IN_SECOND_PHASE (tdes)) 217 #define LOG_ISTRAN_2PC_PREPARE(tdes) \ 218 ((tdes)->state == TRAN_UNACTIVE_2PC_PREPARE) 220 #define LOG_ISTRAN_2PC_INFORMING_PARTICIPANTS(tdes) \ 221 ((tdes)->state == TRAN_UNACTIVE_COMMITTED_INFORMING_PARTICIPANTS \ 222 || (tdes)->state == TRAN_UNACTIVE_ABORTED_INFORMING_PARTICIPANTS) 227 #define LOG_READ_NEXT_TRANID (log_Gl.hdr.next_trid) 228 #define LOG_READ_NEXT_MVCCID (log_Gl.hdr.mvcc_next_id) 229 #define LOG_HAS_LOGGING_BEEN_IGNORED() \ 230 (log_Gl.hdr.has_logging_been_skipped == true) 232 #define LOG_ISRESTARTED() (log_Gl.rcv_phase == LOG_RESTARTED) 235 #if defined (SERVER_MODE) 236 #define LOG_CHECK_LOG_APPLIER(thread_p) \ 238 && logtb_find_client_type (thread_p->tran_index) == DB_CLIENT_TYPE_LOG_APPLIER) 240 #define LOG_CHECK_LOG_APPLIER(thread_p) (0) 243 #if !defined(_DB_DISABLE_MODIFICATIONS_) 244 #define _DB_DISABLE_MODIFICATIONS_ 248 #ifndef CHECK_MODIFICATION_NO_RETURN 249 #if defined (SA_MODE) 250 #define CHECK_MODIFICATION_NO_RETURN(thread_p, error) \ 253 #define CHECK_MODIFICATION_NO_RETURN(thread_p, error) \ 257 mod_disabled = logtb_is_tran_modification_disabled (thread_p); \ 260 er_set (ER_ERROR_SEVERITY, ARG_FILE_LINE, ER_DB_NO_MODIFICATIONS, \ 262 er_log_debug (ARG_FILE_LINE, "tdes->disable_modification = %d\n", \ 264 error = ER_DB_NO_MODIFICATIONS; \ 275 #define MAX_NUM_EXEC_QUERY_HISTORY 100 309 #if defined(SERVER_MODE) 311 pthread_mutex_t flush_mutex;
323 #define LOG_GROUP_COMMIT_INFO_INITIALIZER \ 324 { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER } 388 #define TRAN_UNIQUE_STATS_CHUNK_SIZE 128 410 #define COS_CLASSES_CHUNK_SIZE 64 496 sig_atomic_t interrupt;
546 #if defined (SERVER_MODE) || (defined (SA_MODE) && defined (__cplusplus)) 548 bool is_active_worker_transaction ()
const;
549 bool is_system_transaction ()
const;
550 bool is_system_main_transaction ()
const;
551 bool is_system_worker_transaction ()
const;
552 bool is_allowed_undo ()
const;
553 bool is_allowed_sysop ()
const;
554 bool is_under_sysop ()
const;
557 void unlock_topop ();
559 void on_sysop_start ();
560 void on_sysop_end ();
564 void lock_global_oldest_visible_mvccid ();
565 void unlock_global_oldest_visible_mvccid ();
590 sig_atomic_t num_interrupts;
598 #define TRANTABLE_INITIALIZER \ 599 { 0, 0, 0, 0, 0, 0, NULL, NULL } 641 #define GLOBAL_UNIQUE_STATS_TABLE_INITIALIZER \ 642 { LF_HASH_TABLE_INITIALIZER, LF_ENTRY_DESCRIPTOR_INITIALIZER, LF_FREELIST_INITIALIZER, LSA_INITIALIZER, false } 644 #define GLOBAL_UNIQUE_STATS_HASH_SIZE 1000 656 #if defined(SERVER_MODE) 657 LOG_LSA flushed_lsa_lower_bound;
658 pthread_mutex_t chkpt_lsa_lock;
665 #if defined(SERVER_MODE) 666 bool backup_in_progress;
767 #if !defined(SERVER_MODE) 768 #if !defined(LOG_TRAN_INDEX) 769 #define LOG_TRAN_INDEX 792 #if defined (SA_MODE) 793 #define LOG_THREAD_TRAN_MSG "%s" 794 #define LOG_THREAD_TRAN_ARGS(thread_p) "(SA_MODE)" 796 #define LOG_THREAD_TRAN_MSG "(thr=%d, trid=%d)" 797 #define LOG_THREAD_TRAN_ARGS(thread_p) thread_get_current_entry_index (), LOG_FIND_CURRENT_TDES (thread_p) 810 DKNPAGES npages, INT64 * db_creation);
822 bool decrypt_needed,
LOG_PAGE * log_pgptr);
825 const char *db_fullname,
const char *logpath,
826 const char *prefix_logname,
PGLENGTH * io_page_size,
827 PGLENGTH * log_page_size, INT64 * db_creation,
float *db_compatibility,
839 #if defined (ENABLE_UNUSED_FUNCTION) 840 extern void logpb_remove_append (
LOG_TDES * tdes);
850 const char *vlabel,
void *args),
void *args);
863 const char *prefix_logname);
865 const char *prefix_logname);
870 const char *backup_verbose_file_path,
int num_threads,
FILEIO_ZIP_METHOD zip_method,
871 FILEIO_ZIP_LEVEL zip_level,
int skip_activelog,
int sleep_msecs,
bool separate_keys);
875 const char *to_logpath,
const char *to_prefix_logname,
const char *toext_path,
876 const char *fileof_vols_and_copypaths);
878 const char *to_logpath,
const char *to_prefix_logname,
879 const char *toext_path,
const char *fileof_vols_and_renamepaths,
880 bool extern_rename,
bool force_delete);
882 const char *prefix_logname,
bool force_delete);
884 const char *prefix_logname,
char *first_vol,
bool * is_exist);
886 const char *fmt, ...);
888 const int lineno,
const char *fmt, ...);
898 const char *prefix_logname);
913 #if defined(ENABLE_UNUSED_FUNCTION) 914 extern bool logtb_am_i_sole_tran (
THREAD_ENTRY * thread_p);
915 extern void logtb_i_am_not_sole_tran (
THREAD_ENTRY * thread_p);
931 #if defined (ENABLE_UNUSED_FUNCTION) 932 extern int logtb_find_tran_index_host_pid (
THREAD_ENTRY * thread_p,
const char *host_name,
int process_id);
936 #if defined (ENABLE_UNUSED_FUNCTION) 937 extern int logtb_count_clients_with_type (
THREAD_ENTRY * thread_p,
int client_type);
948 const char **client_user_name,
const char **client_host_name,
953 #if defined (SERVER_MODE) 954 extern int logtb_find_client_tran_name_host_pid (
int &tran_index,
const char **client_prog_name,
955 const char **client_user_name,
const char **client_host_name,
957 #endif // SERVER_MODE 981 #if defined (ENABLE_UNUSED_FUNCTION) 1018 int n_nulls,
bool write_to_log);
1040 int num_nulls,
int num_keys);
1042 int null_delta,
int key_delta,
bool log);
1048 RECDES * record,
bool is_undo);
1069 LOG_LSA * first_null_block_lsa);
1075 bool interrupt_only);
1080 #if defined (SERVER_MODE) 1082 #endif // SERVER_MODE
int logpb_find_oldest_available_arv_num(THREAD_ENTRY *thread_p)
unsigned long log_buffer_full_count
TRANID logtb_find_current_tranid(THREAD_ENTRY *thread_p)
int num_coord_loose_end_indices
LOG_FLUSH_INFO flush_info
unsigned long gc_flush_count
bool logpb_need_wal(const LOG_LSA *lsa)
int logpb_initialize_log_names(THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname)
int logtb_find_tran_index(THREAD_ENTRY *thread_p, TRANID trid)
bool logtb_is_current_mvccid(THREAD_ENTRY *thread_p, MVCCID mvccid)
int xlogtb_get_mvcc_snapshot(THREAD_ENTRY *thread_p)
MVCC_SNAPSHOT * logtb_get_mvcc_snapshot(THREAD_ENTRY *thread_p)
void logtb_complete_mvcc(THREAD_ENTRY *thread_p, LOG_TDES *tdes, bool committed)
void logtb_disable_update(THREAD_ENTRY *thread_p)
MHT_TABLE * unique_stats_hash
LOG_PAGE * logpb_fetch_start_append_page_new(THREAD_ENTRY *thread_p)
void logtb_rv_assign_mvccid_for_undo_recovery(THREAD_ENTRY *thread_p, MVCCID mvccid)
int logpb_initialize_header(THREAD_ENTRY *thread_p, LOG_HEADER *loghdr, const char *prefix_logname, DKNPAGES npages, INT64 *db_creation)
LOG_UNIQUE_STATS global_stats
const char * logtb_find_current_client_name(THREAD_ENTRY *thread_p)
void logpb_fatal_error(THREAD_ENTRY *thread_p, bool logexit, const char *file_name, const int lineno, const char *fmt,...)
LOG_TRAN_UPDATE_STATS log_upd_stats
LOG_TRAN_CLASS_COS_CHUNK * next_chunk
LOG_PAGEID last_append_pageid
bool logtb_istran_finished(THREAD_ENTRY *thread_p, TRANID trid)
GLOBAL_UNIQUE_STATS * next
bool logpb_find_volume_info_exist(void)
enum log_getnewtrid LOG_GETNEWTRID
void logtb_release_tran_index(THREAD_ENTRY *thread_p, int tran_index)
unsigned long total_flush_count_by_trans
bool logtb_check_class_for_rr_isolation_err(const OID *class_oid)
LOG_2PC_COORDINATOR * coord
int logpb_set_page_checksum(THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr)
LOG_TRAN_BTID_UNIQUE_STATS_CHUNK * stats_first_chunk
int logtb_get_number_of_total_tran_indices(void)
LOG_PAGEID logpb_find_oldest_available_page_id(THREAD_ENTRY *thread_p)
LOG_LSA sysop_start_postpone_lsa
int logpb_fetch_page(THREAD_ENTRY *thread_p, const LOG_LSA *req_lsa, LOG_CS_ACCESS_MODE access_mode, LOG_PAGE *log_pgptr)
LOG_LSA * logtb_find_current_tran_lsa(THREAD_ENTRY *thread_p)
int logpb_remove_all_in_log_path(THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname)
const int LOG_SYSTEM_TRAN_INDEX
void logpb_vacuum_reset_log_header_cache(THREAD_ENTRY *thread_p, LOG_HEADER *loghdr)
TRAN_ABORT_REASON tran_abort_reason
bool logpb_is_smallest_lsa_in_archive(THREAD_ENTRY *thread_p)
int logtb_tran_update_all_global_unique_stats(THREAD_ENTRY *thread_p)
int xlogtb_kill_tran_index(THREAD_ENTRY *thread_p, int kill_tran_index, char *kill_user, char *kill_host, int kill_pid)
char * log_rv_pack_undo_record_changes(char *ptr, int offset_to_data, int old_data_size, int new_data_size, char *old_data)
int log_rv_redo_record_modify(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int disable_modifications
bool has_deadlock_priority
MVCCID logtb_find_current_mvccid(THREAD_ENTRY *thread_p)
int logpb_flush_page(THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr)
unsigned long total_group_commit_count
int logpb_background_archiving(THREAD_ENTRY *thread_p)
int logtb_rv_update_global_unique_stats_by_abs(THREAD_ENTRY *thread_p, BTID *btid, int num_oids, int num_nulls, int num_keys)
LOG_TRAN_BTID_UNIQUE_STATS_CHUNK * stats_current_chunk
void logpb_force_flush_pages(THREAD_ENTRY *thread_p)
int logtb_count_not_allowed_clients_in_maintenance_mode(THREAD_ENTRY *thread_p)
void xlogtb_dump_trantable(THREAD_ENTRY *thread_p, FILE *out_fp)
bool logtb_is_system_worker_tranid(TRANID trid)
void logtb_set_to_system_tran_index(THREAD_ENTRY *thread_p)
int logtb_find_current_client_type(THREAD_ENTRY *thread_p)
bool logtb_set_tran_index_interrupt(THREAD_ENTRY *thread_p, int tran_index, bool set)
void logtb_clear_tdes(THREAD_ENTRY *thread_p, LOG_TDES *tdes)
enum log_wrote_eot_log LOG_WRITE_EOT_LOG
enum log_setdirty LOG_SETDIRTY
const char * logtb_find_current_client_hostname(THREAD_ENTRY *thread_p)
THREAD_ENTRY * logtb_find_thread_by_tran_index_except_me(int tran_index)
VOLID logpb_add_volume(const char *db_fullname, VOLID new_volid, const char *new_volfullname, DISK_VOLPURPOSE new_volpurpose)
unsigned long gc_commit_request_count
LOG_LSA analysis_last_aborted_sysop_lsa
LOG_PAGEID logpb_get_page_id(LOG_PAGE *log_pgptr)
bool logtb_is_mvccid_committed(THREAD_ENTRY *thread_p, MVCCID mvccid)
unsigned long commit_count
int logpb_write_page_to_disk(THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr, LOG_PAGEID logical_pageid)
GLOBAL_UNIQUE_STATS_TABLE unique_stats_table
log_postpone_cache m_log_postpone_cache
LOG_PAGE * logpb_fetch_from_archive(THREAD_ENTRY *thread_p, LOG_PAGEID pageid, LOG_PAGE *log_pgptr, int *ret_arv_num, LOG_ARV_HEADER *arv_hdr, bool is_fatal)
double use_append_page_sec
LOG_PAGE * logpb_create_page(THREAD_ENTRY *thread_p, LOG_PAGEID pageid)
void logtb_define_trantable(THREAD_ENTRY *thread_p, int num_expected_tran_indices, int num_expected_locks)
int logtb_get_number_assigned_tran_indices(void)
void logtb_get_new_subtransaction_mvccid(THREAD_ENTRY *thread_p, MVCC_INFO *curr_mvcc_info)
LOG_GROUP_COMMIT_INFO group_commit_info
LOG_TDES * LOG_FIND_TDES(int tran_index)
int logpb_create_volume_info(const char *db_fullname)
enum lc_prefetch_flags LC_PREFETCH_FLAGS
bool block_global_oldest_active_until_commit
void logtb_enable_update(THREAD_ENTRY *thread_p)
const int LOG_SYSTEM_WORKER_INCR_TRANID
enum log_topops_type LOG_TOPOPS_TYPE
LOG_PHY_PAGEID logpb_to_physical_pageid(LOG_PAGEID logical_pageid)
void logpb_page_get_first_null_block_lsa(THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr, LOG_LSA *first_null_block_lsa)
void logpb_remove_archive_logs(THREAD_ENTRY *thread_p, const char *info_reason)
bool logtb_get_check_interrupt(THREAD_ENTRY *thread_p)
int logpb_check_and_reset_temp_lsa(THREAD_ENTRY *thread_p, VOLID volid)
int logpb_get_archive_number(THREAD_ENTRY *thread_p, LOG_PAGEID pageid)
TRAN_ISOLATION logtb_find_isolation(int tran_index)
int logtb_find_log_records_count(int tran_index)
void xlogpb_dump_stat(FILE *outfp)
tx_transient_class_registry m_modified_classes
void logpb_flush_header(THREAD_ENTRY *thread_p)
thread_resume_suspend_status
LF_ENTRY_DESCRIPTOR unique_stats_descriptor
int logpb_scan_volume_info(THREAD_ENTRY *thread_p, const char *db_fullname, VOLID ignore_volid, VOLID start_volid, int(*fun)(THREAD_ENTRY *thread_p, VOLID xvolid, const char *vlabel, void *args), void *args)
void logpb_set_dirty(THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr)
char * log_rv_pack_redo_record_changes(char *ptr, int offset_to_data, int old_data_size, int new_data_size, char *new_data)
unsigned long last_commit_count_while_using_a_page
double total_flush_hdr_sec_by_LFT
LOG_LSA tail_topresult_lsa
void logpb_force_flush_header_and_pages(THREAD_ENTRY *thread_p)
const char * logtb_find_client_hostname(int tran_index)
int logtb_get_client_ids(int tran_index, CLIENTIDS *client_info)
COUNT_OPTIM_STATE count_state
const char * log_Db_fullname
bool logtb_set_suppress_repl_on_transaction(THREAD_ENTRY *thread_p, int tran_index, int set)
unsigned long total_append_page_count
struct log_logging_stat LOG_LOGGING_STAT
void logpb_flush_pages_direct(THREAD_ENTRY *thread_p)
int logtb_get_global_unique_stats(THREAD_ENTRY *thread_p, BTID *btid, int *num_oids, int *num_nulls, int *num_keys)
unsigned long last_flush_count_by_trans
std::int64_t VACUUM_LOG_BLOCKID
void logpb_fatal_error_exit_immediately_wo_flush(THREAD_ENTRY *thread_p, const char *file_name, const int lineno, const char *fmt,...)
unsigned long flush_hdr_call_count
int logpb_copy_page_from_file(THREAD_ENTRY *thread_p, LOG_PAGEID pageid, LOG_PAGE *log_pgptr)
int logpb_fetch_start_append_page(THREAD_ENTRY *thread_p)
LOG_LOGGING_STAT log_Stat
int logtb_count_clients(THREAD_ENTRY *thread_p)
void logtb_set_current_user_name(THREAD_ENTRY *thread_p, const char *client_name)
void * logtb_realloc_topops_stack(LOG_TDES *tdes, int num_elms)
unsigned long last_commit_count_in_flush_pages
void logpb_initialize_logging_statistics(void)
int logpb_initialize_pool(THREAD_ENTRY *thread_p)
int logpb_recreate_volume_info(THREAD_ENTRY *thread_p)
TRAN_ISOLATION logtb_find_current_isolation(THREAD_ENTRY *thread_p)
int logtb_initialize_global_unique_stats_table(THREAD_ENTRY *thread_p)
bool logtb_is_interrupted_tran(THREAD_ENTRY *thread_p, bool clear, bool *continue_checking, int tran_index)
void logpb_dump_log_page_area(THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr, int offset, int length)
LOG_LSA final_restored_lsa
void logpb_invalid_all_append_pages(THREAD_ENTRY *thread_p)
enum log_recvphase LOG_RECVPHASE
int logtb_find_interrupt(int tran_index, bool *interrupt)
void logtb_set_user_name(int tran_index, const char *client_name)
void logpb_decache_archive_info(THREAD_ENTRY *thread_p)
LOG_TRAN_BTID_UNIQUE_STATS_CHUNK * next_chunk
multi_index_unique_stats m_multiupd_stats
bool logtb_is_current_active(THREAD_ENTRY *thread_p)
GLOBAL_UNIQUE_STATS * stack
int logtb_update_global_unique_stats_by_delta(THREAD_ENTRY *thread_p, BTID *btid, int oid_delta, int null_delta, int key_delta, bool log)
void logtb_slam_transaction(THREAD_ENTRY *thread_p, int tran_index)
void logtb_finalize_global_unique_stats_table(THREAD_ENTRY *thread_p)
volatile sig_atomic_t num_interrupts
int num_prepared_loose_end_indices
LOG_LSA * log_startof_nxrec(THREAD_ENTRY *thread_p, LOG_LSA *lsa, bool canuse_forwaddr)
LOG_PAGE * logpb_create_header_page(THREAD_ENTRY *thread_p)
VACUUM_LOG_BLOCKID logpb_last_complete_blockid(void)
DKNPAGES chkpt_every_npages
void logpb_debug_check_log_page(THREAD_ENTRY *thread_p, void *log_pgptr_ptr)
char log_Name_removed_archive[]
unsigned long last_group_commit_count
THREAD_ENTRY * logtb_find_thread_by_tran_index(int tran_index)
int logpb_backup(THREAD_ENTRY *thread_p, int num_perm_vols, const char *allbackup_path, FILEIO_BACKUP_LEVEL backup_level, bool delete_unneeded_logarchives, const char *backup_verbose_file_path, int num_threads, FILEIO_ZIP_METHOD zip_method, FILEIO_ZIP_LEVEL zip_level, int skip_activelog, int sleep_msecs, bool separate_keys)
int logtb_invalidate_snapshot_data(THREAD_ENTRY *thread_p)
double last_flush_sec_by_trans
int num_log_records_written
int logtb_get_current_tran_index(void)
void logpb_initialize_arv_page_info_table(void)
int logtb_define_trantable_log_latch(THREAD_ENTRY *thread_p, int num_expected_tran_indices)
int logtb_reflect_global_unique_stats_to_btree(THREAD_ENTRY *thread_p)
bool logpb_exist_log(THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname)
int logtb_assign_tran_index(THREAD_ENTRY *thread_p, TRANID trid, TRAN_STATE state, const BOOT_CLIENT_CREDENTIAL *client_credential, TRAN_STATE *current_state, int wait_msecs, TRAN_ISOLATION isolation)
int logtb_find_client_type(int tran_index)
int logpb_restore(THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname, bo_restart_arg *r_args)
bool logtb_has_deadlock_priority(int tran_index)
int logtb_tran_update_unique_stats(THREAD_ENTRY *thread_p, const BTID *btid, int n_keys, int n_oids, int n_nulls, bool write_to_log)
int logpb_read_page_from_file(THREAD_ENTRY *thread_p, LOG_PAGEID pageid, LOG_CS_ACCESS_MODE access_mode, LOG_PAGE *log_pgptr)
LOG_UNIQUE_STATS tran_stats
int log_rv_undo_record_modify(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
LOG_LSA analysis_last_aborted_sysop_start_lsa
LF_HASH_TABLE unique_stats_hash
LOG_TRAN_CLASS_COS * logtb_tran_find_class_cos(THREAD_ENTRY *thread_p, const OID *class_oid, bool create)
bool logtb_set_check_interrupt(THREAD_ENTRY *thread_p, bool flag)
void logtb_initialize_tdes(LOG_TDES *tdes, int tran_index)
LOG_PRIOR_LSA_INFO prior_info
int logpb_remove_archive_logs_exceed_limit(THREAD_ENTRY *thread_p, int max_count)
void log_find_unilaterally_largest_undo_lsa(THREAD_ENTRY *thread_p, LOG_LSA &max_undo_lsa)
int logtb_tran_prepare_count_optim_classes(THREAD_ENTRY *thread_p, const char **classes, LC_PREFETCH_FLAGS *flags, int n_classes)
PGLENGTH logpb_find_header_parameters(THREAD_ENTRY *thread_p, const bool force_read_log_header, const char *db_fullname, const char *logpath, const char *prefix_logname, PGLENGTH *io_page_size, PGLENGTH *log_page_size, INT64 *db_creation, float *db_compatibility, int *db_charset)
struct log_repl * repl_records
TRANID logtb_find_tranid(int tran_index)
MVCCID logtb_get_current_mvccid(THREAD_ENTRY *thread_p)
LOG_PAGEID run_nxchkpt_atpageid
bool logtb_is_interrupted(THREAD_ENTRY *thread_p, bool clear, bool *continue_checking)
void logtb_set_current_tran_index(THREAD_ENTRY *thread_p, int tran_index)
void logpb_set_tde_algorithm(THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr, const TDE_ALGORITHM tde_algo)
LOG_TDES * LOG_FIND_CURRENT_TDES(THREAD_ENTRY *thread_p=NULL)
void logtb_free_tran_index(THREAD_ENTRY *thread_p, int tran_index)
void log_set_db_restore_time(THREAD_ENTRY *thread_p, INT64 db_restore_time)
TDE_ALGORITHM logpb_get_tde_algorithm(const LOG_PAGE *log_pgptr)
double total_flush_sec_by_trans
int logpb_page_check_corruption(THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr, bool *is_page_corrupted)
void logpb_flush_log_for_wal(THREAD_ENTRY *thread_p, const LOG_LSA *lsa_ptr)
int logtb_is_tran_modification_disabled(THREAD_ENTRY *thread_p)
int db_Disable_modifications
int logpb_prior_lsa_append_all_list(THREAD_ENTRY *thread_p)
unsigned long direct_flush_count
int logpb_check_exist_any_volumes(THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname, char *first_vol, bool *is_exist)
LOG_PAGE * log_pbfetch(LOG_PAGEID pageid)
BACKGROUND_ARCHIVING_INFO bg_archive_info
MHT_TABLE * classes_cos_hash
unsigned long total_sync_count
const char * tran_abort_reason_to_string(TRAN_ABORT_REASON val)
int logpb_read_page_from_active_log(THREAD_ENTRY *thread_p, LOG_PAGEID pageid, int num_pages, bool decrypt_needed, LOG_PAGE *log_pgptr)
void logpb_fetch_header_with_buffer(THREAD_ENTRY *thread_p, LOG_HEADER *hdr, LOG_PAGE *log_pgptr)
int xlogtb_kill_or_interrupt_tran(THREAD_ENTRY *thread_p, int tran_id, bool is_dba_group_member, bool interrupt_only)
LOG_UNIQUE_STATS unique_stats
void logpb_flush_pages(THREAD_ENTRY *thread_p, LOG_LSA *flush_lsa)
void logpb_copy_from_log(THREAD_ENTRY *thread_p, char *area, int length, LOG_LSA *log_lsa, LOG_PAGE *log_pgptr)
LF_FREELIST unique_stats_freelist
bool logpb_is_pool_initialized(void)
double last_flush_hdr_sec_by_LFT
bool logpb_is_page_in_archive(LOG_PAGEID pageid)
void logtb_tran_reset_count_optim_state(THREAD_ENTRY *thread_p)
int logpb_copy_database(THREAD_ENTRY *thread_p, VOLID num_perm_vols, const char *to_db_fullname, const char *to_logpath, const char *to_prefix_logname, const char *toext_path, const char *fileof_vols_and_copypaths)
int logtb_find_client_name_host_pid(int tran_index, const char **client_prog_name, const char **client_user_name, const char **client_host_name, int *client_pid)
TRAN_STATE logtb_find_state(int tran_index)
unsigned long async_commit_request_count
LOG_TRAN_CLASS_COS_CHUNK * cos_first_chunk
void logpb_dump_checkpoint_trans(FILE *out_fp, int length, void *data)
const TRANID LOG_SYSTEM_WORKER_FIRST_TRANID
volatile sig_atomic_t interrupt
LOG_TDES * logtb_get_system_tdes(THREAD_ENTRY *thread_p=NULL)
void log_recovery(THREAD_ENTRY *thread_p, int ismedia_crash, time_t *stopat)
void logpb_fetch_header(THREAD_ENTRY *thread_p, LOG_HEADER *hdr)
bool logtb_am_i_dba_client(THREAD_ENTRY *thread_p)
int num_transient_classnames
#define LOG_FIND_THREAD_TRAN_INDEX(thrd)
LOG_TOPOPS_ADDRESSES * stack
enum log_cs_access_mode LOG_CS_ACCESS_MODE
unsigned long total_commit_count_in_flush_pages
unsigned long log_buffer_flush_count_by_replacement
int logtb_get_new_tran_id(THREAD_ENTRY *thread_p, LOG_TDES *tdes)
LOG_TDES * logtb_rv_find_allocate_tran_index(THREAD_ENTRY *thread_p, TRANID trid, const LOG_LSA *log_lsa)
unsigned long flushall_append_pages_call_count
void logtb_undefine_trantable(THREAD_ENTRY *thread_p)
bool logtb_is_active(THREAD_ENTRY *thread_p, TRANID trid)
void logtb_find_smallest_lsa(THREAD_ENTRY *thread_p, LOG_LSA *lsa)
int logpb_delete(THREAD_ENTRY *thread_p, VOLID num_perm_vols, const char *db_fullname, const char *logpath, const char *prefix_logname, bool force_delete)
void logtb_free_tran_index_with_undo_lsa(THREAD_ENTRY *thread_p, const LOG_LSA *undo_lsa)
LOG_PAGEID logpb_checkpoint(THREAD_ENTRY *thread_p)
LOG_TRAN_CLASS_COS_CHUNK * cos_current_chunk
void logpb_finalize_pool(THREAD_ENTRY *thread_p)
int logtb_set_num_loose_end_trans(THREAD_ENTRY *thread_p)
void logtb_find_smallest_and_largest_active_pages(THREAD_ENTRY *thread_p, LOG_PAGEID *smallest, LOG_PAGEID *largest)
int logtb_delete_global_unique_stats(THREAD_ENTRY *thread_p, BTID *btid)
void logpb_dump(THREAD_ENTRY *thread_p, FILE *out_fp)
void logtb_set_current_user_active(THREAD_ENTRY *thread_p, bool is_user_active)
char * logpb_backup_level_info_to_string(char *buf, int buf_size, const LOG_HDR_BKUP_LEVEL_INFO *info)
LOG_LSA tran_start_postpone_lsa
void logpb_create_log_info(const char *logname_info, const char *db_fullname)
LOG_TRAN_BTID_UNIQUE_STATS * logtb_tran_find_btid_stats(THREAD_ENTRY *thread_p, const BTID *btid, bool create)
int logpb_copy_page_from_log_buffer(THREAD_ENTRY *thread_p, LOG_PAGEID pageid, LOG_PAGE *log_pgptr)
double gc_total_wait_time
void log_set_ha_promotion_time(THREAD_ENTRY *thread_p, INT64 ha_promotion_time)
void logtb_finalize_tdes(THREAD_ENTRY *thread_p, LOG_TDES *tdes)
int logtb_find_wait_msecs(int tran_index)
LOG_LSA atomic_sysop_start_lsa
enum tran_abort_reason TRAN_ABORT_REASON
int logtb_descriptors_start_scan(THREAD_ENTRY *thread_p, int type, DB_VALUE **arg_values, int arg_cnt, void **ctx)
int logtb_tran_update_btid_unique_stats(THREAD_ENTRY *thread_p, const BTID *btid, int n_keys, int n_oids, int n_nulls)
unsigned long total_commit_count_while_using_a_page
enum count_optim_state COUNT_OPTIM_STATE
void logtb_complete_sub_mvcc(THREAD_ENTRY *thread_p, LOG_TDES *tdes)
#define MAX_NUM_EXEC_QUERY_HISTORY
int log_rv_undoredo_record_partial_changes(THREAD_ENTRY *thread_p, char *rcv_data, int rcv_data_length, RECDES *record, bool is_undo)
void clear(cub_regex_object *®ex, char *&pattern)
const char * logtb_find_client_name(int tran_index)
char log_Name_bg_archive[]
int logpb_rename_all_volumes_files(THREAD_ENTRY *thread_p, VOLID num_perm_vols, const char *to_db_fullname, const char *to_logpath, const char *to_prefix_logname, const char *toext_path, const char *fileof_vols_and_renamepaths, bool extern_rename, bool force_delete)
void logpb_invalidate_pool(THREAD_ENTRY *thread_p)