CUBRID Engine
latest
|
#include "dbtype_def.h"
#include "disk_manager.h"
#include "log_impl.h"
#include "log_lsa.hpp"
#include "log_postpone_cache.hpp"
#include "porting_inline.hpp"
#include "recovery.h"
#include "storage_common.h"
#include "system_parameter.h"
#include "thread_entry.hpp"
#include <assert.h>
Go to the source code of this file.
Classes | |
struct | vacuum_heap_object |
struct | vacuum_worker |
Macros | |
#define | VACUUM_ER_LOG_NONE 0 /* No logging */ |
#define | VACUUM_ER_LOG_ERROR 1 /* Log vacuum errors */ |
#define | VACUUM_ER_LOG_WARNING 2 /* Log vacuum warnings */ |
#define | VACUUM_ER_LOG_LOGGING 4 /* Log adding MVCC op log entries. */ |
#define | VACUUM_ER_LOG_BTREE 8 /* Log vacuum b-trees */ |
#define | VACUUM_ER_LOG_HEAP 16 /* Log vacuum heap */ |
#define | VACUUM_ER_LOG_DROPPED_FILES 32 /* Log dropped classes */ |
#define | VACUUM_ER_LOG_VACUUM_DATA 64 /* Log vacuum data */ |
#define | VACUUM_ER_LOG_WORKER 128 /* Log vacuum worker specific activity. */ |
#define | VACUUM_ER_LOG_MASTER 256 /* Log vacuum master specific activity. */ |
#define | VACUUM_ER_LOG_RECOVERY 512 /* Log recovery of vacuum data and dropped classes/indexes */ |
#define | VACUUM_ER_LOG_TOPOPS 1024 /* Log starting/ending system operations and their recovery. */ |
#define | VACUUM_ER_LOG_ARCHIVES 2048 /* Log when archives are removed or when vacuum fails to find archives. */ |
#define | VACUUM_ER_LOG_JOBS 4096 /* Log job generation, interrupt, finish */ |
#define | VACUUM_ER_LOG_FLUSH_DATA 8192 /* Log flushing vacuum data. */ |
#define | VACUUM_ER_LOG_VERBOSE 0xFFFFFFFF /* Log all activity related to vacuum. */ |
#define | VACUUM_IS_ER_LOG_LEVEL_SET(er_log_level) ((prm_get_integer_value (PRM_ID_ER_LOG_VACUUM) & (er_log_level)) != 0) |
#define | vacuum_er_log(er_log_level, msg, ...) |
#define | vacuum_er_log_error(er_log_level, msg, ...) |
#define | vacuum_er_log_warning(er_log_level, msg, ...) |
#define | VACUUM_LOG_ADD_DROPPED_FILE_POSTPONE true |
#define | VACUUM_LOG_ADD_DROPPED_FILE_UNDO false |
#define | VACUUM_LOG_BLOCK_PAGES_DEFAULT 31 |
#define | VACUUM_MAX_WORKER_COUNT 50 |
#define | VACUUM_IS_THREAD_VACUUM vacuum_is_thread_vacuum |
#define | VACUUM_IS_THREAD_VACUUM_WORKER vacuum_is_thread_vacuum_worker |
#define | VACUUM_IS_THREAD_VACUUM_MASTER vacuum_is_thread_vacuum_master |
Typedefs | |
typedef enum vacuum_worker_state | VACUUM_WORKER_STATE |
typedef struct vacuum_heap_object | VACUUM_HEAP_OBJECT |
typedef struct vacuum_worker | VACUUM_WORKER |
Enumerations | |
enum | vacuum_worker_state { VACUUM_WORKER_STATE_INACTIVE, VACUUM_WORKER_STATE_PROCESS_LOG, VACUUM_WORKER_STATE_EXECUTE } |
#define vacuum_er_log | ( | er_log_level, | |
msg, | |||
... | |||
) |
Definition at line 65 of file vacuum.h.
Referenced by heap_page_rv_chain_update(), heap_page_set_vacuum_status_none(), heap_page_update_chain_after_mvcc_op(), heap_remove_page_on_vacuum(), vacuum_job_cursor::increment_blockid(), vacuum_job_cursor::load(), log_sysop_end_final(), log_sysop_start(), logpb_backup(), logpb_remove_archive_logs_exceed_limit(), logpb_vacuum_reset_log_header_cache(), prior_lsa_next_record_internal(), vacuum_job_cursor::readjust_to_vacuum_data_changes(), vacuum_job_cursor::unload(), vacuum_add_dropped_file(), vacuum_cleanup_dropped_files(), vacuum_consume_buffer_log_blocks(), vacuum_data_empty_page(), vacuum_data_empty_update_last_blockid(), vacuum_data_initialize_new_page(), vacuum_data_load_and_recover(), vacuum_data_mark_finished(), vacuum_data_unload_first_and_last_page(), vacuum_fetch_log_page(), vacuum_find_dropped_file(), vacuum_finished_block_vacuum(), vacuum_heap_page(), vacuum_log_add_dropped_file(), vacuum_log_prefetch_vacuum_block(), vacuum_notify_all_workers_dropped_file(), vacuum_process_log_block(), vacuum_process_log_record(), vacuum_produce_log_block_data(), vacuum_recover_lost_block_data(), vacuum_reset_data_after_copydb(), vacuum_rv_redo_add_dropped_file(), vacuum_rv_redo_cleanup_dropped_files(), vacuum_rv_redo_vacuum_heap_page(), vacuum_rv_replace_dropped_file(), vacuum_rv_set_next_page_dropped_files(), vacuum_sa_reflect_last_blockid(), vacuum_update_keep_from_log_pageid(), xheap_reclaim_addresses(), and xvacuum().
#define VACUUM_ER_LOG_ARCHIVES 2048 /* Log when archives are removed or when vacuum fails to find archives. */ |
Definition at line 57 of file vacuum.h.
Referenced by logpb_backup(), logpb_read_page_from_file(), and logpb_remove_archive_logs_exceed_limit().
#define VACUUM_ER_LOG_BTREE 8 /* Log vacuum b-trees */ |
Definition at line 49 of file vacuum.h.
Referenced by btree_key_delete_remove_object(), btree_key_remove_insert_mvccid(), and vacuum_process_log_block().
#define VACUUM_ER_LOG_DROPPED_FILES 32 /* Log dropped classes */ |
Definition at line 51 of file vacuum.h.
Referenced by vacuum_add_dropped_file(), vacuum_cleanup_dropped_files(), vacuum_find_dropped_file(), vacuum_heap_get_hfid_and_file_type(), vacuum_log_add_dropped_file(), vacuum_notify_all_workers_dropped_file(), vacuum_process_log_block(), vacuum_process_log_record(), vacuum_rv_redo_add_dropped_file(), vacuum_rv_redo_cleanup_dropped_files(), and vacuum_rv_replace_dropped_file().
#define VACUUM_ER_LOG_ERROR 1 /* Log vacuum errors */ |
Definition at line 46 of file vacuum.h.
Referenced by spage_vacuum_slot(), vacuum_finished_block_vacuum(), vacuum_log_prefetch_vacuum_block(), and vacuum_produce_log_block_data().
#define vacuum_er_log_error | ( | er_log_level, | |
msg, | |||
... | |||
) |
Definition at line 69 of file vacuum.h.
Referenced by heap_remove_page_on_vacuum(), logpb_read_page_from_file(), spage_vacuum_slot(), vacuum_add_dropped_file(), vacuum_collect_heap_objects(), vacuum_consume_buffer_log_blocks(), vacuum_data_empty_page(), vacuum_data_mark_finished(), vacuum_finished_block_vacuum(), vacuum_heap(), vacuum_heap_get_hfid_and_file_type(), vacuum_heap_page(), vacuum_heap_prepare_record(), vacuum_heap_record_insid_and_prev_version(), vacuum_log_prefetch_vacuum_block(), vacuum_process_log_block(), vacuum_process_log_record(), vacuum_produce_log_block_data(), vacuum_rv_redo_add_dropped_file(), vacuum_rv_redo_vacuum_heap_page(), vacuum_rv_replace_dropped_file(), and vacuum_worker_allocate_resources().
#define VACUUM_ER_LOG_FLUSH_DATA 8192 /* Log flushing vacuum data. */ |
#define VACUUM_ER_LOG_HEAP 16 /* Log vacuum heap */ |
Definition at line 50 of file vacuum.h.
Referenced by heap_page_rv_chain_update(), heap_page_set_vacuum_status_none(), heap_page_update_chain_after_mvcc_op(), heap_remove_page_on_vacuum(), vacuum_heap(), vacuum_heap_get_hfid_and_file_type(), vacuum_heap_page(), vacuum_heap_prepare_record(), vacuum_heap_record_insid_and_prev_version(), vacuum_process_log_block(), vacuum_rv_redo_vacuum_heap_page(), and xheap_reclaim_addresses().
#define VACUUM_ER_LOG_JOBS 4096 /* Log job generation, interrupt, finish */ |
Definition at line 58 of file vacuum.h.
Referenced by vacuum_job_cursor::increment_blockid(), vacuum_job_cursor::load(), vacuum_job_cursor::readjust_to_vacuum_data_changes(), vacuum_job_cursor::unload(), vacuum_data_mark_finished(), vacuum_data_unload_first_and_last_page(), vacuum_finished_block_vacuum(), vacuum_process_log_block(), vacuum_verify_vacuum_data_debug(), and xvacuum().
#define VACUUM_ER_LOG_LOGGING 4 /* Log adding MVCC op log entries. */ |
Definition at line 48 of file vacuum.h.
Referenced by prior_lsa_next_record_internal(), vacuum_fetch_log_page(), vacuum_process_log_record(), and vacuum_produce_log_block_data().
#define VACUUM_ER_LOG_MASTER 256 /* Log vacuum master specific activity. */ |
Definition at line 54 of file vacuum.h.
Referenced by logpb_read_page_from_file(), vacuum_data_unload_first_and_last_page(), vacuum_log_prefetch_vacuum_block(), and xvacuum().
#define VACUUM_ER_LOG_NONE 0 /* No logging */ |
Definition at line 45 of file vacuum.h.
Referenced by vacuum_find_dropped_file().
#define VACUUM_ER_LOG_RECOVERY 512 /* Log recovery of vacuum data and dropped classes/indexes */ |
Definition at line 55 of file vacuum.h.
Referenced by heap_page_rv_chain_update(), vacuum_add_dropped_file(), vacuum_cleanup_dropped_files(), vacuum_data_load_and_recover(), vacuum_recover_lost_block_data(), vacuum_rv_redo_add_dropped_file(), vacuum_rv_redo_cleanup_dropped_files(), vacuum_rv_redo_vacuum_heap_page(), vacuum_rv_replace_dropped_file(), and vacuum_rv_set_next_page_dropped_files().
#define VACUUM_ER_LOG_TOPOPS 1024 /* Log starting/ending system operations and their recovery. */ |
Definition at line 56 of file vacuum.h.
Referenced by log_sysop_end_final(), and log_sysop_start().
#define VACUUM_ER_LOG_VACUUM_DATA 64 /* Log vacuum data */ |
Definition at line 52 of file vacuum.h.
Referenced by logpb_vacuum_reset_log_header_cache(), vacuum_consume_buffer_log_blocks(), vacuum_data_empty_page(), vacuum_data_empty_update_last_blockid(), vacuum_data_initialize_new_page(), vacuum_data_load_and_recover(), vacuum_data_mark_finished(), vacuum_finished_block_vacuum(), vacuum_produce_log_block_data(), vacuum_recover_lost_block_data(), vacuum_reset_data_after_copydb(), vacuum_sa_reflect_last_blockid(), vacuum_update_keep_from_log_pageid(), and vacuum_verify_vacuum_data_debug().
#define VACUUM_ER_LOG_VERBOSE 0xFFFFFFFF /* Log all activity related to vacuum. */ |
#define VACUUM_ER_LOG_WARNING 2 /* Log vacuum warnings */ |
Definition at line 47 of file vacuum.h.
Referenced by vacuum_fetch_log_page(), and vacuum_finished_block_vacuum().
#define vacuum_er_log_warning | ( | er_log_level, | |
msg, | |||
... | |||
) |
Definition at line 73 of file vacuum.h.
Referenced by btree_key_delete_remove_object(), btree_key_remove_insert_mvccid(), heap_remove_page_on_vacuum(), vacuum_data_mark_finished(), vacuum_finished_block_vacuum(), vacuum_heap_get_hfid_and_file_type(), vacuum_heap_page(), and vacuum_verify_vacuum_data_debug().
#define VACUUM_ER_LOG_WORKER 128 /* Log vacuum worker specific activity. */ |
Definition at line 53 of file vacuum.h.
Referenced by btree_key_delete_remove_object(), btree_key_remove_insert_mvccid(), log_sysop_start(), vacuum_boot(), vacuum_collect_heap_objects(), vacuum_finished_block_vacuum(), vacuum_heap_page(), vacuum_process_log_block(), vacuum_process_log_record(), vacuum_verify_vacuum_data_debug(), and vacuum_worker_allocate_resources().
#define VACUUM_IS_ER_LOG_LEVEL_SET | ( | er_log_level | ) | ((prm_get_integer_value (PRM_ID_ER_LOG_VACUUM) & (er_log_level)) != 0) |
Definition at line 62 of file vacuum.h.
Referenced by logpb_remove_archive_logs_exceed_limit().
#define VACUUM_IS_THREAD_VACUUM vacuum_is_thread_vacuum |
Definition at line 215 of file vacuum.h.
Referenced by btree_set_error(), log_sysop_end_final(), log_sysop_start(), logtb_is_interrupted_tdes(), logtb_set_check_interrupt(), and pgbuf_allocate_bcb().
#define VACUUM_IS_THREAD_VACUUM_MASTER vacuum_is_thread_vacuum_master |
Definition at line 217 of file vacuum.h.
Referenced by spage_save_space(), vacuum_find_dropped_file(), and vacuum_heap_page().
#define VACUUM_IS_THREAD_VACUUM_WORKER vacuum_is_thread_vacuum_worker |
Definition at line 216 of file vacuum.h.
Referenced by btree_delete_key_from_leaf(), btree_key_remove_insert_mvccid(), btree_set_unknown_key_error(), pgbuf_fix_debug(), spage_save_space(), vacuum_find_dropped_file(), and vacuum_heap_page().
#define VACUUM_LOG_ADD_DROPPED_FILE_POSTPONE true |
Definition at line 78 of file vacuum.h.
Referenced by vacuum_log_add_dropped_file(), xbtree_delete_index(), xheap_destroy(), and xheap_destroy_newly_created().
#define VACUUM_LOG_ADD_DROPPED_FILE_UNDO false |
Definition at line 79 of file vacuum.h.
Referenced by heap_create_internal(), xbtree_add_index(), and xbtree_load_index().
typedef struct vacuum_heap_object VACUUM_HEAP_OBJECT |
typedef struct vacuum_worker VACUUM_WORKER |
typedef enum vacuum_worker_state VACUUM_WORKER_STATE |
enum vacuum_worker_state |
int vacuum_boot | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 1261 of file vacuum.c.
References assert, ASSERT_ERROR, cubthread::manager::create_daemon(), cubthread::manager::create_worker_pool(), cubthread::get_manager(), flag< T >::is_flag_set(), cubthread::is_logging_configured(), cubthread::LOG_WORKER_POOL_VACUUM, NO_ERROR, NULL, prm_get_bool_value(), prm_get_integer_value(), PRM_ID_DISABLE_VACUUM, PRM_ID_ER_LOG_VACUUM, PRM_ID_VACUUM_MASTER_WAKEUP_INTERVAL, PRM_ID_VACUUM_WORKER_COUNT, thread_get_thread_entry_info(), vacuum_data_load_and_recover(), VACUUM_ER_LOG_WORKER, vacuum_Is_booted, and vacuum_load_dropped_files_from_disk().
Referenced by boot_restart_server().
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 | ||
) |
Definition at line 7314 of file vacuum.c.
References assert, ASSERT_ERROR, DISK_ERROR, DISK_INVALID, DISK_VALID, heap_get_class_oid(), is_not_vacuumed_and_lost(), NULL, OID_ISNULL, print_not_vacuumed_to_log(), and S_SUCCESS.
Referenced by btree_select_visible_object_for_range_scan(), heap_chkreloc_next(), and vacuum_check_not_vacuumed_recdes().
DISK_ISVALID vacuum_check_not_vacuumed_recdes | ( | THREAD_ENTRY * | thread_p, |
OID * | oid, | ||
OID * | class_oid, | ||
RECDES * | recdes, | ||
int | btree_node_type | ||
) |
Definition at line 7255 of file vacuum.c.
References DISK_ERROR, NO_ERROR, or_mvcc_get_header(), and vacuum_check_not_vacuumed_rec_header().
Referenced by heap_chkreloc_next().
int vacuum_consume_buffer_log_blocks | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 5006 of file vacuum.c.
References assert, assert_release, vacuum_data_entry::blockid, CAST_BUFLEN, lockfree::circular_queue< T >::consume(), vacuum_data_page::data, log_header::does_block_need_vacuum, DONT_FREE, ER_FAILED, file_alloc(), file_init_page_type(), FREE, vacuum_data_entry::get_blockid(), mvcctable::get_global_oldest_visible(), vacuum_data::get_last_blockid(), log_global::hdr, vacuum_data_page::index_free, vacuum_data_page::index_unvacuumed, vacuum_data_entry::is_available(), lockfree::circular_queue< T >::is_empty(), vacuum_data::last_page, log_append_redo_data2(), log_append_undoredo_data2(), log_Gl, log_sysop_abort(), log_sysop_commit(), log_sysop_start(), LSA_COPY(), LSA_SET_NULL(), log_global::mvcc_table, MVCCID_NULL, vacuum_data_entry::newest_mvccid, vacuum_data_page::next_page, NO_ERROR, NULL, log_lsa::offset, vacuum_data_entry::oldest_visible_mvccid, vacuum_data::page_data_max_count, PAGE_VACUUM_DATA, log_lsa::pageid, log_global::prior_info, log_prior_lsa_info::prior_lsa, log_prior_lsa_info::prior_lsa_mutex, prm_get_bool_value(), PRM_ID_DISABLE_VACUUM, RVVAC_DATA_APPEND_BLOCKS, RVVAC_DATA_SET_LINK, vacuum_data::set_last_blockid(), vacuum_data_entry::set_vacuumed(), vacuum_data_entry::start_lsa, vacuum_data_empty_update_last_blockid(), vacuum_data::vacuum_data_file, vacuum_er_log, vacuum_er_log_error, VACUUM_ER_LOG_VACUUM_DATA, vacuum_get_log_blockid(), vacuum_init_data_page_with_last_blockid(), vacuum_is_empty(), log_header::vacuum_last_blockid, vacuum_set_dirty_data_page, vacuum_update_keep_from_log_pageid(), VACUUM_VERIFY_VACUUM_DATA, vacuum_verify_vacuum_data_page_fix_count(), VPID_COPY, and VPID_INITIALIZER.
Referenced by vacuum_data::update(), vacuum_finalize(), and vacuum_recover_lost_block_data().
int vacuum_create_file_for_dropped_files | ( | THREAD_ENTRY * | thread_p, |
VFID * | dropped_files_vfid | ||
) |
Definition at line 4456 of file vacuum.c.
References assert, ASSERT_ERROR, ER_FAILED, file_alloc_sticky_first_page(), file_create_with_npages(), FILE_DROPPED_FILES, file_init_page_type(), FREE, vacuum_dropped_files_page::n_dropped_files, vacuum_dropped_files_page::next_page, NO_ERROR, NULL, PAGE_DROPPED_FILES, pgbuf_set_page_ptype(), vacuum_set_dirty_dropped_entries_page, and VPID_SET_NULL.
Referenced by boot_create_all_volumes().
int vacuum_create_file_for_vacuum_data | ( | THREAD_ENTRY * | thread_p, |
VFID * | vacuum_data_vfid | ||
) |
Definition at line 4357 of file vacuum.c.
References ASSERT_ERROR, assert_release, ER_FAILED, file_alloc(), file_create_with_npages(), file_descriptor_update(), file_init_page_type(), FILE_VACUUM_DATA, NO_ERROR, NULL, PAGE_VACUUM_DATA, file_descriptors::vacuum_data, vacuum_init_data_page_with_last_blockid(), vacuum_unfix_data_page, and file_vacuum_data_des::vpid_first.
Referenced by boot_create_all_volumes().
int vacuum_data_load_and_recover | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 4095 of file vacuum.c.
References log_global::append, assert, ASSERT_ERROR, ASSERT_ERROR_AND_SET, assert_release, vacuum_data_entry::blockid, vacuum_data_page::data, DONT_FREE, file_descriptor_get(), vacuum_data::first_page, vacuum_data::get_last_blockid(), log_global::hdr, i, vacuum_data_page::index_free, vacuum_data_page::index_unvacuumed, vacuum_data_entry::is_job_in_progress(), vacuum_data::is_loaded, vacuum_data::last_page, log_Gl, logpb_last_complete_blockid(), LSA_AS_ARGS, LSA_ISNULL(), LSA_SET_NULL(), log_header::mvcc_op_log_lsa, log_global::mvcc_table, MVCCID_NULL, vacuum_data_page::next_page, NO_ERROR, NULL, vacuum_data::oldest_unvacuumed_mvccid, vacuum_data::page_data_max_count, pgbuf_get_vpid(), log_append_info::prev_lsa, vacuum_data::recovery_lsa, vacuum_data_entry::set_interrupted(), vacuum_data::set_last_blockid(), vacuum_data::set_oldest_unvacuumed_on_boot(), mvcctable::update_global_oldest_visible(), file_descriptors::vacuum_data, vacuum_data::vacuum_data_file, vacuum_data_unload_first_and_last_page(), vacuum_er_log, VACUUM_ER_LOG_RECOVERY, VACUUM_ER_LOG_VACUUM_DATA, vacuum_fix_data_page, vacuum_is_empty(), log_header::vacuum_last_blockid, VACUUM_NULL_LOG_BLOCKID, vacuum_recover_lost_block_data(), vacuum_set_dirty_data_page, vacuum_unfix_data_page, vacuum_update_keep_from_log_pageid(), vacuum_verify_vacuum_data_page_fix_count(), VFID_ISNULL, VPID_COPY, file_vacuum_data_des::vpid_first, vacuum_data_load::vpid_first, VPID_ISNULL, and vacuum_data_load::vpid_last.
Referenced by vacuum_boot().
void vacuum_finalize | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 1385 of file vacuum.c.
References ARG_FILE_LINE, assert, ER_ERROR_SEVERITY, ER_GENERIC_ERROR, er_set(), i, lockfree::circular_queue< T >::is_empty(), vacuum_data::is_loaded, NO_ERROR, NULL, pgbuf_unfix_all(), prm_get_bool_value(), PRM_ID_DISABLE_VACUUM, pthread_mutex_destroy, vacuum_Block_data_buffer, vacuum_consume_buffer_log_blocks(), vacuum_data_empty_update_last_blockid(), vacuum_data_mark_finished(), vacuum_data_unload_first_and_last_page(), vacuum_Dropped_files_mutex, vacuum_finalize_worker(), vacuum_Finished_job_queue, vacuum_is_work_in_progress(), and VACUUM_MAX_WORKER_COUNT.
Referenced by vacuum_master_context_manager::on_daemon_retire(), vacuum_initialize(), and xvacuum().
VACUUM_LOG_BLOCKID vacuum_get_log_blockid | ( | LOG_PAGEID | pageid | ) |
Definition at line 5612 of file vacuum.c.
References vacuum_data::log_block_npages, NULL_PAGEID, and VACUUM_NULL_LOG_BLOCKID.
Referenced by logpb_last_complete_blockid(), prior_lsa_next_record_internal(), prior_update_header_mvcc_info(), vacuum_data::set_last_blockid(), vacuum_consume_buffer_log_blocks(), vacuum_data_entry::vacuum_data_entry(), vacuum_process_log_block(), vacuum_recover_lost_block_data(), and vacuum_verify_vacuum_data_debug().
VACUUM_WORKER * vacuum_get_vacuum_worker | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 148 of file vacuum.h.
References assert, and vacuum_is_thread_vacuum().
Referenced by vacuum_fetch_log_page(), vacuum_get_worker_state(), vacuum_log_prefetch_vacuum_block(), vacuum_process_log_block(), and vacuum_set_worker_state().
VACUUM_WORKER_STATE vacuum_get_worker_state | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 177 of file vacuum.h.
References vacuum_worker::state, and vacuum_get_vacuum_worker().
Referenced by log_sysop_end_final(), log_sysop_start(), vacuum_worker_state_is_execute(), vacuum_worker_state_is_inactive(), and vacuum_worker_state_is_process_log().
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 | ||
) |
Definition at line 1546 of file vacuum.c.
References assert, ASSERT_ERROR, ASSERT_ERROR_AND_SET, assert_release, vacuum_heap_helper::can_vacuum, vacuum_heap_helper::crt_slotid, DISK_INVALID, DONT_FREE, vfid::fileid, vacuum_heap_helper::forward_page, HEAP_ISVALID_OID, heap_page_get_vacuum_status(), heap_page_set_vacuum_status_none(), HEAP_PAGE_VACUUM_NONE, HEAP_PAGE_VACUUM_ONCE, heap_remove_page_on_vacuum(), vacuum_heap_helper::hfid, HFID_AS_ARGS, HFID_IS_NULL, vacuum_heap_helper::home_page, vacuum_heap_helper::home_vpid, i, vacuum_heap_helper::initial_home_free_space, vacuum_heap_helper::mvcc_header, mvcc_satisfies_vacuum(), MVCCID_IS_NORMAL, vacuum_heap_helper::n_bulk_vacuumed, vacuum_heap_helper::n_vacuumed, NO_ERROR, NULL, vacuum_heap_object::oid, OLD_PAGE, vacuum_heap_helper::overflow_vfid, PAGE_FTAB, PAGE_HEAP, vpid::pageid, db_identifier::pageid, pgbuf_check_page_ptype(), pgbuf_fix, pgbuf_fix_if_not_deallocated, pgbuf_get_page_ptype(), pgbuf_has_any_non_vacuum_waiters(), pgbuf_has_prevent_dealloc(), PGBUF_LATCH_WRITE, PGBUF_PAGE_STATE_ARGS, pgbuf_set_dirty(), PGBUF_UNCONDITIONAL_LATCH, pgbuf_unfix_and_init, REC_BIGONE, REC_HOME, REC_RELOCATION, vacuum_heap_helper::record_type, vacuum_heap_helper::results, vacuum_heap_helper::reusable, db_identifier::slotid, vacuum_heap_helper::slots, spage_get_free_space_without_saving(), spage_number_of_records(), vacuum_check_shutdown_interruption(), vacuum_er_log, vacuum_er_log_error, VACUUM_ER_LOG_HEAP, vacuum_er_log_warning, VACUUM_ER_LOG_WORKER, vacuum_heap_get_hfid_and_file_type(), vacuum_heap_page_log_and_reset(), vacuum_heap_prepare_record(), vacuum_heap_record(), vacuum_heap_record_insid_and_prev_version(), VACUUM_IS_THREAD_VACUUM_MASTER, VACUUM_IS_THREAD_VACUUM_WORKER, vacuum_log_vacuum_heap_page(), VACUUM_PERF_HEAP_START, VACUUM_PERF_HEAP_TRACK_EXECUTE, VACUUM_PERF_HEAP_TRACK_LOGGING, VACUUM_PERF_HEAP_TRACK_PREPARE, VACUUM_RECORD_DELETE_INSID_PREV_VER, VACUUM_RECORD_REMOVE, vacuum_heap_object::vfid, VFID_SET_NULL, vpid::volid, vfid::volid, db_identifier::volid, VPID_AS_ARGS, and VPID_GET_FROM_OID.
Referenced by heap_vacuum_all_objects(), and vacuum_heap().
int vacuum_initialize | ( | THREAD_ENTRY * | thread_p, |
int | vacuum_log_block_npages, | ||
VFID * | vacuum_data_vfid, | ||
VFID * | dropped_files_vfid, | ||
bool | is_restore | ||
) |
Definition at line 1160 of file vacuum.c.
References vacuum_worker::allocated_resources, assert, DB_PAGESIZE, vacuum_worker::drop_files_version, ER_FAILED, error(), vacuum_worker::heap_objects, vacuum_worker::heap_objects_capacity, i, vacuum_data::is_restoredb_session, vacuum_data::log_block_npages, vacuum_worker::log_zip_p, NO_ERROR, NULL, NULL_PAGEID, vacuum_data::page_data_max_count, pgbuf_assign_private_lru(), vacuum_worker::prefetch_first_pageid, vacuum_worker::prefetch_last_pageid, vacuum_worker::prefetch_log_buffer, vacuum_worker::private_lru_index, prm_get_bool_value(), PRM_ID_DISABLE_VACUUM, pthread_mutex_init, vacuum_worker::state, vacuum_worker::undo_data_buffer, vacuum_worker::undo_data_buffer_capacity, VACUUM_BLOCK_DATA_BUFFER_CAPACITY, vacuum_data::vacuum_data_file, VACUUM_DATA_PAGE_HEADER_SIZE, vacuum_Dropped_files_count, vacuum_Dropped_files_loaded, vacuum_Dropped_files_mutex, vacuum_Dropped_files_version, vacuum_finalize(), VACUUM_FINISHED_JOB_QUEUE_CAPACITY, vacuum_get_first_page_dropped_files(), VACUUM_MAX_WORKER_COUNT, VACUUM_WORKER_STATE_EXECUTE, VACUUM_WORKER_STATE_INACTIVE, VFID_COPY, VFID_SET_NULL, and VPID_ISNULL.
Referenced by boot_restart_server(), and xboot_emergency_patch().
int vacuum_is_file_dropped | ( | THREAD_ENTRY * | thread_p, |
bool * | is_file_dropped, | ||
VFID * | vfid, | ||
MVCCID | mvccid | ||
) |
Definition at line 6485 of file vacuum.c.
References NO_ERROR, prm_get_bool_value(), PRM_ID_DISABLE_VACUUM, and vacuum_find_dropped_file().
Referenced by file_create(), file_tracker_item_reuse_heap(), and vacuum_process_log_record().
Definition at line 7361 of file vacuum.c.
References vacuum_data::oldest_unvacuumed_mvccid.
Referenced by btree_prepare_bts(), heap_page_update_chain_after_mvcc_op(), mvcc_satisfies_delete(), mvcc_satisfies_dirty(), mvcc_satisfies_snapshot(), and xheap_reclaim_addresses().
bool vacuum_is_process_log_for_vacuum | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 209 of file vacuum.h.
References vacuum_is_thread_vacuum(), and vacuum_worker_state_is_process_log().
Referenced by LOG_CS_OWN().
bool vacuum_is_safe_to_remove_archives | ( | void | ) |
Definition at line 5650 of file vacuum.c.
References vacuum_data::is_archive_removal_safe.
Referenced by logpb_remove_archive_logs(), and logpb_remove_archive_logs_exceed_limit().
bool vacuum_is_thread_vacuum | ( | const THREAD_ENTRY * | thread_p | ) |
Definition at line 155 of file vacuum.h.
References assert, NULL, TT_VACUUM_MASTER, and TT_VACUUM_WORKER.
Referenced by vacuum_fetch_log_page(), vacuum_get_vacuum_worker(), and vacuum_is_process_log_for_vacuum().
bool vacuum_is_thread_vacuum_master | ( | const THREAD_ENTRY * | thread_p | ) |
Definition at line 169 of file vacuum.h.
References assert, NULL, and TT_VACUUM_MASTER.
bool vacuum_is_thread_vacuum_worker | ( | const THREAD_ENTRY * | thread_p | ) |
Definition at line 162 of file vacuum.h.
References assert, NULL, and TT_VACUUM_WORKER.
Referenced by vacuum_check_shutdown_interruption().
int vacuum_load_dropped_files_from_disk | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 4261 of file vacuum.c.
References ARG_FILE_LINE, assert, assert_release, DB_PAGESIZE, vacuum_track_dropped_files::dropped_data_page, ER_ERROR_SEVERITY, ER_FAILED, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), free_and_init, vacuum_dropped_files_page::n_dropped_files, vacuum_dropped_files_page::next_page, vacuum_track_dropped_files::next_tracked_page, NO_ERROR, NULL, PGBUF_LATCH_READ, vacuum_Dropped_files_count, vacuum_Dropped_files_loaded, vacuum_fix_dropped_entries_page, VACUUM_TRACK_DROPPED_FILES_SIZE, vacuum_unfix_dropped_entries_page, VFID_ISNULL, VPID_COPY, and VPID_ISNULL.
Referenced by vacuum_add_dropped_file(), and vacuum_boot().
void vacuum_log_add_dropped_file | ( | THREAD_ENTRY * | thread_p, |
const VFID * | vfid, | ||
const OID * | class_oid, | ||
bool | postpone_or_undo | ||
) |
Definition at line 6024 of file vacuum.c.
References vacuum_dropped_files_rcv_data::class_oid, COPY_OID, vfid::fileid, log_append_postpone(), log_append_undo_data(), NULL, log_data_addr::offset, OID_SET_NULL, log_data_addr::pgptr, RVVAC_NOTIFY_DROPPED_FILE, vacuum_er_log, VACUUM_ER_LOG_DROPPED_FILES, VACUUM_LOG_ADD_DROPPED_FILE_POSTPONE, log_data_addr::vfid, vacuum_dropped_files_rcv_data::vfid, VFID_COPY, and vfid::volid.
Referenced by heap_create_internal(), xbtree_add_index(), xbtree_delete_index(), xbtree_load_index(), xheap_destroy(), and xheap_destroy_newly_created().
LOG_PAGEID vacuum_min_log_pageid_to_keep | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 5625 of file vacuum.c.
References vacuum_data::keep_from_log_pageid, NULL_PAGEID, prm_get_bool_value(), and PRM_ID_DISABLE_VACUUM.
Referenced by logpb_backup(), logpb_remove_archive_logs(), logpb_remove_archive_logs_exceed_limit(), and xvacuum_dump().
void vacuum_notify_server_crashed | ( | LOG_LSA * | recovery_lsa | ) |
Definition at line 7468 of file vacuum.c.
References LSA_COPY(), and vacuum_data::recovery_lsa.
Referenced by log_recovery().
void vacuum_notify_server_shutdown | ( | void | ) |
Definition at line 7480 of file vacuum.c.
References vacuum_shutdown_sequence::request_shutdown(), and vacuum_data::shutdown_sequence.
Referenced by vacuum_stop_workers().
void vacuum_produce_log_block_data | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 2867 of file vacuum.c.
References assert, log_header::does_block_need_vacuum, log_global::hdr, vacuum_data::log_block_npages, log_Gl, LSA_AS_ARGS, MVCCID_NULL, log_header::newest_block_mvccid, NULL, perfmon_add_stat(), prm_get_bool_value(), PRM_ID_DISABLE_VACUUM, lockfree::circular_queue< T >::produce(), PSTAT_VAC_NUM_TO_VACUUM_LOG_PAGES, vacuum_er_log, VACUUM_ER_LOG_ERROR, vacuum_er_log_error, VACUUM_ER_LOG_LOGGING, and VACUUM_ER_LOG_VACUUM_DATA.
Referenced by prior_lsa_next_record_internal().
int vacuum_reset_data_after_copydb | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 7849 of file vacuum.c.
References assert, ASSERT_ERROR, ASSERT_ERROR_AND_SET, file_descriptor_get(), vacuum_data::first_page, vacuum_data_page::index_free, vacuum_data::last_page, vacuum_data_page::next_page, NO_ERROR, NULL, PGBUF_PAGE_STATE_ARGS, file_descriptors::vacuum_data, vacuum_data::vacuum_data_file, vacuum_er_log, VACUUM_ER_LOG_VACUUM_DATA, vacuum_fix_data_page, vacuum_init_data_page_with_last_blockid(), VACUUM_NULL_LOG_BLOCKID, vacuum_unfix_first_and_last_data_page, VFID_ISNULL, file_vacuum_data_des::vpid_first, and VPID_ISNULL.
Referenced by boot_after_copydb().
int vacuum_rv_check_at_undo | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr, | ||
INT16 | slotid, | ||
INT16 | rec_type | ||
) |
Definition at line 7525 of file vacuum.c.
References recdes::area_size, assert, assert_release, COPY, recdes::data, DB_PAGESIZE, DONT_FREE, ER_FAILED, mvcctable::get_global_oldest_visible(), heap_get_mvcc_rec_header_from_overflow(), heap_set_mvcc_rec_header_on_overflow(), IO_MAX_PAGE_SIZE, log_Gl, log_is_in_crash_recovery(), LSA_SET_NULL(), MAX_ALIGNMENT, MVCC_CLEAR_FLAG_BITS, MVCC_IS_FLAG_SET, mvcc_satisfies_vacuum(), MVCC_SET_INSID, log_global::mvcc_table, MVCCID_ALL_VISIBLE, NO_ERROR, OR_MVCC_FLAG_VALID_INSID, OR_MVCC_FLAG_VALID_PREV_VERSION, or_mvcc_get_header(), or_mvcc_set_header(), pgbuf_set_dirty(), mvcc_rec_header::prev_version_lsa, PTR_ALIGN, REC_BIGONE, RECDES_INITIALIZER, S_SUCCESS, SP_SUCCESS, spage_get_record(), spage_update(), recdes::type, VACUUM_RECORD_CANNOT_VACUUM, VACUUM_RECORD_DELETE_INSID_PREV_VER, and VACUUM_RECORD_REMOVE.
Referenced by heap_rv_undo_delete(), heap_rv_undo_ovf_update(), and heap_rv_undo_update().
int vacuum_rv_es_nop | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 7774 of file vacuum.c.
References assert, INT_ALIGNMENT, log_append_undo_data(), NO_ERROR, NULL, log_data_addr::offset, or_pack_string(), or_packed_string_length(), log_data_addr::pgptr, PTR_ALIGN, RVES_NOTIFY_VACUUM, and log_data_addr::vfid.
int vacuum_rv_notify_dropped_file | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 6289 of file vacuum.c.
References vacuum_dropped_files_rcv_data::class_oid, log_rcv::data, error(), log_global::hdr, heap_delete_hfid_from_cache(), log_Gl, log_header::mvcc_next_id, NO_ERROR, OID_ISNULL, vacuum_add_dropped_file(), vacuum_notify_all_workers_dropped_file(), and vacuum_dropped_files_rcv_data::vfid.
int vacuum_rv_redo_add_dropped_file | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 6065 of file vacuum.c.
References assert, assert_release, log_rcv::data, DONT_FREE, vacuum_dropped_files_page::dropped_files, ER_FAILED, log_global::hdr, if(), log_rcv::length, log_Gl, MVCC_ID_PRECEDES, log_header::mvcc_next_id, vacuum_dropped_file::mvccid, MVCCID_FORWARD, MVCCID_IS_VALID, vacuum_dropped_files_page::n_dropped_files, NO_ERROR, NULL, log_rcv::offset, PGBUF_PAGE_STATE_ARGS, pgbuf_set_dirty(), log_rcv::pgptr, vacuum_er_log, VACUUM_ER_LOG_DROPPED_FILES, vacuum_er_log_error, VACUUM_ER_LOG_RECOVERY, vacuum_dropped_file::vfid, VFID_AS_ARGS, VFID_COPY, and VFID_ISNULL.
int vacuum_rv_redo_append_data | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 5321 of file vacuum.c.
References assert, vacuum_data_page::data, log_rcv::data, DONT_FREE, vacuum_data_page::index_free, log_rcv::length, NO_ERROR, NULL, log_rcv::offset, pgbuf_set_dirty(), and log_rcv::pgptr.
void vacuum_rv_redo_append_data_dump | ( | FILE * | fp, |
int | length, | ||
void * | data | ||
) |
Definition at line 5346 of file vacuum.c.
References assert, vacuum_data_entry::blockid, vacuum_data_entry::newest_mvccid, NULL, log_lsa::offset, vacuum_data_entry::oldest_visible_mvccid, log_lsa::pageid, and vacuum_data_entry::start_lsa.
int vacuum_rv_redo_cleanup_dropped_files | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 6652 of file vacuum.c.
References assert, log_rcv::data, DONT_FREE, vacuum_dropped_files_page::dropped_files, vfid::fileid, i, log_rcv::length, vacuum_dropped_file::mvccid, vacuum_dropped_files_page::n_dropped_files, NO_ERROR, pgbuf_set_dirty(), log_rcv::pgptr, vacuum_er_log, VACUUM_ER_LOG_DROPPED_FILES, VACUUM_ER_LOG_RECOVERY, vacuum_dropped_file::vfid, and vfid::volid.
int vacuum_rv_redo_data_finished | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 4896 of file vacuum.c.
References assert, vacuum_data_entry::blockid, vacuum_data_page::data, log_rcv::data, DONT_FREE, vacuum_data_entry::get_blockid(), vacuum_data_page::index_free, vacuum_data_page::index_unvacuumed, vacuum_data_entry::is_vacuumed(), log_rcv::length, vacuum_data_page::next_page, NO_ERROR, NULL, pgbuf_set_dirty(), log_rcv::pgptr, vacuum_data_entry::set_interrupted(), vacuum_data_entry::set_vacuumed(), VACUUM_BLOCK_STATUS_IS_VACUUMED, VACUUM_BLOCKID_WITHOUT_FLAGS, and VPID_ISNULL.
void vacuum_rv_redo_data_finished_dump | ( | FILE * | fp, |
int | length, | ||
void * | data | ||
) |
Definition at line 4965 of file vacuum.c.
References assert, vacuum_data_entry::blockid, NULL, VACUUM_BLOCK_STATUS_IS_VACUUMED, and VACUUM_BLOCKID_WITHOUT_FLAGS.
int vacuum_rv_redo_initialize_data_page | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 4432 of file vacuum.c.
References assert, vacuum_data_entry::blockid, vacuum_data_page::data, log_rcv::data, DONT_FREE, log_rcv::length, NO_ERROR, NULL, pgbuf_set_dirty(), log_rcv::pgptr, vacuum_data_initialize_new_page(), and VACUUM_NULL_LOG_BLOCKID.
int vacuum_rv_redo_remove_ovf_insid | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 2831 of file vacuum.c.
References DONT_FREE, error(), heap_get_mvcc_rec_header_from_overflow(), heap_set_mvcc_rec_header_on_overflow(), LSA_SET_NULL(), MVCC_SET_INSID, MVCCID_ALL_VISIBLE, NO_ERROR, NULL, pgbuf_set_dirty(), log_rcv::pgptr, and mvcc_rec_header::prev_version_lsa.
int vacuum_rv_redo_start_job | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 5663 of file vacuum.c.
References assert, vacuum_data_page::data, DONT_FREE, NO_ERROR, NULL, log_rcv::offset, vacuum_data::page_data_max_count, pgbuf_set_dirty(), log_rcv::pgptr, and vacuum_data_entry::set_job_in_progress().
int vacuum_rv_redo_vacuum_complete | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 3144 of file vacuum.c.
References assert, log_rcv::data, DONT_FREE, log_global::hdr, log_rcv::length, log_Gl, logpb_vacuum_reset_log_header_cache(), MVCCID_NULL, NO_ERROR, NULL, vacuum_data::oldest_unvacuumed_mvccid, pgbuf_set_dirty(), and log_rcv::pgptr.
int vacuum_rv_redo_vacuum_heap_page | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 2682 of file vacuum.c.
References recdes::area_size, assert, assert_release, log_rcv::data, recdes::data, DONT_FREE, ER_FAILED, heap_page_set_vacuum_status_none(), i, IO_MAX_PAGE_SIZE, log_rcv::length, recdes::length, MAX_ALIGNMENT, MVCC_CLEAR_FLAG_BITS, MVCC_GET_FLAG, mvcc_header_size_lookup, NO_ERROR, NULL, log_rcv::offset, OR_MVCC_FLAG_VALID_INSID, OR_MVCC_FLAG_VALID_PREV_VERSION, or_mvcc_get_header(), or_mvcc_set_header(), PEEK, PGBUF_PAGE_STATE_ARGS, PGBUF_PAGE_VPID_AS_ARGS, pgbuf_set_dirty(), log_rcv::pgptr, PTR_ALIGN, REC_HOME, REC_NEWHOME, S_SUCCESS, SP_SUCCESS, spage_compact(), spage_get_record(), spage_need_compact(), spage_update(), spage_vacuum_slot(), recdes::type, vacuum_er_log, vacuum_er_log_error, VACUUM_ER_LOG_HEAP, VACUUM_ER_LOG_RECOVERY, VACUUM_LOG_VACUUM_HEAP_ALL_VACUUMED, VACUUM_LOG_VACUUM_HEAP_MASK, and VACUUM_LOG_VACUUM_HEAP_REUSABLE.
int vacuum_rv_redo_vacuum_heap_record | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 7437 of file vacuum.c.
References DONT_FREE, NO_ERROR, log_rcv::offset, pgbuf_set_dirty(), log_rcv::pgptr, spage_compact(), spage_need_compact(), spage_vacuum_slot(), VACUUM_LOG_VACUUM_HEAP_MASK, and VACUUM_LOG_VACUUM_HEAP_REUSABLE.
int vacuum_rv_replace_dropped_file | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 6167 of file vacuum.c.
References assert, assert_release, log_rcv::data, DONT_FREE, vacuum_dropped_files_page::dropped_files, ER_FAILED, log_global::hdr, log_rcv::length, log_Gl, MVCC_ID_PRECEDES, log_header::mvcc_next_id, vacuum_dropped_file::mvccid, MVCCID_FORWARD, vacuum_dropped_files_page::n_dropped_files, NO_ERROR, NULL, log_rcv::offset, PGBUF_PAGE_STATE_ARGS, pgbuf_set_dirty(), log_rcv::pgptr, vacuum_er_log, VACUUM_ER_LOG_DROPPED_FILES, vacuum_er_log_error, VACUUM_ER_LOG_RECOVERY, vacuum_dropped_file::vfid, VFID_AS_ARGS, and VFID_EQ.
int vacuum_rv_set_next_page_dropped_files | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 6732 of file vacuum.c.
References assert, log_rcv::data, DONT_FREE, log_rcv::length, vacuum_dropped_files_page::next_page, NO_ERROR, vpid::pageid, pgbuf_get_vpid_ptr(), pgbuf_set_dirty(), log_rcv::pgptr, vacuum_er_log, VACUUM_ER_LOG_RECOVERY, vpid::volid, and VPID_COPY.
int vacuum_rv_undo_add_dropped_file | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 6133 of file vacuum.c.
References assert_release, DONT_FREE, vacuum_dropped_files_page::dropped_files, ER_FAILED, if(), vacuum_dropped_files_page::n_dropped_files, NO_ERROR, NULL, log_rcv::offset, pgbuf_set_dirty(), and log_rcv::pgptr.
int vacuum_rv_undo_vacuum_heap_record | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 7422 of file vacuum.c.
References heap_rv_redo_insert(), log_rcv::offset, and VACUUM_LOG_VACUUM_HEAP_MASK.
int vacuum_rv_undoredo_data_set_link | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 5271 of file vacuum.c.
References assert, log_rcv::data, DONT_FREE, log_rcv::length, vacuum_data_page::next_page, NO_ERROR, NULL, pgbuf_set_dirty(), log_rcv::pgptr, VPID_COPY, and VPID_SET_NULL.
void vacuum_rv_undoredo_data_set_link_dump | ( | FILE * | fp, |
int | length, | ||
void * | data | ||
) |
void vacuum_sa_reflect_last_blockid | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 7647 of file vacuum.c.
References log_global::append, log_global::hdr, vacuum_data::is_restoredb_session, log_Gl, logpb_last_complete_blockid(), log_lsa::pageid, log_append_info::prev_lsa, vacuum_data::set_last_blockid(), vacuum_data_empty_update_last_blockid(), vacuum_data_load_first_and_last_page(), vacuum_data_unload_first_and_last_page(), vacuum_er_log, VACUUM_ER_LOG_VACUUM_DATA, log_header::vacuum_last_blockid, VACUUM_NULL_LOG_BLOCKID, vacuum_data_load::vpid_first, and VPID_ISNULL.
Referenced by xboot_shutdown_server().
void vacuum_set_worker_state | ( | THREAD_ENTRY * | thread_p, |
VACUUM_WORKER_STATE | state | ||
) |
Definition at line 184 of file vacuum.h.
References vacuum_worker::state, and vacuum_get_vacuum_worker().
void vacuum_stop_master | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 1359 of file vacuum.c.
References cubthread::manager::destroy_daemon(), cubthread::get_manager(), NULL, vacuum_Is_booted, and vacuum_Master_context_manager.
Referenced by boot_restart_server(), and xboot_shutdown_server().
void vacuum_stop_workers | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 1332 of file vacuum.c.
References cubthread::manager::destroy_worker_pool(), cubthread::worker_pool< Context >::er_log_stats(), cubthread::get_manager(), NULL, cubthread::worker_pool< Context >::stop_execution(), vacuum_Is_booted, vacuum_notify_server_shutdown(), and vacuum_Worker_context_manager.
Referenced by boot_restart_server(), css_init(), and xboot_shutdown_server().
bool vacuum_worker_state_is_execute | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 202 of file vacuum.h.
References vacuum_get_worker_state(), and VACUUM_WORKER_STATE_EXECUTE.
Referenced by log_sysop_end_final(), and log_sysop_start().
bool vacuum_worker_state_is_inactive | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 190 of file vacuum.h.
References vacuum_get_worker_state(), and VACUUM_WORKER_STATE_INACTIVE.
bool vacuum_worker_state_is_process_log | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 196 of file vacuum.h.
References vacuum_get_worker_state(), and VACUUM_WORKER_STATE_PROCESS_LOG.
Referenced by vacuum_is_process_log_for_vacuum().
int xvacuum | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 962 of file vacuum.c.
References ARG_FILE_LINE, assert, log_header::does_block_need_vacuum, DONT_FREE, ER_ERROR_SEVERITY, er_log_debug, ER_NOTIFICATION_SEVERITY, er_set(), ER_STAND_ALONE_VACUUM_END, ER_STAND_ALONE_VACUUM_START, ER_VACUUM_CS_NOT_AVAILABLE, vacuum_data::first_page, vacuum_job_cursor::force_data_update(), vacuum_data_entry::get_blockid(), vacuum_job_cursor::get_current_entry(), log_global::hdr, vacuum_job_cursor::increment_blockid(), vacuum_data_entry::is_available(), lockfree::circular_queue< T >::is_empty(), vacuum_data::is_empty(), lockfree::circular_queue< T >::is_full(), vacuum_job_cursor::is_loaded(), vacuum_data_entry::is_vacuumed(), vacuum_job_cursor::is_valid(), vacuum_job_cursor::load(), log_append_redo_data2(), log_Gl, logpb_force_flush_pages(), logpb_vacuum_reset_log_header_cache(), logtb_is_interrupted(), logtb_set_check_interrupt(), log_header::mvcc_next_id, NO_ERROR, NULL, vacuum_data::oldest_unvacuumed_mvccid, prm_get_bool_value(), PRM_ID_DISABLE_VACUUM, PSTAT_VAC_MASTER, RVVAC_COMPLETE, vacuum_job_cursor::set_on_vacuum_data_start(), vacuum_job_cursor::start_job_on_current_entry(), TT_NONE, vacuum_job_cursor::unload(), vacuum_data::update(), vacuum_cleanup_dropped_files(), vacuum_convert_thread_to_master(), vacuum_data_load_first_and_last_page(), vacuum_er_log, VACUUM_ER_LOG_JOBS, VACUUM_ER_LOG_MASTER, vacuum_finalize(), vacuum_job_cursor_print_args, vacuum_job_cursor_print_format, vacuum_restore_thread(), vacuum_set_dirty_data_page, and vacuum_verify_vacuum_data_page_fix_count().
Referenced by boot_restart_server(), cvacuum(), and svacuum().
void xvacuum_dump | ( | THREAD_ENTRY * | thread_p, |
FILE * | outfp | ||
) |
Definition at line 1104 of file vacuum.c.
References assert, fileio_get_base_file_name(), FILEIO_SUFFIX_LOGARCHIVE, LOG_CS_ENTER_READ_MODE(), LOG_CS_EXIT(), log_Name_active, log_Prefix, logpb_get_archive_number(), logpb_is_page_in_archive(), NULL, NULL_PAGEID, vacuum_Is_booted, and vacuum_min_log_pageid_to_keep().
Referenced by svacuum_dump(), and vacuum_dump().