CUBRID Engine
latest
|
#include "log_lsa.hpp"
#include "log_record.hpp"
#include "log_storage.hpp"
#include "memory_alloc.h"
#include "object_representation_constants.h"
#include "recovery.h"
#include "storage_common.h"
#include <atomic>
#include <mutex>
Go to the source code of this file.
Classes | |
struct | log_crumb |
struct | log_data_addr |
struct | log_append_info |
struct | log_prior_node |
struct | log_prior_lsa_info |
Macros | |
#define | LOG_DATA_ADDR_INITIALIZER { NULL, NULL, 0 } |
Typedefs | |
typedef struct log_crumb | LOG_CRUMB |
typedef struct log_data_addr | LOG_DATA_ADDR |
typedef struct log_append_info | LOG_APPEND_INFO |
typedef struct log_prior_node | LOG_PRIOR_NODE |
typedef struct log_prior_lsa_info | LOG_PRIOR_LSA_INFO |
using | log_rv_record_flag_type = log_data_addr::offset_type |
Enumerations | |
enum | LOG_PRIOR_LSA_LOCK { LOG_PRIOR_LSA_WITHOUT_LOCK = 0, LOG_PRIOR_LSA_WITH_LOCK = 1 } |
Definition at line 63 of file log_append.hpp.
Referenced by btree_rv_remove_unique_stats(), disk_set_creation(), disk_set_link(), disk_stab_unit_unreserve(), file_dealloc(), file_extdata_merge_pages(), file_log_extdata_add(), file_log_extdata_remove(), file_log_extdata_set_next(), file_log_fhead_alloc(), file_log_fhead_dealloc(), file_perm_dealloc(), file_postpone_destroy(), file_rv_user_page_unmark_delete_logical(), file_tracker_item_mark_heap_deleted(), heap_add_chain_links(), heap_log_postpone_heap_append_pages(), heap_update_and_log_header(), heap_vpid_alloc(), heap_vpid_init_new(), pgbuf_rv_flush_page(), vacuum_add_dropped_file(), and xheap_destroy_newly_created().
typedef struct log_append_info LOG_APPEND_INFO |
Definition at line 71 of file log_append.hpp.
Definition at line 44 of file log_append.hpp.
typedef struct log_data_addr LOG_DATA_ADDR |
Definition at line 51 of file log_append.hpp.
typedef struct log_prior_lsa_info LOG_PRIOR_LSA_INFO |
Definition at line 110 of file log_append.hpp.
typedef struct log_prior_node LOG_PRIOR_NODE |
Definition at line 89 of file log_append.hpp.
Definition at line 133 of file log_append.hpp.
enum LOG_PRIOR_LSA_LOCK |
Enumerator | |
---|---|
LOG_PRIOR_LSA_WITHOUT_LOCK | |
LOG_PRIOR_LSA_WITH_LOCK |
Definition at line 65 of file log_append.hpp.
void log_append_final_zip | ( | ) |
Definition at line 232 of file log_append.cpp.
References free_and_init, log_data_length, log_data_ptr, log_zip_free(), log_Zip_support, and NULL.
Referenced by logpb_finalize_pool().
void log_append_init_zip | ( | ) |
Definition at line 185 of file log_append.cpp.
References ARG_FILE_LINE, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), free_and_init, IO_PAGESIZE, log_data_length, log_data_ptr, log_zip_alloc(), log_zip_free(), log_Zip_support, NULL, prm_get_bool_value(), and PRM_ID_LOG_COMPRESS.
Referenced by logpb_initialize_pool().
char* LOG_APPEND_PTR | ( | ) |
Definition at line 145 of file log_append.cpp.
References log_global::append, log_header::append_lsa, log_page::area, log_global::hdr, log_Gl, log_append_info::log_pgptr, and log_lsa::offset.
Referenced by log_initialize_internal(), log_recovery(), logpb_append_crumbs(), logpb_append_data(), and logpb_start_append().
bool log_prior_has_worker_log_records | ( | THREAD_ENTRY * | thread_p | ) |
Definition at line 152 of file log_append.cpp.
References log_global::append, assert, log_append_info::get_nxio_lsa(), LOG_CS_ENTER(), LOG_CS_EXIT(), log_Gl, log_prior_node::log_header, LOG_SYSTEM_TRANID, LSA_EQ(), LSA_LT(), log_prior_node::next, NULL, log_global::prior_info, log_prior_lsa_info::prior_list_header, log_prior_lsa_info::prior_lsa, log_prior_lsa_info::prior_lsa_mutex, and log_rec_header::trid.
Referenced by css_init().
Definition at line 129 of file log_append.cpp.
References log_header::append_lsa, log_global::hdr, log_Gl, log_global::prior_info, and log_prior_lsa_info::prior_lsa.
Referenced by log_find_end_log(), log_initialize_internal(), log_recovery_analysis(), log_recovery_resetlog(), log_rv_analysis_log_end(), and logpb_fetch_header().
Definition at line 137 of file log_append.cpp.
References log_global::append, log_Gl, log_append_info::prev_lsa, log_prior_lsa_info::prev_lsa, and log_global::prior_info.
Referenced by log_create_internal(), log_initialize_internal(), log_recovery(), log_recovery_resetlog(), and logpb_finalize_pool().
|
inline |
Definition at line 180 of file log_append.hpp.
References LOG_RV_RECORD_DELETE, and LOG_RV_RECORD_MODIFY_MASK.
Referenced by btree_rv_record_modify_internal(), and log_rv_record_modify_internal().
|
inline |
Definition at line 174 of file log_append.hpp.
References LOG_RV_RECORD_INSERT, and LOG_RV_RECORD_MODIFY_MASK.
Referenced by btree_rv_record_modify_internal(), and log_rv_record_modify_internal().
|
inline |
Definition at line 186 of file log_append.hpp.
References LOG_RV_RECORD_MODIFY_MASK, and LOG_RV_RECORD_UPDATE_ALL.
Referenced by btree_rv_record_modify_internal(), and log_rv_record_modify_internal().
|
inline |
Definition at line 192 of file log_append.hpp.
References LOG_RV_RECORD_MODIFY_MASK, and LOG_RV_RECORD_UPDATE_PARTIAL.
Referenced by btree_rv_record_modify_internal(), and log_rv_record_modify_internal().
|
inline |
Definition at line 198 of file log_append.hpp.
References LOG_RV_RECORD_MODIFY_MASK, mode, and log_data_addr::offset.
Referenced by btree_delete_key_from_leaf(), btree_insert_mvcc_delid_into_page(), btree_key_append_object_as_new_overflow(), btree_key_append_object_non_unique(), btree_key_append_object_to_overflow(), btree_key_append_object_unique(), btree_key_insert_new_key(), btree_key_online_index_IB_insert(), btree_key_online_index_tran_delete(), btree_key_online_index_tran_insert(), btree_key_online_index_tran_insert_DF(), btree_key_relocate_last_into_ovf(), btree_key_remove_delete_mvccid_non_unique(), btree_key_remove_delete_mvccid_unique(), btree_key_remove_insert_mvccid(), btree_key_remove_object_and_keep_visible_first(), btree_leaf_record_replace_first_with_last(), btree_modify_leaf_ovfl_vpid(), btree_modify_overflow_link(), btree_record_remove_object(), btree_replace_first_oid_with_ovfl_oid(), and btree_start_overflow_page().
constexpr size_t LOG_RV_RECORD_UPDPARTIAL_ALIGNED_SIZE | ( | size_t | new_data_size | ) |
Definition at line 204 of file log_append.hpp.
References DB_ALIGN, INT_ALIGNMENT, OR_BYTE_SIZE, and OR_SHORT_SIZE.
size_t logpb_get_memsize | ( | ) |
Definition at line 11374 of file log_page_buffer.c.
References LOG_PAGESIZE, and log_pb_global_data::num_buffers.
Referenced by prior_lsa_next_record_internal().
bool prior_is_tde_encrypted | ( | const log_prior_node * | node | ) |
Definition at line 1567 of file log_append.cpp.
References log_prior_node::tde_encrypted.
Referenced by logpb_append_next_record().
LOG_PRIOR_NODE* prior_lsa_alloc_and_copy_crumbs | ( | THREAD_ENTRY * | thread_p, |
LOG_RECTYPE | rec_type, | ||
LOG_RCVINDEX | rcvindex, | ||
LOG_DATA_ADDR * | addr, | ||
const int | num_ucrumbs, | ||
const LOG_CRUMB * | ucrumbs, | ||
const int | num_rcrumbs, | ||
const LOG_CRUMB * | rcrumbs | ||
) |
Definition at line 407 of file log_append.cpp.
References ARG_FILE_LINE, assert_release, log_prior_node::data_header, log_prior_node::data_header_length, ER_ERROR_SEVERITY, ER_FAILED, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), error(), free_and_init, LOG_DIFF_UNDOREDO_DATA, log_prior_node::log_header, LOG_MVCC_DIFF_UNDOREDO_DATA, LOG_MVCC_REDO_DATA, LOG_MVCC_UNDO_DATA, LOG_MVCC_UNDOREDO_DATA, LOG_REDO_DATA, LOG_UNDO_DATA, LOG_UNDOREDO_DATA, log_prior_node::next, NO_ERROR, NULL, prior_lsa_gen_undoredo_record_from_crumbs(), log_prior_node::rdata, log_prior_node::rlength, log_prior_node::tde_encrypted, log_rec_header::type, log_prior_node::udata, and log_prior_node::ulength.
Referenced by log_append_redo_crumbs(), log_append_undo_crumbs(), and log_append_undoredo_crumbs().
LOG_PRIOR_NODE* prior_lsa_alloc_and_copy_data | ( | THREAD_ENTRY * | thread_p, |
LOG_RECTYPE | rec_type, | ||
LOG_RCVINDEX | rcvindex, | ||
LOG_DATA_ADDR * | addr, | ||
int | ulength, | ||
const char * | udata, | ||
int | rlength, | ||
const char * | rdata | ||
) |
Definition at line 273 of file log_append.cpp.
References ARG_FILE_LINE, assert, assert_release, log_prior_node::data_header, ER_ERROR_SEVERITY, ER_FAILED, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), free_and_init, LOG_2PC_ABORT_DECISION, LOG_2PC_ABORT_INFORM_PARTICPS, LOG_2PC_COMMIT_DECISION, LOG_2PC_COMMIT_INFORM_PARTICPS, LOG_2PC_PREPARE, LOG_2PC_START, LOG_ABORT, LOG_COMMIT, LOG_COMMIT_WITH_POSTPONE, LOG_COMPENSATE, LOG_DBEXTERN_REDO_DATA, LOG_DIFF_UNDOREDO_DATA, LOG_DUMMY_CRASH_RECOVERY, LOG_DUMMY_GENERIC, LOG_DUMMY_HA_SERVER_STATE, LOG_DUMMY_HEAD_POSTPONE, LOG_DUMMY_OVF_RECORD, LOG_END_CHKPT, log_prior_node::log_header, LOG_MVCC_DIFF_UNDOREDO_DATA, LOG_MVCC_REDO_DATA, LOG_MVCC_UNDO_DATA, LOG_MVCC_UNDOREDO_DATA, LOG_POSTPONE, LOG_REDO_DATA, LOG_REPLICATION_DATA, LOG_REPLICATION_STATEMENT, LOG_RUN_POSTPONE, LOG_SAVEPOINT, LOG_START_CHKPT, LOG_SYSOP_ATOMIC_START, LOG_SYSOP_END, LOG_SYSOP_START_POSTPONE, LOG_UNDO_DATA, LOG_UNDOREDO_DATA, log_prior_node::next, NO_ERROR, NULL, prior_lsa_gen_2pc_prepare_record(), prior_lsa_gen_dbout_redo_record(), prior_lsa_gen_end_chkpt_record(), prior_lsa_gen_postpone_record(), prior_lsa_gen_record(), log_prior_node::rdata, log_prior_node::rlength, log_prior_node::tde_encrypted, log_rec_header::type, log_prior_node::udata, and log_prior_node::ulength.
Referenced by log_2pc_append_decision(), log_2pc_append_start(), log_2pc_prepare_global_tran(), log_append_commit_postpone(), log_append_compensate_internal(), log_append_dboutside_redo(), log_append_donetime_internal(), log_append_empty_record(), log_append_ha_server_state(), log_append_postpone(), log_append_repl_info_internal(), log_append_run_postpone(), log_append_savepoint(), log_append_sysop_end(), log_append_sysop_start_postpone(), log_complete_for_2pc(), log_sysop_start_atomic(), and logpb_checkpoint().
LOG_LSA prior_lsa_next_record | ( | THREAD_ENTRY * | thread_p, |
LOG_PRIOR_NODE * | node, | ||
log_tdes * | tdes | ||
) |
Definition at line 1537 of file log_append.cpp.
References LOG_PRIOR_LSA_WITHOUT_LOCK, and prior_lsa_next_record_internal().
Referenced by log_2pc_append_decision(), log_2pc_append_start(), log_2pc_prepare_global_tran(), log_append_commit_postpone(), log_append_compensate_internal(), log_append_dboutside_redo(), log_append_donetime_internal(), log_append_empty_record(), log_append_ha_server_state(), log_append_postpone(), log_append_redo_crumbs(), log_append_repl_info_internal(), log_append_run_postpone(), log_append_savepoint(), log_append_sysop_end(), log_append_sysop_start_postpone(), log_append_undo_crumbs(), log_append_undoredo_crumbs(), log_complete_for_2pc(), log_sysop_start_atomic(), and logpb_checkpoint().
LOG_LSA prior_lsa_next_record_with_lock | ( | THREAD_ENTRY * | thread_p, |
LOG_PRIOR_NODE * | node, | ||
log_tdes * | tdes | ||
) |
Definition at line 1543 of file log_append.cpp.
References LOG_PRIOR_LSA_WITH_LOCK, and prior_lsa_next_record_internal().
Referenced by log_append_donetime_internal(), log_append_repl_info_internal(), and logpb_checkpoint().
int prior_set_tde_encrypted | ( | log_prior_node * | node, |
LOG_RCVINDEX | recvindex | ||
) |
Definition at line 1549 of file log_append.cpp.
References ARG_FILE_LINE, ER_ERROR_SEVERITY, er_log_debug, er_set(), ER_TDE_CIPHER_IS_NOT_LOADED, tde_cipher::is_loaded, NO_ERROR, rv_rcvindex_string(), tde_Cipher, and log_prior_node::tde_encrypted.
Referenced by log_append_compensate_internal(), log_append_postpone(), log_append_redo_crumbs(), log_append_repl_info_internal(), log_append_run_postpone(), log_append_sysop_end(), log_append_undo_crumbs(), and log_append_undoredo_crumbs().
const log_rv_record_flag_type LOG_RV_RECORD_DELETE = 0x4000 |
Definition at line 135 of file log_append.hpp.
Referenced by btree_delete_key_from_leaf(), and LOG_RV_RECORD_IS_DELETE().
const log_rv_record_flag_type LOG_RV_RECORD_INSERT = (log_rv_record_flag_type) 0x8000 |
Definition at line 134 of file log_append.hpp.
Referenced by btree_key_insert_new_key(), btree_start_overflow_page(), and LOG_RV_RECORD_IS_INSERT().
const log_rv_record_flag_type LOG_RV_RECORD_MODIFY_MASK = (log_rv_record_flag_type) 0xC000 |
Definition at line 138 of file log_append.hpp.
Referenced by LOG_RV_RECORD_IS_DELETE(), LOG_RV_RECORD_IS_INSERT(), LOG_RV_RECORD_IS_UPDATE_ALL(), LOG_RV_RECORD_IS_UPDATE_PARTIAL(), log_rv_record_modify_internal(), and LOG_RV_RECORD_SET_MODIFY_MODE().
const log_rv_record_flag_type LOG_RV_RECORD_UPDATE_ALL = (log_rv_record_flag_type) 0xC000 |
Definition at line 136 of file log_append.hpp.
Referenced by btree_modify_overflow_link(), and LOG_RV_RECORD_IS_UPDATE_ALL().
const log_rv_record_flag_type LOG_RV_RECORD_UPDATE_PARTIAL = 0x0000 |
Definition at line 137 of file log_append.hpp.
Referenced by btree_insert_mvcc_delid_into_page(), btree_key_append_object_as_new_overflow(), btree_key_append_object_non_unique(), btree_key_append_object_to_overflow(), btree_key_append_object_unique(), btree_key_online_index_IB_insert(), btree_key_online_index_tran_delete(), btree_key_online_index_tran_insert(), btree_key_online_index_tran_insert_DF(), btree_key_relocate_last_into_ovf(), btree_key_remove_delete_mvccid_non_unique(), btree_key_remove_delete_mvccid_unique(), btree_key_remove_insert_mvccid(), btree_key_remove_object_and_keep_visible_first(), btree_leaf_record_replace_first_with_last(), btree_modify_leaf_ovfl_vpid(), btree_record_remove_object(), btree_replace_first_oid_with_ovfl_oid(), and LOG_RV_RECORD_IS_UPDATE_PARTIAL().