26 #if !defined (SERVER_MODE) && !defined (SA_MODE) 27 #error Belongs to server module 45 #define VACUUM_ER_LOG_NONE 0 46 #define VACUUM_ER_LOG_ERROR 1 47 #define VACUUM_ER_LOG_WARNING 2 48 #define VACUUM_ER_LOG_LOGGING 4 49 #define VACUUM_ER_LOG_BTREE 8 50 #define VACUUM_ER_LOG_HEAP 16 51 #define VACUUM_ER_LOG_DROPPED_FILES 32 52 #define VACUUM_ER_LOG_VACUUM_DATA 64 53 #define VACUUM_ER_LOG_WORKER 128 54 #define VACUUM_ER_LOG_MASTER 256 55 #define VACUUM_ER_LOG_RECOVERY 512 56 #define VACUUM_ER_LOG_TOPOPS 1024 57 #define VACUUM_ER_LOG_ARCHIVES 2048 58 #define VACUUM_ER_LOG_JOBS 4096 59 #define VACUUM_ER_LOG_FLUSH_DATA 8192 61 #define VACUUM_ER_LOG_VERBOSE 0xFFFFFFFF 62 #define VACUUM_IS_ER_LOG_LEVEL_SET(er_log_level) \ 63 ((prm_get_integer_value (PRM_ID_ER_LOG_VACUUM) & (er_log_level)) != 0) 65 #define vacuum_er_log(er_log_level, msg, ...) \ 66 if (VACUUM_IS_ER_LOG_LEVEL_SET (er_log_level)) \ 67 _er_log_debug (ARG_FILE_LINE, "VACUUM " LOG_THREAD_TRAN_MSG ": " msg "\n", \ 68 LOG_THREAD_TRAN_ARGS (thread_get_thread_entry_info ()), __VA_ARGS__) 69 #define vacuum_er_log_error(er_log_level, msg, ...) \ 70 if (VACUUM_IS_ER_LOG_LEVEL_SET (VACUUM_ER_LOG_ERROR | er_log_level)) \ 71 _er_log_debug (ARG_FILE_LINE, "VACUUM ERROR " LOG_THREAD_TRAN_MSG ": " msg "\n", \ 72 LOG_THREAD_TRAN_ARGS (thread_get_thread_entry_info ()), __VA_ARGS__) 73 #define vacuum_er_log_warning(er_log_level, msg, ...) \ 74 if (VACUUM_IS_ER_LOG_LEVEL_SET (VACUUM_ER_LOG_WARNING | er_log_level)) \ 75 _er_log_debug (ARG_FILE_LINE, "VACUUM WARNING " LOG_THREAD_TRAN_MSG ": " msg "\n", \ 76 LOG_THREAD_TRAN_ARGS (thread_get_thread_entry_info ()), __VA_ARGS__) 78 #define VACUUM_LOG_ADD_DROPPED_FILE_POSTPONE true 79 #define VACUUM_LOG_ADD_DROPPED_FILE_UNDO false 82 #define VACUUM_LOG_BLOCK_PAGES_DEFAULT 31 131 #define VACUUM_MAX_WORKER_COUNT 50 151 return thread_p->vacuum_worker;
215 #define VACUUM_IS_THREAD_VACUUM vacuum_is_thread_vacuum 216 #define VACUUM_IS_THREAD_VACUUM_WORKER vacuum_is_thread_vacuum_worker 217 #define VACUUM_IS_THREAD_VACUUM_MASTER vacuum_is_thread_vacuum_master 220 VFID * dropped_files_vfid,
bool is_restore);
248 MVCCID threshold_mvccid,
HFID *
hfid,
bool * reusable,
bool was_interrupted);
259 bool postpone_or_undo);
274 #if defined (SERVER_MODE) 275 extern void vacuum_notify_es_deleted (
THREAD_ENTRY * thread_p,
const char *uri);
int vacuum_rv_undo_vacuum_heap_record(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
LOG_PAGEID prefetch_last_pageid
int vacuum_reset_data_after_copydb(THREAD_ENTRY *thread_p)
bool vacuum_is_safe_to_remove_archives(void)
VACUUM_HEAP_OBJECT * heap_objects
void vacuum_rv_redo_data_finished_dump(FILE *fp, int length, void *data)
enum vacuum_worker_state VACUUM_WORKER_STATE
DISK_ISVALID vacuum_check_not_vacuumed_recdes(THREAD_ENTRY *thread_p, OID *oid, OID *class_oid, RECDES *recdes, int btree_node_type)
int vacuum_load_dropped_files_from_disk(THREAD_ENTRY *thread_p)
LOG_PAGEID prefetch_first_pageid
VACUUM_LOG_BLOCKID vacuum_get_log_blockid(LOG_PAGEID pageid)
int vacuum_data_load_and_recover(THREAD_ENTRY *thread_p)
int vacuum_consume_buffer_log_blocks(THREAD_ENTRY *thread_p)
int vacuum_initialize(THREAD_ENTRY *thread_p, int vacuum_log_block_npages, VFID *vacuum_data_vfid, VFID *dropped_files_vfid, bool is_restore)
int undo_data_buffer_capacity
int vacuum_rv_undoredo_data_set_link(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
bool vacuum_is_mvccid_vacuumed(MVCCID id)
int vacuum_rv_es_nop(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
struct log_zip * log_zip_p
void vacuum_notify_server_shutdown(void)
DISK_ISVALID vacuum_check_not_vacuumed_rec_header(THREAD_ENTRY *thread_p, OID *oid, OID *class_oid, MVCC_REC_HEADER *rec_header, int btree_node_type)
int vacuum_rv_redo_vacuum_heap_record(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
void vacuum_sa_reflect_last_blockid(THREAD_ENTRY *thread_p)
int heap_objects_capacity
void vacuum_rv_undoredo_data_set_link_dump(FILE *fp, int length, void *data)
STATIC_INLINE bool vacuum_is_thread_vacuum_master(const THREAD_ENTRY *thread_p) __attribute__((ALWAYS_INLINE))
STATIC_INLINE VACUUM_WORKER * vacuum_get_vacuum_worker(THREAD_ENTRY *thread_p) __attribute__((ALWAYS_INLINE))
STATIC_INLINE bool vacuum_is_process_log_for_vacuum(THREAD_ENTRY *thread_p) __attribute__((ALWAYS_INLINE))
int vacuum_rv_redo_vacuum_complete(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int vacuum_create_file_for_vacuum_data(THREAD_ENTRY *thread_p, VFID *vacuum_data_vfid)
STATIC_INLINE bool vacuum_worker_state_is_inactive(THREAD_ENTRY *thread_p) __attribute__((ALWAYS_INLINE))
void vacuum_notify_server_crashed(LOG_LSA *recovery_lsa)
std::int64_t VACUUM_LOG_BLOCKID
int xvacuum(THREAD_ENTRY *thread_p)
int vacuum_rv_redo_add_dropped_file(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
void xvacuum_dump(THREAD_ENTRY *thread_p, FILE *outfp)
int vacuum_rv_redo_initialize_data_page(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
STATIC_INLINE bool vacuum_is_thread_vacuum(const THREAD_ENTRY *thread_p) __attribute__((ALWAYS_INLINE))
int vacuum_rv_redo_data_finished(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
void vacuum_produce_log_block_data(THREAD_ENTRY *thread_p)
int vacuum_is_file_dropped(THREAD_ENTRY *thread_p, bool *is_file_dropped, VFID *vfid, MVCCID mvccid)
int vacuum_heap_page(THREAD_ENTRY *thread_p, VACUUM_HEAP_OBJECT *heap_objects, int n_heap_objects, MVCCID threshold_mvccid, HFID *hfid, bool *reusable, bool was_interrupted)
LOG_PAGEID vacuum_min_log_pageid_to_keep(THREAD_ENTRY *thread_p)
void vacuum_stop_workers(THREAD_ENTRY *thread_p)
VACUUM_WORKER_STATE state
STATIC_INLINE bool vacuum_worker_state_is_process_log(THREAD_ENTRY *thread_p) __attribute__((ALWAYS_INLINE))
void vacuum_stop_master(THREAD_ENTRY *thread_p)
char * prefetch_log_buffer
int vacuum_boot(THREAD_ENTRY *thread_p)
int vacuum_rv_notify_dropped_file(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int vacuum_rv_redo_start_job(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
STATIC_INLINE bool vacuum_worker_state_is_execute(THREAD_ENTRY *thread_p) __attribute__((ALWAYS_INLINE))
int vacuum_rv_redo_cleanup_dropped_files(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int vacuum_rv_redo_append_data(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int vacuum_rv_redo_remove_ovf_insid(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int vacuum_rv_set_next_page_dropped_files(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
void vacuum_finalize(THREAD_ENTRY *thread_p)
void vacuum_rv_redo_append_data_dump(FILE *fp, int length, void *data)
int vacuum_create_file_for_dropped_files(THREAD_ENTRY *thread_p, VFID *dropped_files_vfid)
int vacuum_rv_undo_add_dropped_file(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
STATIC_INLINE bool vacuum_is_thread_vacuum_worker(const THREAD_ENTRY *thread_p) __attribute__((ALWAYS_INLINE))
int vacuum_rv_redo_vacuum_heap_page(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
int vacuum_rv_check_at_undo(THREAD_ENTRY *thread_p, PAGE_PTR pgptr, INT16 slotid, INT16 rec_type)
int vacuum_rv_replace_dropped_file(THREAD_ENTRY *thread_p, LOG_RCV *rcv)
STATIC_INLINE void vacuum_set_worker_state(THREAD_ENTRY *thread_p, VACUUM_WORKER_STATE state) __attribute__((ALWAYS_INLINE))
void vacuum_log_add_dropped_file(THREAD_ENTRY *thread_p, const VFID *vfid, const OID *class_oid, bool postpone_or_undo)
STATIC_INLINE VACUUM_WORKER_STATE vacuum_get_worker_state(THREAD_ENTRY *thread_p) __attribute__((ALWAYS_INLINE))