CUBRID Engine  latest
log_page_buffer.c File Reference
#include "config.h"
#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <time.h>
#include <limits.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/param.h>
#include <fcntl.h>
#include <assert.h>
#include "porting.h"
#include "porting_inline.hpp"
#include "connection_defs.h"
#include "language_support.h"
#include "log_append.hpp"
#include "log_impl.h"
#include "log_lsa.hpp"
#include "log_manager.h"
#include "log_comm.h"
#include "log_volids.hpp"
#include "log_writer.h"
#include "lock_manager.h"
#include "log_system_tran.hpp"
#include "boot_sr.h"
#include "boot_cl.h"
#include "critical_section.h"
#include "page_buffer.h"
#include "double_write_buffer.h"
#include "file_io.h"
#include "disk_manager.h"
#include "error_manager.h"
#include "xserver_interface.h"
#include "perf_monitor.h"
#include "storage_common.h"
#include "system_parameter.h"
#include "memory_alloc.h"
#include "memory_hash.h"
#include "release_string.h"
#include "message_catalog.h"
#include "msgcat_set_log.hpp"
#include "environment_variable.h"
#include "util_func.h"
#include "errno.h"
#include "tcp.h"
#include "db.h"
#include "log_compress.h"
#include "event_log.h"
#include "tsc_timer.h"
#include "vacuum.h"
#include "thread_entry.hpp"
#include "thread_manager.hpp"
#include "crypt_opfunc.h"
#include "object_representation.h"

Go to the source code of this file.

Classes

struct  log_buffer
 
struct  logpb_partial_append
 
struct  log_pb_global_data
 
struct  arv_page_info
 
struct  ARV_LOG_PAGE_INFO_TABLE
 

Macros

#define pthread_mutex_init(a, b)
 
#define pthread_mutex_destroy(a)
 
#define pthread_mutex_lock(a)   0
 
#define pthread_mutex_unlock(a)
 
#define COND_INIT(a)
 
#define COND_BROADCAST(a)
 
#define COND_DESTROY(a)
 
#define logpb_log(...)   if (logpb_Logging) _er_log_debug (ARG_FILE_LINE, "LOGPB: " __VA_ARGS__)
 
#define log_archive_er_log(...)   if (prm_get_bool_value (PRM_ID_DEBUG_LOG_ARCHIVES)) _er_log_debug (ARG_FILE_LINE, __VA_ARGS__)
 
#define LOGPB_FIND_BUFPTR(bufid)   &log_Pb.buffers[(bufid)]
 
#define LOGPB_HEADER_PAGE_ID
 
#define LOGPB_NEXT_ARCHIVE_PAGE_ID   (log_Gl.hdr.nxarv_pageid)
 
#define LOGPB_FIRST_ACTIVE_PAGE_ID   (log_Gl.hdr.fpageid)
 
#define LOGPB_LAST_ACTIVE_PAGE_ID   (log_Gl.hdr.nxarv_pageid + log_Gl.hdr.npages - 1)
 
#define LOGPB_ACTIVE_NPAGES   (log_Gl.hdr.npages)
 
#define LOGPB_PHYSICAL_HEADER_PAGE_ID   0
 
#define LOGPB_IS_FIRST_PHYSICAL_PAGE(pageid)   (logpb_to_physical_pageid(pageid) == 1)
 
#define LOGPB_IS_ARCHIVE_PAGE(pageid)   ((pageid) != LOGPB_HEADER_PAGE_ID && (pageid) < LOGPB_NEXT_ARCHIVE_PAGE_ID)
 
#define LOGPB_AT_NEXT_ARCHIVE_PAGE_ID(pageid)   (logpb_to_physical_pageid(pageid) == log_Gl.hdr.nxarv_phy_pageid)
 
#define ARV_PAGE_INFO_TABLE_SIZE   256
 
#define LOG_LAST_APPEND_PTR()   ((char *) log_Gl.append.log_pgptr->area + LOGAREA_SIZE)
 
#define LOG_APPEND_ALIGN(thread_p, current_setdirty)
 
#define LOG_APPEND_ADVANCE_WHEN_DOESNOT_FIT(thread_p, length)
 
#define LOG_APPEND_SETDIRTY_ADD_ALIGN(thread_p, add)
 
#define LOG_MAX_LOGINFO_LINE   (PATH_MAX * 4)
 
#define detailed_er_log(...)   if (detailed_logging) _er_log_debug (ARG_FILE_LINE, __VA_ARGS__)
 

Typedefs

typedef struct log_buffer LOG_BUFFER
 
typedef struct logpb_partial_append LOGPB_PARTIAL_APPEND
 
typedef struct log_pb_global_data LOG_PB_GLOBAL_DATA
 
typedef struct arv_page_info ARV_PAGE_INFO
 

Enumerations

enum  LOGPB_APPENDREC_STATUS {
  LOGPB_APPENDREC_IN_PROGRESS, LOGPB_APPENDREC_PARTIAL_FLUSHED_END_OF_LOG, LOGPB_APPENDREC_PARTIAL_ENDED, LOGPB_APPENDREC_PARTIAL_FLUSHED_ORIGINAL,
  LOGPB_APPENDREC_SUCCESS
}
 

Functions

static LOG_PAGElogpb_locate_page (THREAD_ENTRY *thread_p, LOG_PAGEID pageid, PAGE_FETCH_MODE fetch_mode)
 
static bool logpb_is_dirty (THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr)
 
static bool logpb_is_any_dirty (THREAD_ENTRY *thread_p)
 
static void logpb_dump_information (FILE *out_fp)
 
static void logpb_dump_to_flush_page (FILE *out_fp)
 
static void logpb_dump_pages (FILE *out_fp)
 
static void logpb_initialize_backup_info (LOG_HEADER *loghdr)
 
static LOG_PAGE ** logpb_writev_append_pages (THREAD_ENTRY *thread_p, LOG_PAGE **to_flush, DKNPAGES npages)
 
static int logpb_get_guess_archive_num (THREAD_ENTRY *thread_p, LOG_PAGEID pageid)
 
static void logpb_set_unavailable_archive (THREAD_ENTRY *thread_p, int arv_num)
 
static void logpb_dismount_log_archive (THREAD_ENTRY *thread_p)
 
static bool logpb_is_archive_available (THREAD_ENTRY *thread_p, int arv_num)
 
static void logpb_archive_active_log (THREAD_ENTRY *thread_p)
 
static int logpb_remove_archive_logs_internal (THREAD_ENTRY *thread_p, int first, int last, const char *info_reason)
 
static void logpb_append_archives_removed_to_log_info (int first, int last, const char *info_reason)
 
static int logpb_verify_length (const char *db_fullname, const char *log_path, const char *log_prefix)
 
static int logpb_backup_for_volume (THREAD_ENTRY *thread_p, VOLID volid, LOG_LSA *chkpt_lsa, FILEIO_BACKUP_SESSION *session, bool only_updated)
 
static int logpb_update_backup_volume_info (const char *bkupinfo_file_name)
 
static int logpb_start_where_path (const char *to_db_fullname, const char *toext_path, const char **toext_name, char **ext_path, char **alloc_extpath, const char *fileof_vols_and_wherepaths, FILE **where_paths_fp)
 
static int logpb_next_where_path (const char *to_db_fullname, const char *toext_path, const char *ext_name, char *ext_path, const char *fileof_vols_and_wherepaths, FILE *where_paths_fp, int num_perm_vols, VOLID volid, char *from_volname, char *to_volname)
 
static int logpb_copy_volume (THREAD_ENTRY *thread_p, VOLID from_volid, const char *tonew_volname, INT64 *db_creation, LOG_LSA *vol_chkpt_lsa)
 
static bool logpb_check_if_exists (const char *fname, char *first_vol)
 
static bool logpb_remote_ask_user_before_delete_volumes (THREAD_ENTRY *thread_p, const char *volpath)
 
static int logpb_initialize_flush_info (void)
 
static void logpb_finalize_flush_info (void)
 
static void logpb_finalize_writer_info (void)
 
static void logpb_dump_log_header (FILE *outfp)
 
static void logpb_dump_parameter (FILE *outfp)
 
static void logpb_dump_runtime (FILE *outfp)
 
static void logpb_initialize_log_buffer (LOG_BUFFER *log_buffer_p, LOG_PAGE *log_pg)
 
static int logpb_check_stop_at_time (FILEIO_BACKUP_SESSION *session, time_t stop_at, time_t backup_time)
 
static void logpb_write_toflush_pages_to_archive (THREAD_ENTRY *thread_p)
 
static int logpb_add_archive_page_info (THREAD_ENTRY *thread_p, int arv_num, LOG_PAGEID start_page, LOG_PAGEID end_page)
 
static int logpb_get_archive_num_from_info_table (THREAD_ENTRY *thread_p, LOG_PAGEID page_id)
 
static int logpb_flush_all_append_pages (THREAD_ENTRY *thread_p)
 
static int logpb_append_next_record (THREAD_ENTRY *thread_p, LOG_PRIOR_NODE *ndoe)
 
static void logpb_start_append (THREAD_ENTRY *thread_p, LOG_RECORD_HEADER *header)
 
static void logpb_end_append (THREAD_ENTRY *thread_p, LOG_RECORD_HEADER *header)
 
static void logpb_append_data (THREAD_ENTRY *thread_p, int length, const char *data)
 
static void logpb_append_crumbs (THREAD_ENTRY *thread_p, int num_crumbs, const LOG_CRUMB *crumbs)
 
static void logpb_next_append_page (THREAD_ENTRY *thread_p, LOG_SETDIRTY current_setdirty)
 
static LOG_PRIOR_NODEprior_lsa_remove_prior_list (THREAD_ENTRY *thread_p)
 
static int logpb_append_prior_lsa_list (THREAD_ENTRY *thread_p, LOG_PRIOR_NODE *list)
 
static int logpb_copy_page (THREAD_ENTRY *thread_p, LOG_PAGEID pageid, LOG_CS_ACCESS_MODE access_mode, LOG_PAGE *log_pgptr)
 
static void logpb_fatal_error_internal (THREAD_ENTRY *thread_p, bool log_exit, bool need_flush, const char *file_name, const int lineno, const char *fmt, va_list ap)
 
static int logpb_copy_log_header (THREAD_ENTRY *thread_p, LOG_HEADER *to_hdr, const LOG_HEADER *from_hdr)
 
STATIC_INLINE LOG_BUFFERlogpb_get_log_buffer (LOG_PAGE *log_pg) __attribute__((ALWAYS_INLINE))
 
STATIC_INLINE int logpb_get_log_buffer_index (LOG_PAGEID log_pageid) __attribute__((ALWAYS_INLINE))
 
static int logpb_fetch_header_from_active_log (THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname, LOG_HEADER *hdr, LOG_PAGE *log_pgptr)
 
static int logpb_compute_page_checksum (THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr, int *checksum_crc32)
 
static int logpb_page_has_valid_checksum (THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr, bool *has_valid_checksum)
 
static bool logpb_is_log_active_from_backup_useful (THREAD_ENTRY *thread_p, const char *active_log_path, const char *db_full_name)
 
static int logpb_peek_header_of_active_log_from_backup (THREAD_ENTRY *thread_p, const char *active_log_path, LOG_HEADER *hdr)
 
int logpb_set_page_checksum (THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr)
 
int logpb_initialize_pool (THREAD_ENTRY *thread_p)
 
void logpb_finalize_pool (THREAD_ENTRY *thread_p)
 
bool logpb_is_pool_initialized (void)
 
void logpb_invalidate_pool (THREAD_ENTRY *thread_p)
 
LOG_PAGElogpb_create_page (THREAD_ENTRY *thread_p, LOG_PAGEID pageid)
 
void logpb_set_dirty (THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr)
 
int logpb_flush_page (THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr)
 
LOG_PAGEID logpb_get_page_id (LOG_PAGE *log_pgptr)
 
void logpb_dump (THREAD_ENTRY *thread_p, FILE *out_fp)
 
int logpb_initialize_header (THREAD_ENTRY *thread_p, LOG_HEADER *loghdr, const char *prefix_logname, DKNPAGES npages, INT64 *db_creation)
 
LOG_PAGElogpb_create_header_page (THREAD_ENTRY *thread_p)
 
void logpb_fetch_header (THREAD_ENTRY *thread_p, LOG_HEADER *hdr)
 
void logpb_fetch_header_with_buffer (THREAD_ENTRY *thread_p, LOG_HEADER *hdr, LOG_PAGE *log_pgptr)
 
void logpb_flush_header (THREAD_ENTRY *thread_p)
 
int logpb_fetch_page (THREAD_ENTRY *thread_p, const LOG_LSA *req_lsa, LOG_CS_ACCESS_MODE access_mode, LOG_PAGE *log_pgptr)
 
int logpb_copy_page_from_log_buffer (THREAD_ENTRY *thread_p, LOG_PAGEID pageid, LOG_PAGE *log_pgptr)
 
int logpb_copy_page_from_file (THREAD_ENTRY *thread_p, LOG_PAGEID pageid, LOG_PAGE *log_pgptr)
 
int logpb_read_page_from_file (THREAD_ENTRY *thread_p, LOG_PAGEID pageid, LOG_CS_ACCESS_MODE access_mode, LOG_PAGE *log_pgptr)
 
int logpb_read_page_from_active_log (THREAD_ENTRY *thread_p, LOG_PAGEID pageid, int num_pages, bool decrypt_needed, LOG_PAGE *log_pgptr)
 
int logpb_write_page_to_disk (THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr, LOG_PAGEID logical_pageid)
 
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 *creation_time, float *db_compatibility, int *db_charset)
 
int logpb_fetch_start_append_page (THREAD_ENTRY *thread_p)
 
LOG_PAGElogpb_fetch_start_append_page_new (THREAD_ENTRY *thread_p)
 
int logpb_prior_lsa_append_all_list (THREAD_ENTRY *thread_p)
 
void logpb_dump_log_page_area (THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr, int offset, int length)
 
void logpb_page_get_first_null_block_lsa (THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr, LOG_LSA *first_null_block_lsa)
 
void logpb_flush_pages_direct (THREAD_ENTRY *thread_p)
 
void logpb_flush_pages (THREAD_ENTRY *thread_p, LOG_LSA *flush_lsa)
 
void logpb_force_flush_pages (THREAD_ENTRY *thread_p)
 
void logpb_force_flush_header_and_pages (THREAD_ENTRY *thread_p)
 
void logpb_invalid_all_append_pages (THREAD_ENTRY *thread_p)
 
void logpb_flush_log_for_wal (THREAD_ENTRY *thread_p, const LOG_LSA *lsa_ptr)
 
void logpb_create_log_info (const char *logname_info, const char *db_fullname)
 
bool logpb_find_volume_info_exist (void)
 
int logpb_create_volume_info (const char *db_fullname)
 
int logpb_recreate_volume_info (THREAD_ENTRY *thread_p)
 
VOLID logpb_add_volume (const char *db_fullname, VOLID new_volid, const char *new_volfullname, DISK_VOLPURPOSE new_volpurpose)
 
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)
 
LOG_PHY_PAGEID logpb_to_physical_pageid (LOG_PAGEID logical_pageid)
 
bool logpb_is_page_in_archive (LOG_PAGEID pageid)
 
bool logpb_is_smallest_lsa_in_archive (THREAD_ENTRY *thread_p)
 
int logpb_get_archive_number (THREAD_ENTRY *thread_p, LOG_PAGEID pageid)
 
void logpb_decache_archive_info (THREAD_ENTRY *thread_p)
 
LOG_PAGElogpb_fetch_from_archive (THREAD_ENTRY *thread_p, LOG_PAGEID pageid, LOG_PAGE *log_pgptr, int *ret_arv_num, LOG_ARV_HEADER *ret_arv_hdr, bool is_fatal)
 
int logpb_remove_archive_logs_exceed_limit (THREAD_ENTRY *thread_p, int max_count)
 
void logpb_remove_archive_logs (THREAD_ENTRY *thread_p, const char *info_reason)
 
void logpb_copy_from_log (THREAD_ENTRY *thread_p, char *area, int length, LOG_LSA *log_lsa, LOG_PAGE *log_page_p)
 
int logpb_initialize_log_names (THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname)
 
bool logpb_exist_log (THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname)
 
void logpb_checkpoint_trans (LOG_INFO_CHKPT_TRANS *chkpt_entries, log_tdes *tdes, int &ntrans, int &ntops, LOG_LSA &smallest_lsa)
 
int logpb_checkpoint_topops (THREAD_ENTRY *thread_p, LOG_INFO_CHKPT_SYSOP *&chkpt_topops, LOG_INFO_CHKPT_TRANS *chkpt_trans, LOG_REC_CHKPT &tmp_chkpt, log_tdes *tdes, int &ntops, size_t &length_all_tops)
 
LOG_PAGEID logpb_checkpoint (THREAD_ENTRY *thread_p)
 
void logpb_dump_checkpoint_trans (FILE *out_fp, int length, void *data)
 
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 logpb_restore (THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *prefix_logname, bo_restart_arg *r_args)
 
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 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)
 
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)
 
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)
 
void logpb_fatal_error (THREAD_ENTRY *thread_p, bool log_exit, const char *file_name, const int lineno, const char *fmt,...)
 
void logpb_fatal_error_exit_immediately_wo_flush (THREAD_ENTRY *thread_p, const char *file_name, const int lineno, const char *fmt,...)
 
int logpb_check_and_reset_temp_lsa (THREAD_ENTRY *thread_p, VOLID volid)
 
void logpb_initialize_arv_page_info_table (void)
 
void logpb_initialize_logging_statistics (void)
 
int logpb_background_archiving (THREAD_ENTRY *thread_p)
 
void xlogpb_dump_stat (FILE *outfp)
 
bool logpb_need_wal (const LOG_LSA *lsa)
 
char * logpb_backup_level_info_to_string (char *buf, int buf_size, const LOG_HDR_BKUP_LEVEL_INFO *info)
 
LOG_PAGEID logpb_find_oldest_available_page_id (THREAD_ENTRY *thread_p)
 
int logpb_find_oldest_available_arv_num (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)
 
void logpb_vacuum_reset_log_header_cache (THREAD_ENTRY *thread_p, LOG_HEADER *loghdr)
 
VACUUM_LOG_BLOCKID logpb_last_complete_blockid (void)
 
int logpb_page_check_corruption (THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr, bool *is_page_corrupted)
 
void logpb_debug_check_log_page (THREAD_ENTRY *thread_p, void *log_pgptr_ptr)
 
size_t logpb_get_memsize ()
 
TDE_ALGORITHM logpb_get_tde_algorithm (const LOG_PAGE *log_pgptr)
 
void logpb_set_tde_algorithm (THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr, const TDE_ALGORITHM tde_algo)
 

Variables

static int rv
 
int log_default_input_for_archive_log_location = -1
 
LOG_PB_GLOBAL_DATA log_Pb
 
LOG_LOGGING_STAT log_Stat
 
static ARV_LOG_PAGE_INFO_TABLE logpb_Arv_page_info_table
 
static bool logpb_Initialized = false
 
static bool logpb_Logging = false
 

Macro Definition Documentation

#define ARV_PAGE_INFO_TABLE_SIZE   256
#define COND_BROADCAST (   a)

Definition at line 117 of file log_page_buffer.c.

Referenced by os_send_signal().

#define COND_DESTROY (   a)

Definition at line 119 of file log_page_buffer.c.

#define COND_INIT (   a)

Definition at line 115 of file log_page_buffer.c.

#define detailed_er_log (   ...)    if (detailed_logging) _er_log_debug (ARG_FILE_LINE, __VA_ARGS__)

Referenced by logpb_checkpoint().

#define LOG_APPEND_ADVANCE_WHEN_DOESNOT_FIT (   thread_p,
  length 
)
Value:
do { \
if (log_Gl.hdr.append_lsa.offset + (int) (length) >= (int) LOGAREA_SIZE) \
{ \
} \
} while (0)
#define LOGAREA_SIZE
Definition: log_impl.h:116
LOG_GLOBAL log_Gl
LOG_HEADER hdr
Definition: log_impl.h:653
LOG_LSA append_lsa
if(extra_options)
Definition: dynamic_load.c:958
static void logpb_next_append_page(THREAD_ENTRY *thread_p, LOG_SETDIRTY current_setdirty)
std::int64_t offset
Definition: log_lsa.hpp:37

Definition at line 169 of file log_page_buffer.c.

Referenced by logpb_append_next_record(), logpb_end_append(), and logpb_start_append().

#define LOG_APPEND_ALIGN (   thread_p,
  current_setdirty 
)
Value:
do { \
if ((current_setdirty) == LOG_SET_DIRTY) \
{ \
} \
{ \
} \
} while (0)
#define LOGAREA_SIZE
Definition: log_impl.h:116
LOG_GLOBAL log_Gl
LOG_HEADER hdr
Definition: log_impl.h:653
void logpb_set_dirty(THREAD_ENTRY *thread_p, LOG_PAGE *log_pgptr)
LOG_LSA append_lsa
LOG_APPEND_INFO append
Definition: log_impl.h:651
LOG_PAGE * log_pgptr
Definition: log_append.hpp:78
if(extra_options)
Definition: dynamic_load.c:958
#define DOUBLE_ALIGNMENT
Definition: memory_alloc.h:64
#define DB_ALIGN(offset, align)
Definition: memory_alloc.h:84
static void logpb_next_append_page(THREAD_ENTRY *thread_p, LOG_SETDIRTY current_setdirty)
std::int64_t offset
Definition: log_lsa.hpp:37

Definition at line 156 of file log_page_buffer.c.

Referenced by logpb_append_crumbs(), logpb_append_data(), and logpb_end_append().

#define LOG_APPEND_SETDIRTY_ADD_ALIGN (   thread_p,
  add 
)
Value:
do { \
} while (0)
LOG_GLOBAL log_Gl
LOG_HEADER hdr
Definition: log_impl.h:653
LOG_LSA append_lsa
#define LOG_APPEND_ALIGN(thread_p, current_setdirty)
std::int64_t offset
Definition: log_lsa.hpp:37

Definition at line 177 of file log_page_buffer.c.

Referenced by logpb_start_append().

#define log_archive_er_log (   ...)    if (prm_get_bool_value (PRM_ID_DEBUG_LOG_ARCHIVES)) _er_log_debug (ARG_FILE_LINE, __VA_ARGS__)

Definition at line 123 of file log_page_buffer.c.

Referenced by logpb_archive_active_log(), and logpb_background_archiving().

#define LOG_LAST_APPEND_PTR ( )    ((char *) log_Gl.append.log_pgptr->area + LOGAREA_SIZE)

Definition at line 154 of file log_page_buffer.c.

Referenced by logpb_append_crumbs(), and logpb_append_data().

#define LOG_MAX_LOGINFO_LINE   (PATH_MAX * 4)

Definition at line 262 of file log_page_buffer.c.

Referenced by logpb_get_guess_archive_num().

#define LOGPB_ACTIVE_NPAGES   (log_Gl.hdr.npages)
#define LOGPB_AT_NEXT_ARCHIVE_PAGE_ID (   pageid)    (logpb_to_physical_pageid(pageid) == log_Gl.hdr.nxarv_phy_pageid)

Definition at line 149 of file log_page_buffer.c.

Referenced by logpb_next_append_page().

#define LOGPB_FIND_BUFPTR (   bufid)    &log_Pb.buffers[(bufid)]

Definition at line 126 of file log_page_buffer.c.

Referenced by logpb_dump_pages(), logpb_invalidate_pool(), and logpb_is_any_dirty().

#define LOGPB_FIRST_ACTIVE_PAGE_ID   (log_Gl.hdr.fpageid)

Definition at line 134 of file log_page_buffer.c.

Referenced by logpb_to_physical_pageid().

#define LOGPB_HEADER_PAGE_ID
Value:
(-9) /* The first log page in the infinite log sequence. It is always kept
* on the active portion of the log. Log records are not stored on this
* page. This page is backed up in all archive logs */

Definition at line 130 of file log_page_buffer.c.

Referenced by logpb_archive_active_log(), logpb_copy_database(), logpb_copy_page(), logpb_create_header_page(), logpb_debug_check_log_page(), logpb_fetch_header_from_active_log(), logpb_fetch_header_with_buffer(), logpb_flush_header(), logpb_flush_page(), logpb_locate_page(), logpb_peek_header_of_active_log_from_backup(), logpb_set_dirty(), logpb_to_physical_pageid(), and logpb_write_page_to_disk().

#define LOGPB_IS_ARCHIVE_PAGE (   pageid)    ((pageid) != LOGPB_HEADER_PAGE_ID && (pageid) < LOGPB_NEXT_ARCHIVE_PAGE_ID)

Definition at line 147 of file log_page_buffer.c.

Referenced by logpb_is_page_in_archive(), and logpb_write_page_to_disk().

#define LOGPB_IS_FIRST_PHYSICAL_PAGE (   pageid)    (logpb_to_physical_pageid(pageid) == 1)

Definition at line 144 of file log_page_buffer.c.

Referenced by logpb_next_append_page().

#define LOGPB_LAST_ACTIVE_PAGE_ID   (log_Gl.hdr.nxarv_pageid + log_Gl.hdr.npages - 1)

Definition at line 135 of file log_page_buffer.c.

Referenced by logpb_flush_page(), logpb_set_dirty(), and logpb_write_page_to_disk().

#define LOGPB_NEXT_ARCHIVE_PAGE_ID   (log_Gl.hdr.nxarv_pageid)
#define LOGPB_PHYSICAL_HEADER_PAGE_ID   0
#define pthread_mutex_destroy (   a)
#define pthread_mutex_init (   a,
 
)

Definition at line 109 of file log_page_buffer.c.

Referenced by logpb_initialize_flush_info(), and logpb_initialize_pool().

Typedef Documentation

typedef struct arv_page_info ARV_PAGE_INFO
typedef struct log_buffer LOG_BUFFER

Definition at line 185 of file log_page_buffer.c.

Definition at line 235 of file log_page_buffer.c.

Definition at line 223 of file log_page_buffer.c.

Enumeration Type Documentation

Enumerator
LOGPB_APPENDREC_IN_PROGRESS 
LOGPB_APPENDREC_PARTIAL_FLUSHED_END_OF_LOG 
LOGPB_APPENDREC_PARTIAL_ENDED 
LOGPB_APPENDREC_PARTIAL_FLUSHED_ORIGINAL 
LOGPB_APPENDREC_SUCCESS 

Definition at line 209 of file log_page_buffer.c.

Function Documentation

static int logpb_add_archive_page_info ( THREAD_ENTRY thread_p,
int  arv_num,
LOG_PAGEID  start_page,
LOG_PAGEID  end_page 
)
static
VOLID logpb_add_volume ( const char *  db_fullname,
VOLID  new_volid,
const char *  new_volfullname,
DISK_VOLPURPOSE  new_volpurpose 
)
static void logpb_append_archives_removed_to_log_info ( int  first,
int  last,
const char *  info_reason 
)
static
static void logpb_append_data ( THREAD_ENTRY thread_p,
int  length,
const char *  data 
)
static
static void logpb_archive_active_log ( THREAD_ENTRY thread_p)
static

Definition at line 5612 of file log_page_buffer.c.

References log_global::append, log_header::append_lsa, log_global::archive, log_page::area, ARG_FILE_LINE, log_arv_header::arv_num, assert, log_global::bg_archive_info, CUBRID_MAGIC_LOG_ARCHIVE, CUBRID_MAGIC_MAX_LENGTH, background_archiving_info::current_page_id, log_header::db_creation, log_arv_header::db_creation, dwb_is_created(), ER_FATAL_ERROR_SEVERITY, ER_LOG_ARCHIVE_CREATED, ER_LOG_CREATE_LOGARCHIVE_FAIL, er_log_debug, ER_LOG_MOUNT_FAIL, ER_LOG_WRITE, ER_NOTIFICATION_SEVERITY, er_set(), error(), fileio_dismount(), fileio_format(), fileio_make_log_archive_name(), fileio_mount(), fileio_rename(), FILEIO_SYNC_ONLY, fileio_synchronize(), fileio_unformat(), fileio_write(), FILEIO_WRITE_DEFAULT_WRITE, FILEIO_WRITE_NO_COMPENSATE_WRITE, fileio_write_pages(), log_hdrpage::flags, log_arv_header::fpageid, free_and_init, HA_DISABLED, log_archives::hdr, log_page::hdr, log_global::hdr, IO_MAX_PAGE_SIZE, log_header::last_arv_num_for_syscrashes, background_archiving_info::last_sync_pageid, LOG_ARCHIVE_CS_ENTER, LOG_ARCHIVE_CS_EXIT, log_archive_er_log, log_Archive_path, LOG_CS_OWN_WRITE_MODE(), log_Db_fullname, LOG_DBLOG_ARCHIVE_VOLID, LOG_DBLOG_BG_ARCHIVE_VOLID, log_dump_log_info(), log_Gl, log_Name_bg_archive, log_Name_info, log_Name_removed_archive, LOG_PAGE_INIT_VALUE, LOG_PAGESIZE, log_Prefix, log_wakeup_remove_log_archive_daemon(), log_hdrpage::logical_pageid, logpb_add_archive_page_info(), logpb_dismount_log_archive(), logpb_fatal_error(), logpb_fetch_from_archive(), logpb_flush_all_append_pages(), logpb_flush_header(), LOGPB_HEADER_PAGE_ID, LOGPB_IO_NPAGES, logpb_log, logpb_read_page_from_active_log(), logpb_remove_archive_logs_exceed_limit(), logpb_set_page_checksum(), logpb_to_physical_pageid(), log_arv_header::magic, MAX_ALIGNMENT, MSGCAT_CATALOG_CUBRID, MSGCAT_LOG_LOGINFO_ARCHIVE, MSGCAT_LOG_LOGINFO_COMMENT_UNUSED_ARCHIVE_NAME, msgcat_message(), MSGCAT_SET_LOG, log_header::next_trid, log_arv_header::next_trid, NO_ERROR, log_header::npages, log_arv_header::npages, NULL, NULL_OFFSET, NULL_PAGEID, NULL_VOLDES, NULL_VOLID, log_header::nxarv_num, log_header::nxarv_pageid, log_header::nxarv_phy_pageid, log_hdrpage::offset, os_rename_file(), log_lsa::pageid, log_buffer::pageid, perfmon_inc_stat(), log_append_info::prev_lsa, prm_get_bool_value(), prm_get_integer_value(), PRM_ID_LOG_BACKGROUND_ARCHIVING, PRM_ID_SUPPRESS_FSYNC, PSTAT_LOG_NUM_ARCHIVES, PTR_ALIGN, background_archiving_info::start_page_id, log_archives::vdes, background_archiving_info::vdes, log_append_info::vdes, and log_header::was_active_log_reset.

Referenced by logpb_backup(), and logpb_next_append_page().

Here is the caller graph for this function:

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 
)

Definition at line 7427 of file log_page_buffer.c.

References log_header::append_lsa, ARG_FILE_LINE, assert, ASSERT_ERROR, assert_release, fileio_backup_record_info::at_time, log_header::bkinfo, io_backup_session::bkup, log_hdr_bkup_level_info::bkup_attime, log_header::bkup_level0_lsa, log_header::bkup_level1_lsa, log_header::bkup_level2_lsa, fileio_backup_buffer::bkuphdr, boot_db_name(), log_header::chkpt_lsa, CTIME_MAX, fileio_backup_buffer::current_path, log_header::db_creation, fileio_backup_header::db_fullname, disk_lock_extend(), disk_unlock_extend(), fileio_backup_buffer::dtype, er_errid(), ER_ERROR_SEVERITY, ER_FAILED, ER_FATAL_ERROR_SEVERITY, ER_INTERRUPTED, ER_LOG_BACKUP_CS_ENTER, ER_LOG_BACKUP_CS_EXIT, ER_LOG_BACKUP_LEVEL_NOGAPS, ER_LOG_BKUP_DUPLICATE_REQUESTS, ER_LOG_CANNOT_ACCESS_BACKUP, ER_LOG_CREATE_DBBACKUP_DIRINFO, ER_LOG_DBBACKUP_FAIL, ER_NOTIFICATION_SEVERITY, er_set(), er_set_with_oserror(), error(), fileio_abort_backup(), FILEIO_BACKUP_BIG_INCREMENT_LEVEL, FILEIO_BACKUP_FULL_LEVEL, FILEIO_BACKUP_SMALL_INCREMENT_LEVEL, FILEIO_BACKUP_UNDEFINED_LEVEL, FILEIO_BACKUP_VOL_DEVICE, fileio_backup_volume(), FILEIO_BACKUP_WRITE, fileio_clear_backup_info_level(), fileio_dismount(), fileio_finalize_backup_info(), fileio_find_next_perm_volume(), fileio_finish_backup(), FILEIO_FIRST_BACKUP_VOL_INFO, fileio_get_backup_info_volume_name(), fileio_get_base_file_name(), fileio_get_directory_path(), fileio_get_volume_label(), fileio_get_zip_level_string(), fileio_get_zip_method_string(), FILEIO_INITIAL_BACKUP_UNITS, fileio_initialize_backup(), fileio_is_volume_exist(), fileio_is_volume_exist_and_file(), fileio_make_backup_name(), fileio_make_volume_info_name(), fileio_mount(), FILEIO_NO_BACKUP_UNITS, FILEIO_PROMPT_DISPLAY_ONLY, fileio_read_backup_info_entries(), fileio_remove_all_backup(), fileio_request_user_response(), fileio_start_backup(), FILEIO_ZIP_NONE_METHOD, log_global::hdr, log_header::last_arv_num_for_syscrashes, fileio_backup_header::level, LOG_CS_ENTER(), LOG_CS_EXIT(), log_Db_fullname, LOG_DBFIRST_VOLID, LOG_DBLOG_ACTIVE_VOLID, LOG_DBLOG_BKUPINFO_VOLID, LOG_DBLOG_INFO_VOLID, LOG_DBTDE_KEYS_VOLID, LOG_DBVOLINFO_VOLID, log_Gl, log_Name_active, log_Name_bkupinfo, log_Name_info, log_Path, logpb_archive_active_log(), logpb_backup_for_volume(), logpb_flush_header(), logpb_get_archive_number(), logpb_initialize_backup_info(), logpb_is_page_in_archive(), LOGPB_NEXT_ARCHIVE_PAGE_ID, logpb_remote_ask_user_before_delete_volumes(), logpb_remove_archive_logs(), logpb_update_backup_volume_info(), logtb_get_check_interrupt(), logtb_is_interrupted(), LSA_COPY(), LSA_ISNULL(), LSA_LT(), LSA_SET_NULL(), MSGCAT_CATALOG_CUBRID, MSGCAT_LOG_BACKUP_HALTED_BY_USER, MSGCAT_LOG_DATABASE_BACKUP_WAS_TAKEN, msgcat_message(), MSGCAT_SET_LOG, NO_ERROR, NULL, NULL_PAGEID, NULL_VOLDES, NULL_VOLID, fileio_thread_info::num_threads, log_header::nxarv_num, log_lsa::offset, log_lsa::pageid, PEEK, log_header::prefix_name, prm_get_integer_value(), PRM_ID_IO_BACKUP_SLEEP_MSECS, pthread_mutex_lock, pthread_mutex_unlock, io_backup_session::read_thread_info, log_global::run_nxchkpt_atpageid, rv, fileio_backup_header::skip_activelog, log_header::smallest_lsa_at_last_chkpt, fileio_backup_header::start_time, tde_copy_keys_file(), tde_make_keys_file_fullname(), thread_sleep(), io_backup_session::type, fileio_backup_header::unit_num, vacuum_er_log, VACUUM_ER_LOG_ARCHIVES, vacuum_min_log_pageid_to_keep(), and io_backup_session::verbose_fp.

Referenced by xboot_backup().

Here is the caller graph for this function:

char* logpb_backup_level_info_to_string ( char *  buf,
int  buf_size,
const LOG_HDR_BKUP_LEVEL_INFO info 
)

Definition at line 11074 of file log_page_buffer.c.

References log_hdr_bkup_level_info::bkup_attime, if(), and strlen.

Referenced by log_active_log_header_next_scan().

Here is the caller graph for this function:

int logpb_check_and_reset_temp_lsa ( THREAD_ENTRY thread_p,
VOLID  volid 
)
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 
)

Definition at line 10373 of file log_page_buffer.c.

References log_Name_active, log_Name_info, log_Name_volinfo, logpb_check_if_exists(), logpb_initialize_log_names(), and NO_ERROR.

Referenced by xboot_initialize_server().

Here is the caller graph for this function:

static bool logpb_check_if_exists ( const char *  fname,
char *  first_vol 
)
static

Definition at line 10343 of file log_page_buffer.c.

References ARG_FILE_LINE, ER_BO_VOLUME_EXISTS, ER_ERROR_SEVERITY, and er_set().

Referenced by logpb_check_exist_any_volumes().

Here is the caller graph for this function:

static int logpb_check_stop_at_time ( FILEIO_BACKUP_SESSION session,
time_t  stop_at,
time_t  backup_time 
)
static

Definition at line 8215 of file log_page_buffer.c.

References ARG_FILE_LINE, CTIME_MAX, ER_ERROR_SEVERITY, ER_LOG_UPTODATE_ERROR, er_set(), NO_ERROR, and strlen.

Referenced by logpb_restore().

Here is the caller graph for this function:

LOG_PAGEID logpb_checkpoint ( THREAD_ENTRY thread_p)

Definition at line 6746 of file log_page_buffer.c.

References log_header::append_lsa, log_global::archive, ARG_FILE_LINE, assert, log_header::avg_nlocks, log_header::avg_ntrans, BO_IS_SERVER_RESTARTED, log_global::chkpt_every_npages, log_header::chkpt_lsa, log_global::chkpt_redo_lsa, log_prior_node::data_header, detailed_er_log, disk_set_checkpoint(), ER_LOG_CHECKPOINT_FINISHED, ER_LOG_CHECKPOINT_STARTED, er_log_debug, ER_LOG_MOUNT_FAIL, ER_NOTIFICATION_SEVERITY, er_set(), fileio_find_next_perm_volume(), fileio_get_volume_descriptor(), fileio_get_volume_label(), fileio_make_log_archive_name(), FILEIO_SYNC_ALSO_FLUSH_DWB, fileio_synchronize(), fileio_synchronize_all(), free_and_init, log_global::hdr, i, log_header::last_arv_num_for_syscrashes, lock_get_number_object_locks(), log_Archive_path, LOG_CS_ENTER(), LOG_CS_EXIT(), LOG_CS_OWN_WRITE_MODE(), LOG_DBFIRST_VOLID, log_dump_log_info(), LOG_END_CHKPT, LOG_FIND_TDES(), log_Gl, log_Name_info, log_Prefix, LOG_START_CHKPT, LOG_SYSTEM_TRAN_INDEX, logpb_checkpoint_topops(), logpb_checkpoint_trans(), logpb_dismount_log_archive(), logpb_fetch_from_archive(), logpb_flush_header(), logpb_flush_pages_direct(), logpb_is_page_in_archive(), logtb_clear_tdes(), logtb_find_smallest_lsa(), logtb_reflect_global_unique_stats_to_btree(), LSA_COPY(), LSA_GT(), LSA_ISNULL(), LSA_LE(), LSA_LT(), LSA_SET_NULL(), log_system_tdes::map_all_tdes(), MSGCAT_CATALOG_CUBRID, MSGCAT_LOG_LOGINFO_COMMENT_ARCHIVE_NONEEDED, MSGCAT_LOG_LOGINFO_COMMENT_MANY_ARCHIVES_NONEEDED, msgcat_message(), MSGCAT_SET_LOG, NO_ERROR, log_rec_chkpt::ntops, log_rec_chkpt::ntrans, NULL, NULL_PAGEID, NULL_VOLDES, NULL_VOLID, trantable::num_assigned_indices, trantable::num_total_indices, log_header::nxarv_num, log_lsa::pageid, PEEK, perfmon_inc_stat(), pgbuf_flush_checkpoint(), log_global::prior_info, prior_lsa_alloc_and_copy_data(), log_prior_lsa_info::prior_lsa_mutex, prior_lsa_next_record(), prior_lsa_next_record_with_lock(), prm_get_bool_value(), PRM_ID_LOG_CHKPT_DETAILED, PSTAT_LOG_NUM_END_CHECKPOINTS, PSTAT_LOG_NUM_START_CHECKPOINTS, pthread_mutex_lock, pthread_mutex_unlock, log_rec_chkpt::redo_lsa, log_global::run_nxchkpt_atpageid, RV_NOT_DEFINED, log_header::smallest_lsa_at_last_chkpt, TR_TABLE_CS_ENTER, TR_TABLE_CS_EXIT, log_global::trantable, log_archives::vdes, and xboot_find_last_permanent().

Referenced by boot_create_all_volumes(), log_complete(), log_complete_for_2pc(), log_final(), log_is_log_flush_daemon_available(), log_recovery(), and log_sysop_end_final().

Here is the caller graph for this function:

static int logpb_compute_page_checksum ( THREAD_ENTRY thread_p,
LOG_PAGE log_pgptr,
int *  checksum_crc32 
)
static

Definition at line 441 of file log_page_buffer.c.

References assert, log_hdrpage::checksum, crypt_crc32(), log_page::hdr, i, IO_MAX_PAGE_SIZE, LOG_PAGESIZE, NO_ERROR, NULL, and p.

Referenced by logpb_page_has_valid_checksum(), and logpb_set_page_checksum().

Here is the caller graph for this function:

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 
)

Definition at line 9225 of file log_page_buffer.c.

References log_page::area, ARG_FILE_LINE, log_rec_header::back_lsa, boot_db_full_name(), log_header::chkpt_lsa, log_header::db_creation, DB_PERMANENT_DATA_PURPOSE, DISK_FLUSH, disk_set_link(), DISK_UNKNOWN_PURPOSE, dwb_destroy(), dwb_is_created(), log_header::eof_lsa, ER_ERROR_SEVERITY, ER_FAILED, ER_LOG_MOUNT_FAIL, er_set(), ER_TDE_COPY_KEYS_FILE_FAIL, error(), fileio_dismount(), fileio_find_next_perm_volume(), fileio_format(), fileio_make_backup_volume_info_name(), fileio_make_log_active_name(), fileio_make_log_info_name(), fileio_make_volume_info_name(), fileio_mount(), FILEIO_SYNC_ALSO_FLUSH_DWB, fileio_synchronize(), fileio_unformat(), fileio_write(), FILEIO_WRITE_DEFAULT_WRITE, FILEIO_WRITE_NO_COMPENSATE_WRITE, log_hdrpage::flags, log_rec_header::forw_lsa, free_and_init, log_page::hdr, log_global::hdr, log_Db_fullname, LOG_DBCOPY_VOLID, LOG_DBFIRST_VOLID, LOG_DBLOG_ACTIVE_VOLID, LOG_DBLOG_BKUPINFO_VOLID, log_dump_log_info(), LOG_END_OF_LOG, log_Gl, LOG_PAGE_INIT_VALUE, LOG_PAGESIZE, LOG_SYSTEM_TRANID, log_hdrpage::logical_pageid, logpb_add_volume(), logpb_copy_log_header(), logpb_copy_volume(), logpb_create_log_info(), logpb_create_volume_info(), logpb_flush_pages_direct(), LOGPB_HEADER_PAGE_ID, logpb_initialize_header(), logpb_next_where_path(), LOGPB_PHYSICAL_HEADER_PAGE_ID, logpb_set_page_checksum(), logpb_start_where_path(), logpb_to_physical_pageid(), logpb_verify_length(), LSA_SET_NULL(), MSGCAT_CATALOG_CUBRID, MSGCAT_LOG_LOGINFO_ACTIVE, msgcat_message(), MSGCAT_SET_LOG, NO_ERROR, log_header::npages, NULL, NULL_OFFSET, NULL_VOLDES, NULL_VOLID, log_lsa::offset, log_hdrpage::offset, log_lsa::pageid, pgbuf_flush_all_unfixed_and_set_lsa_as_null(), pgbuf_invalidate_all, log_buffer::phy_pageid, log_rec_header::prev_tranlsa, tde_copy_keys_file(), tde_make_keys_file_fullname(), log_rec_header::trid, and log_rec_header::type.

Referenced by xboot_copy().

Here is the caller graph for this function:

static int logpb_copy_log_header ( THREAD_ENTRY thread_p,
LOG_HEADER to_hdr,
const LOG_HEADER from_hdr 
)
static

Definition at line 1415 of file log_page_buffer.c.

References assert, LOG_CS_OWN_WRITE_MODE(), log_header::mvcc_next_id, NO_ERROR, NULL, and log_header::was_copied.

Referenced by logpb_copy_database().

Here is the caller graph for this function:

int logpb_copy_page_from_file ( THREAD_ENTRY thread_p,
LOG_PAGEID  pageid,
LOG_PAGE log_pgptr 
)
int logpb_copy_page_from_log_buffer ( THREAD_ENTRY thread_p,
LOG_PAGEID  pageid,
LOG_PAGE log_pgptr 
)
LOG_PAGE* logpb_create_header_page ( THREAD_ENTRY thread_p)

Definition at line 1397 of file log_page_buffer.c.

References assert, LOG_CS_OWN_WRITE_MODE(), logpb_create_page(), and LOGPB_HEADER_PAGE_ID.

Referenced by log_create_internal(), and log_recovery_resetlog().

Here is the caller graph for this function:

void logpb_create_log_info ( const char *  logname_info,
const char *  db_fullname 
)
LOG_PAGE* logpb_create_page ( THREAD_ENTRY thread_p,
LOG_PAGEID  pageid 
)

Definition at line 776 of file log_page_buffer.c.

References logpb_locate_page(), and NEW_PAGE.

Referenced by log_recovery_resetlog(), logpb_create_header_page(), and logpb_next_append_page().

Here is the caller graph for this function:

int logpb_create_volume_info ( const char *  db_fullname)
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 
)

Definition at line 10078 of file log_page_buffer.c.

References ALLOC_COPY, log_global::append, log_global::archive, trantable::area, log_global::bg_archive_info, log_pb_global_data::buffers, log_header::db_compatibility, log_header::db_iopagesize, log_header::db_logpagesize, db_set_page_size(), er_clear(), er_errid(), ER_IO_MOUNT_LOCKED, fileio_dismount(), fileio_finalize_backup_info(), fileio_find_next_perm_volume(), FILEIO_FIRST_BACKUP_VOL_INFO, fileio_get_volume_descriptor(), fileio_get_volume_label(), fileio_is_volume_exist(), fileio_make_dwb_name(), fileio_make_log_archive_name(), fileio_make_volume_info_name(), fileio_mount(), fileio_read_backup_info_entries(), fileio_remove_all_backup(), fileio_unformat(), log_global::hdr, i, IO_MAX_PAGE_SIZE, IO_PAGESIZE, log_header::last_deleted_arv_num, log_Archive_path, LOG_DBFIRST_VOLID, LOG_DBLOG_ACTIVE_VOLID, LOG_DBLOG_BKUPINFO_VOLID, LOG_DBLOG_INFO_VOLID, LOG_DBTDE_KEYS_VOLID, LOG_DBVOLINFO_VOLID, log_Gl, log_Name_active, log_Name_bg_archive, log_Name_bkupinfo, log_Name_info, log_Name_removed_archive, LOG_PAGESIZE, log_Path, log_append_info::log_pgptr, log_Prefix, logpb_dismount_log_archive(), logpb_fetch_header_with_buffer(), logpb_finalize_pool(), logpb_initialize_log_names(), logpb_initialize_pool(), logpb_Initialized, logtb_define_trantable_log_latch(), logtb_undefine_trantable(), MAX_ALIGNMENT, NO_ERROR, NULL, NULL_VOLDES, NULL_VOLID, pgbuf_invalidate_all, prm_get_bool_value(), PRM_ID_LOG_BACKGROUND_ARCHIVING, PTR_ALIGN, rel_disk_compatible(), tde_make_keys_file_fullname(), log_global::trantable, log_archives::vdes, background_archiving_info::vdes, and log_append_info::vdes.

Referenced by boot_create_all_volumes(), and boot_remove_all_volumes().

Here is the caller graph for this function:

void logpb_dump_log_page_area ( THREAD_ENTRY thread_p,
LOG_PAGE log_pgptr,
int  offset,
int  length 
)

Definition at line 3099 of file log_page_buffer.c.

References log_page::area, assert, log_hdrpage::checksum, log_page::hdr, i, LOGAREA_SIZE, log_hdrpage::logical_pageid, logpb_log, logpb_Logging, NULL, and ONE_K.

Referenced by logpb_flush_all_append_pages().

Here is the caller graph for this function:

static void logpb_dump_pages ( FILE *  out_fp)
static
static void logpb_dump_parameter ( FILE *  outfp)
static

Definition at line 10966 of file log_page_buffer.c.

References prm_get_bool_value(), prm_get_integer_value(), PRM_ID_LOG_ASYNC_COMMIT, and PRM_ID_LOG_GROUP_COMMIT_INTERVAL_MSECS.

Referenced by xlogpb_dump_stat().

Here is the caller graph for this function:

static void logpb_dump_to_flush_page ( FILE *  out_fp)
static

Definition at line 1201 of file log_page_buffer.c.

References log_global::flush_info, i, log_Gl, logpb_get_log_buffer(), log_flush_info::num_toflush, log_buffer::pageid, and log_flush_info::toflush.

Referenced by logpb_dump().

Here is the caller graph for this function:

bool logpb_exist_log ( THREAD_ENTRY thread_p,
const char *  db_fullname,
const char *  logpath,
const char *  prefix_logname 
)

Definition at line 6641 of file log_page_buffer.c.

References fileio_is_volume_exist(), log_Name_active, logpb_initialize_log_names(), logpb_is_pool_initialized(), and NO_ERROR.

Referenced by boot_remove_all_volumes().

Here is the caller graph for this function:

void logpb_fatal_error ( THREAD_ENTRY thread_p,
bool  log_exit,
const char *  file_name,
const int  lineno,
const char *  fmt,
  ... 
)

Definition at line 10428 of file log_page_buffer.c.

References logpb_fatal_error_internal().

Referenced by heap_get_visible_version_from_log(), log_2pc_commit_first_phase(), log_2pc_expand_ack_list(), log_2pc_read_prepare(), log_2pc_recovery_analysis_info(), log_2pc_recovery_start(), log_complete_for_2pc(), log_do_postpone(), log_find_end_log(), log_get_next_nested_top(), log_get_undo_record(), log_initialize_internal(), log_recovery(), log_recovery_abort_atomic_sysop(), log_recovery_abort_interrupted_sysop(), log_recovery_analysis(), log_recovery_find_first_postpone(), log_recovery_redo(), log_recovery_resetlog(), log_recovery_undo(), log_rollback(), log_rollback_record(), log_run_postpone_op(), log_rv_analysis_2pc_abort_decision(), log_rv_analysis_2pc_abort_inform_particps(), log_rv_analysis_2pc_commit_decision(), log_rv_analysis_2pc_commit_inform_particps(), log_rv_analysis_2pc_prepare(), log_rv_analysis_2pc_recv_ack(), log_rv_analysis_2pc_start(), log_rv_analysis_atomic_sysop_start(), log_rv_analysis_commit_with_postpone(), log_rv_analysis_compensate(), log_rv_analysis_dummy_head_postpone(), log_rv_analysis_end_checkpoint(), log_rv_analysis_postpone(), log_rv_analysis_run_postpone(), log_rv_analysis_save_point(), log_rv_analysis_sysop_end(), log_rv_analysis_sysop_start_postpone(), log_rv_analysis_undo_redo(), log_rv_analysis_will_commit(), log_rv_redo_record(), log_rv_undo_record(), logpb_append_next_record(), logpb_archive_active_log(), logpb_fetch_from_archive(), logpb_fetch_header_with_buffer(), logpb_flush_all_append_pages(), logpb_flush_header(), logpb_flush_page(), logpb_initialize_header(), logpb_initialize_log_names(), logpb_initialize_pool(), logpb_next_append_page(), logpb_restore(), logpb_start_append(), logpb_write_page_to_disk(), logtb_define_trantable_log_latch(), logtb_initialize_system_tdes(), logtb_rv_find_allocate_tran_index(), vacuum_fetch_log_page(), vacuum_process_log_block(), vacuum_process_log_record(), vacuum_read_log_aligned(), vacuum_recover_lost_block_data(), and vacuum_worker_allocate_resources().

void logpb_fatal_error_exit_immediately_wo_flush ( THREAD_ENTRY thread_p,
const char *  file_name,
const int  lineno,
const char *  fmt,
  ... 
)

Definition at line 10439 of file log_page_buffer.c.

References logpb_fatal_error_internal().

Referenced by spage_compact().

Here is the caller graph for this function:

LOG_PAGE* logpb_fetch_from_archive ( THREAD_ENTRY thread_p,
LOG_PAGEID  pageid,
LOG_PAGE log_pgptr,
int *  ret_arv_num,
LOG_ARV_HEADER ret_arv_hdr,
bool  is_fatal 
)

Definition at line 5151 of file log_page_buffer.c.

References log_global::append, log_global::archive, log_page::area, ARG_FILE_LINE, log_arv_header::arv_num, assert, ASSERT_ERROR, log_header::db_creation, log_arv_header::db_creation, difftime64, ER_FAILED, ER_FATAL_ERROR_SEVERITY, ER_LOG_DOESNT_CORRESPOND_TO_DATABASE, ER_LOG_NOTIN_ARCHIVE, ER_LOG_PAGE_CORRUPTED, ER_LOG_READ, er_msg(), er_set(), ER_WARNING_SEVERITY, fileio_dismount(), fileio_get_volume_label_by_fd(), fileio_is_volume_exist(), fileio_make_log_archive_name(), fileio_mount(), fileio_read(), log_arv_header::fpageid, log_archives::hdr, log_page::hdr, log_global::hdr, if(), IO_MAX_PAGE_SIZE, LOG_ARCHIVE_CS_ENTER, LOG_ARCHIVE_CS_EXIT, log_Archive_path, LOG_CS_OWN(), log_Db_fullname, LOG_DBLOG_ARCHIVE_VOLID, log_default_input_for_archive_log_location, log_Gl, log_is_in_crash_recovery(), LOG_PAGESIZE, log_Prefix, LOG_RESTARTED, log_hdrpage::logical_pageid, logpb_debug_check_log_page(), logpb_fatal_error(), logpb_get_guess_archive_num(), logpb_get_tde_algorithm(), logpb_is_archive_available(), logpb_log, logpb_set_unavailable_archive(), MAX_ALIGNMENT, MSGCAT_CATALOG_CUBRID, MSGCAT_LOG_INPUT_RANGE_ERROR, MSGCAT_LOG_LOGARCHIVE_NEEDED, MSGCAT_LOG_NEWLOCATION, MSGCAT_LOG_STARTS, msgcat_message(), MSGCAT_SET_LOG, NO_ERROR, log_arv_header::npages, NULL, NULL_PAGEID, NULL_VOLDES, log_header::nxarv_num, PEEK, perfmon_inc_stat(), log_buffer::phy_pageid, prm_get_bool_value(), PRM_ID_LOG_TRACE_DEBUG, PSTAT_LOG_NUM_IOREADS, PTR_ALIGN, log_global::rcv_phase, TDE_ALGORITHM_NONE, tde_decrypt_log_page(), log_archives::vdes, and log_append_info::vdes.

Referenced by logpb_archive_active_log(), logpb_checkpoint(), logpb_get_archive_number(), logpb_read_page_from_file(), and logwr_log_ha_filestat_to_string().

Here is the caller graph for this function:

void logpb_fetch_header ( THREAD_ENTRY thread_p,
LOG_HEADER hdr 
)
static void logpb_finalize_flush_info ( void  )
static
int logpb_find_oldest_available_arv_num ( THREAD_ENTRY thread_p)
bool logpb_find_volume_info_exist ( void  )

Definition at line 4632 of file log_page_buffer.c.

References fileio_is_volume_exist(), and log_Name_volinfo.

Referenced by boot_mount().

Here is the caller graph for this function:

static int logpb_flush_all_append_pages ( THREAD_ENTRY thread_p)
static

Definition at line 3193 of file log_page_buffer.c.

References log_global::append, log_header::append_lsa, log_page::area, ARG_FILE_LINE, assert, assert_release, log_rec_header::back_lsa, log_pb_global_data::buffers, log_hdrpage::checksum, clientids::client_type, log_logging_stat::commit_count, DB_CLIENT_TYPE_UNKNOWN, log_buffer::dirty, envvar_get(), log_header::eof_lsa, ER_FAILED, er_log_debug, error(), event_log_log_flush_thr_wait(), FILEIO_SYNC_ONLY, fileio_synchronize(), logwr_info::flush_completed, logwr_info::flush_end_cond, logwr_info::flush_end_mutex, log_global::flush_info, logwr_info::flush_start_mutex, logwr_info::flush_wait_cond, logwr_info::flush_wait_mutex, log_logging_stat::flushall_append_pages_call_count, log_rec_header::forw_lsa, log_append_info::get_nxio_lsa(), HA_DISABLED, log_page::hdr, log_global::hdr, i, log_logging_stat::last_commit_count_in_flush_pages, log_logging_stat::last_flush_count_by_trans, log_logging_stat::last_flush_sec_by_trans, logwr_info::last_writer_client_info, logwr_info::last_writer_elapsed_time, log_logging_stat::log_buffer_full_count, LOG_CS_DEMOTE(), LOG_CS_OWN_WRITE_MODE(), LOG_CS_PROMOTE(), LOG_END_OF_LOG, log_get_clock_msec(), log_Gl, log_Name_active, logpb_partial_append::log_page_record_header, LOG_PAGESIZE, log_append_info::log_pgptr, LOG_READ_NEXT_TRANID, log_hdrpage::logical_pageid, log_buffer::logpage, LOGPB_APPENDREC_IN_PROGRESS, LOGPB_APPENDREC_PARTIAL_ENDED, LOGPB_APPENDREC_PARTIAL_FLUSHED_END_OF_LOG, LOGPB_APPENDREC_PARTIAL_FLUSHED_ORIGINAL, LOGPB_APPENDREC_SUCCESS, logpb_debug_check_log_page(), logpb_dump(), logpb_dump_log_page_area(), logpb_fatal_error(), logpb_get_log_buffer(), logpb_get_log_buffer_index(), logpb_get_page_id(), logpb_is_any_dirty(), logpb_is_dirty(), logpb_log, logpb_Logging, logpb_start_append(), logpb_write_page_to_disk(), logpb_write_toflush_pages_to_archive(), logpb_writev_append_pages(), LOGWR_STATUS_FETCH, LOGWR_STATUS_WAIT, LSA_COPY(), LSA_SET_NULL(), log_flush_info::max_toflush, logwr_entry::next, NO_ERROR, NULL, NULL_PAGEID, NULL_VOLDES, log_flush_info::num_toflush, log_lsa::offset, logpb_partial_append::original_record_header, log_lsa::pageid, log_buffer::pageid, log_pb_global_data::partial_append, perfmon_add_stat(), log_buffer::phy_pageid, log_append_info::prev_lsa, log_rec_header::prev_tranlsa, prm_get_bool_value(), prm_get_integer_value(), PRM_ID_LOG_BACKGROUND_ARCHIVING, PRM_ID_LOG_TRACE_DEBUG, PRM_ID_LOG_TRACE_FLUSH_TIME_MSECS, PRM_ID_SUPPRESS_FSYNC, PSTAT_LOG_NUM_IOWRITES, pthread_mutex_lock, pthread_mutex_unlock, logpb_partial_append::record_header_p, rv, log_append_info::set_nxio_lsa(), logwr_info::skip_flush, logwr_entry::status, logpb_partial_append::status, thread_lock_entry(), THREAD_LOGWR_RESUMED, THREAD_LOGWR_SUSPENDED, logwr_entry::thread_p, THREAD_RESUME_DUE_TO_INTERRUPT, thread_unlock_entry(), thread_wakeup_already_had_mutex(), log_flush_info::toflush, log_logging_stat::total_commit_count_in_flush_pages, log_logging_stat::total_flush_count_by_trans, log_logging_stat::total_flush_sec_by_trans, log_logging_stat::total_sync_count, logwr_info::trace_last_writer, log_rec_header::trid, TT_DAEMON, TT_VACUUM_MASTER, TT_VACUUM_WORKER, log_rec_header::type, log_append_info::vdes, logwr_info::wr_list_mutex, log_global::writer_info, and logwr_info::writer_list.

Referenced by logpb_append_next_record(), logpb_archive_active_log(), logpb_end_append(), logpb_flush_pages_direct(), and logpb_next_append_page().

Here is the caller graph for this function:

void logpb_force_flush_header_and_pages ( THREAD_ENTRY thread_p)

Definition at line 4062 of file log_page_buffer.c.

References LOG_CS_ENTER(), LOG_CS_EXIT(), logpb_flush_header(), and logpb_flush_pages_direct().

Referenced by boot_after_copydb().

Here is the caller graph for this function:

int logpb_get_archive_number ( THREAD_ENTRY thread_p,
LOG_PAGEID  pageid 
)

Definition at line 4988 of file log_page_buffer.c.

References logpb_fetch_from_archive(), and NULL.

Referenced by log_recovery_resetlog(), logpb_backup(), logpb_remove_archive_logs(), logpb_remove_archive_logs_exceed_limit(), and xvacuum_dump().

Here is the caller graph for this function:

STATIC_INLINE int logpb_get_log_buffer_index ( LOG_PAGEID  log_pageid)

Definition at line 376 of file log_page_buffer.c.

References log_pb_global_data::num_buffers, and STATIC_INLINE.

Referenced by logpb_copy_page(), logpb_flush_all_append_pages(), and logpb_locate_page().

Here is the caller graph for this function:

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().

Here is the caller graph for this function:

LOG_PAGEID logpb_get_page_id ( LOG_PAGE log_pgptr)

Definition at line 1111 of file log_page_buffer.c.

References logpb_get_log_buffer(), and log_buffer::pageid.

Referenced by logpb_dump_information(), and logpb_flush_all_append_pages().

Here is the caller graph for this function:

void logpb_initialize_arv_page_info_table ( void  )

Definition at line 10808 of file log_page_buffer.c.

References ARV_LOG_PAGE_INFO_TABLE::rear.

Referenced by log_initialize_internal().

Here is the caller graph for this function:

static void logpb_initialize_backup_info ( LOG_HEADER loghdr)
static
int logpb_initialize_header ( THREAD_ENTRY thread_p,
LOG_HEADER loghdr,
const char *  prefix_logname,
DKNPAGES  npages,
INT64 *  db_creation 
)

Definition at line 1308 of file log_page_buffer.c.

References log_header::append_lsa, ARG_FILE_LINE, assert, log_header::avg_nlocks, log_header::avg_ntrans, log_header::bkinfo, log_hdr_bkup_level_info::bkup_attime, log_header::bkup_level0_lsa, log_header::bkup_level1_lsa, log_header::bkup_level2_lsa, log_header::chkpt_lsa, CUBRID_MAGIC_LOG_ACTIVE, CUBRID_MAGIC_MAX_LENGTH, log_header::db_charset, log_header::db_compatibility, log_header::db_creation, log_header::db_iopagesize, log_header::db_logpagesize, log_header::db_release, log_header::eof_lsa, ER_FATAL_ERROR_SEVERITY, ER_LOG_COMPILATION_RELEASE, er_set(), FILEIO_BACKUP_UNDEFINED_LEVEL, log_header::fpageid, log_header::ha_file_status, log_header::ha_server_state, HA_SERVER_STATE_IDLE, log_header::has_logging_been_skipped, i, IO_PAGESIZE, log_header::is_shutdown, lang_charset(), log_header::last_arv_num_for_syscrashes, log_header::last_deleted_arv_num, LOG_CS_OWN_WRITE_MODE(), LOG_ESTIMATE_NACTIVE_TRANS, LOG_ESTIMATE_NOBJ_LOCKS, LOG_PAGESIZE, LOG_SYSTEM_TRANID, logpb_fatal_error(), logpb_initialize_backup_info(), logpb_vacuum_reset_log_header_cache(), LSA_COPY(), LSA_SET_NULL(), log_header::magic, log_header::mvcc_next_id, MVCCID_FIRST, log_header::next_trid, NO_ERROR, log_header::npages, NULL, log_header::nxarv_num, log_header::nxarv_pageid, log_header::nxarv_phy_pageid, log_lsa::offset, log_lsa::pageid, log_header::perm_status_obsolete, log_header::prefix_name, rel_disk_compatible(), REL_MAX_RELEASE_LENGTH, rel_release_string(), log_header::smallest_lsa_at_last_chkpt, strlen, strncpy_bufsize, and log_header::vacuum_last_blockid.

Referenced by log_create_internal(), log_initialize_internal(), logpb_copy_database(), and logpb_fetch_header_with_buffer().

Here is the caller graph for this function:

static void logpb_initialize_log_buffer ( LOG_BUFFER log_buffer_p,
LOG_PAGE log_pg 
)
static
void logpb_initialize_logging_statistics ( void  )

Definition at line 10822 of file log_page_buffer.c.

Referenced by log_initialize_internal().

Here is the caller graph for this function:

int logpb_initialize_pool ( THREAD_ENTRY thread_p)
static bool logpb_is_any_dirty ( THREAD_ENTRY thread_p)
static
static bool logpb_is_archive_available ( THREAD_ENTRY thread_p,
int  arv_num 
)
static
static bool logpb_is_dirty ( THREAD_ENTRY thread_p,
LOG_PAGE log_pgptr 
)
static

Definition at line 953 of file log_page_buffer.c.

References assert, bool, log_buffer::dirty, LOG_CS_OWN_WRITE_MODE(), and logpb_get_log_buffer().

Referenced by logpb_flush_all_append_pages().

Here is the caller graph for this function:

static bool logpb_is_log_active_from_backup_useful ( THREAD_ENTRY thread_p,
const char *  active_log_path,
const char *  db_full_name 
)
static
bool logpb_is_pool_initialized ( void  )

Definition at line 719 of file log_page_buffer.c.

References assert, LOG_CS_OWN_WRITE_MODE(), logpb_Initialized, and NULL.

Referenced by log_final(), log_rv_outside_noop_redo(), logpb_exist_log(), and logtb_define_trantable().

Here is the caller graph for this function:

bool logpb_is_smallest_lsa_in_archive ( THREAD_ENTRY thread_p)
bool logpb_need_wal ( const LOG_LSA lsa)

Definition at line 11050 of file log_page_buffer.c.

References log_global::append, log_append_info::get_nxio_lsa(), log_Gl, and LSA_LE().

Referenced by dwb_flush_block(), logpb_flush_log_for_wal(), and pgbuf_flush_victim_candidates().

Here is the caller graph for this function:

static int logpb_next_where_path ( const char *  to_db_fullname,
const char *  toext_path,
const char *  ext_name,
char *  ext_path,
const char *  fileof_vols_and_wherepaths,
FILE *  where_paths_fp,
int  num_perm_vols,
VOLID  volid,
char *  from_volname,
char *  to_volname 
)
static
int logpb_page_check_corruption ( THREAD_ENTRY thread_p,
LOG_PAGE log_pgptr,
bool is_page_corrupted 
)

Definition at line 11329 of file log_page_buffer.c.

References assert, logpb_page_has_valid_checksum(), NO_ERROR, and NULL.

Referenced by log_recovery_analysis(), and logpb_debug_check_log_page().

Here is the caller graph for this function:

void logpb_page_get_first_null_block_lsa ( THREAD_ENTRY thread_p,
LOG_PAGE log_pgptr,
LOG_LSA first_null_block_lsa 
)

Definition at line 3151 of file log_page_buffer.c.

References assert, log_page::hdr, i, LOG_PAGE_INIT_VALUE, LOG_PAGESIZE, log_hdrpage::logical_pageid, LSA_SET_NULL(), MAX_ALIGNMENT, NULL, log_lsa::offset, ONE_K, log_lsa::pageid, and PTR_ALIGN.

Referenced by log_recovery_analysis().

Here is the caller graph for this function:

static int logpb_page_has_valid_checksum ( THREAD_ENTRY thread_p,
LOG_PAGE log_pgptr,
bool has_valid_checksum 
)
static

Definition at line 518 of file log_page_buffer.c.

References assert, log_hdrpage::checksum, log_page::hdr, log_hdrpage::logical_pageid, logpb_compute_page_checksum(), logpb_log, NO_ERROR, and NULL.

Referenced by logpb_page_check_corruption().

Here is the caller graph for this function:

static bool logpb_remote_ask_user_before_delete_volumes ( THREAD_ENTRY thread_p,
const char *  volpath 
)
static
static int logpb_remove_archive_logs_internal ( THREAD_ENTRY thread_p,
int  first,
int  last,
const char *  info_reason 
)
static
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 
)

Definition at line 9649 of file log_page_buffer.c.

References log_global::append, log_global::archive, ARG_FILE_LINE, log_global::bg_archive_info, log_header::bkup_level0_lsa, log_header::bkup_level1_lsa, log_header::bkup_level2_lsa, boot_db_full_name(), log_header::chkpt_lsa, log_header::db_creation, DB_PERMANENT_DATA_PURPOSE, DISK_DONT_FLUSH, DISK_FLUSH, disk_set_creation(), disk_set_link(), DISK_UNKNOWN_PURPOSE, ER_ERROR_SEVERITY, ER_FAILED, ER_LOG_MOUNT_FAIL, er_set(), er_set_with_oserror(), ER_TM_CROSS_DEVICE_LINK, ER_TM_GET_STAT_FAIL, ER_TM_IS_NOT_WRITEABLE, error(), fileio_dismount(), fileio_finalize_backup_info(), fileio_find_next_perm_volume(), fileio_find_previous_perm_volume(), FILEIO_FIRST_BACKUP_VOL_INFO, fileio_get_volume_descriptor(), fileio_get_volume_label(), fileio_is_volume_exist(), fileio_make_backup_volume_info_name(), fileio_make_log_active_name(), fileio_make_log_archive_name(), fileio_make_log_info_name(), fileio_mount(), fileio_read_backup_info_entries(), fileio_remove_all_backup(), fileio_rename(), FILEIO_SYNC_ALSO_FLUSH_DWB, fileio_synchronize(), fileio_unformat(), free_and_init, log_global::hdr, i, log_header::last_arv_num_for_syscrashes, log_header::last_deleted_arv_num, log_Archive_path, log_Db_fullname, LOG_DBFIRST_VOLID, LOG_DBLOG_ACTIVE_VOLID, LOG_DBLOG_BKUPINFO_VOLID, LOG_DBTDE_KEYS_VOLID, log_dump_log_info(), log_Gl, log_Name_active, log_Name_bg_archive, log_Name_bkupinfo, log_Name_info, log_Name_removed_archive, log_Name_volinfo, log_Prefix, logpb_add_volume(), logpb_create_log_info(), logpb_create_volume_info(), logpb_dismount_log_archive(), logpb_fetch_start_append_page(), logpb_finalize_pool(), logpb_flush_header(), logpb_flush_pages_direct(), logpb_initialize_log_names(), logpb_initialize_pool(), logpb_next_where_path(), logpb_start_where_path(), logpb_verify_length(), LSA_SET_NULL(), MSGCAT_CATALOG_CUBRID, MSGCAT_LOG_LOGINFO_ACTIVE, MSGCAT_LOG_LOGINFO_COMMENT_FROM_RENAMED, msgcat_message(), MSGCAT_SET_LOG, NO_ERROR, log_header::npages, NULL, NULL_VOLDES, NULL_VOLID, log_header::nxarv_num, PEEK, pgbuf_flush_all(), pgbuf_invalidate_all, log_header::prefix_name, prm_get_bool_value(), PRM_ID_LOG_BACKGROUND_ARCHIVING, tde_make_keys_file_fullname(), log_archives::vdes, background_archiving_info::vdes, and log_append_info::vdes.

Referenced by xboot_soft_rename().

Here is the caller graph for this function:

int logpb_restore ( THREAD_ENTRY thread_p,
const char *  db_fullname,
const char *  logpath,
const char *  prefix_logname,
bo_restart_arg r_args 
)

Definition at line 8273 of file log_page_buffer.c.

References log_global::append, ARG_FILE_LINE, assert, ASSERT_ERROR_AND_SET, fileio_backup_record_info::at_time, bo_restart_arg::backuppath, io_backup_session::bkup, fileio_backup_buffer::bkuphdr, boot_db_full_name(), boot_db_name(), CEIL_PTVDIV, fileio_backup_header::chkpt_lsa, CTIME_MAX, fileio_backup_buffer::current_path, db_set_page_size(), io_backup_session::dbfile, fileio_backup_buffer::dtype, fileio_backup_header::end_time, er_errid(), ER_ERROR_SEVERITY, ER_FAILED, ER_FATAL_ERROR_SEVERITY, ER_GENERIC_ERROR, ER_LOG_BKUP_INCOMPATIBLE, ER_LOG_CANNOT_ACCESS_BACKUP, ER_LOG_MAYNEED_MEDIA_RECOVERY, er_set(), ER_TDE_INVALID_KEYS_FILE, error(), fileio_abort_restore(), fileio_add_volume_to_backup_info(), FILEIO_BACKUP_FULL_LEVEL, FILEIO_BACKUP_UNDEFINED_LEVEL, FILEIO_BACKUP_VOL_DEVICE, fileio_clear_backup_info_level(), fileio_dismount(), fileio_finalize_backup_info(), fileio_finish_restore(), FILEIO_FIRST_BACKUP_VOL_INFO, fileio_get_backup_volume(), fileio_get_base_file_name(), fileio_get_directory_path(), fileio_get_next_restore_file(), FILEIO_INITIAL_BACKUP_UNITS, fileio_is_volume_exist(), fileio_make_backup_name(), fileio_make_backup_volume_info_name(), fileio_make_temp_log_files_from_backup(), fileio_mount(), FILEIO_NO_BACKUP_UNITS, fileio_page_bitmap_create(), fileio_page_bitmap_list_add(), fileio_page_bitmap_list_destroy(), fileio_page_bitmap_list_find(), fileio_page_bitmap_list_init(), fileio_restore_volume(), FILEIO_SECOND_BACKUP_VOL_INFO, fileio_skip_restore_volume(), fileio_start_restore(), fileio_write_backup_info_entries(), IO_PAGESIZE, bo_restart_arg::keys_file_path, fileio_backup_buffer::last_chkpt_lsa, bo_restart_arg::level, LOG_CS_ENTER(), LOG_CS_EXIT(), LOG_DBFIRST_VOLID, LOG_DBLOG_ACTIVE_VOLID, LOG_DBLOG_ARCHIVE_VOLID, LOG_DBLOG_BKUPINFO_VOLID, LOG_DBLOG_INFO_VOLID, LOG_DBTDE_KEYS_VOLID, LOG_DBVOLINFO_VOLID, log_Gl, log_Name_active, log_Name_bkupinfo, LOG_PAGESIZE, fileio_backup_buffer::log_path, logpb_check_stop_at_time(), logpb_fatal_error(), logpb_find_header_parameters(), logpb_is_log_active_from_backup_useful(), logtb_define_trantable_log_latch(), LSA_COPY(), MSGCAT_CATALOG_CUBRID, MSGCAT_LOG_READ_ERROR_DURING_RESTORE, msgcat_message(), MSGCAT_SET_LOG, fileio_backup_buffer::name, fileio_backup_db_buffer::nbytes, bo_restart_arg::newvolpath, NO_ERROR, NULL, NULL_VOLDES, os_rename_file(), fileio_backup_header::previnfo, bo_restart_arg::printtoc, REL_BACKWARD_COMPATIBLE, rel_disk_compatible(), REL_FULLY_COMPATIBLE, rel_get_disk_compatible(), rel_name(), rel_release_string(), bo_restart_arg::restore_upto_bktime, fileio_backup_header::start_time, bo_restart_arg::stopat, strncpy_bufsize, success(), tde_make_keys_file_fullname(), tde_validate_keys_file(), fileio_backup_header::unit_num, log_append_info::vdes, bo_restart_arg::verbose_file, io_backup_session::verbose_fp, fileio_backup_buffer::vlabel, and fileio_backup_db_buffer::volid.

Referenced by boot_restart_server().

Here is the caller graph for this function:

int logpb_scan_volume_info ( THREAD_ENTRY thread_p,
const char *  db_fullname,
VOLID  ignore_volid,
VOLID  start_volid,
int(*)(THREAD_ENTRY *thread_p, VOLID xvolid, const char *vlabel, void *args)  fun,
void *  args 
)
int logpb_set_page_checksum ( THREAD_ENTRY thread_p,
LOG_PAGE log_pgptr 
)
static void logpb_set_unavailable_archive ( THREAD_ENTRY thread_p,
int  arv_num 
)
static

Definition at line 5015 of file log_page_buffer.c.

References log_global::archive, assert, LOG_ARCHIVE_CS_OWN_WRITE_MODE, log_Gl, log_archives::max_unav, log_archives::next_unav, NULL, and log_archives::unav_archives.

Referenced by logpb_fetch_from_archive().

Here is the caller graph for this function:

static int logpb_start_where_path ( const char *  to_db_fullname,
const char *  toext_path,
const char **  toext_name,
char **  ext_path,
char **  alloc_extpath,
const char *  fileof_vols_and_wherepaths,
FILE **  where_paths_fp 
)
static
static int logpb_update_backup_volume_info ( const char *  bkupinfo_file_name)
static
static LOG_PRIOR_NODE * prior_lsa_remove_prior_list ( THREAD_ENTRY thread_p)
static
void xlogpb_dump_stat ( FILE *  outfp)

Definition at line 11039 of file log_page_buffer.c.

References logpb_dump_log_header(), logpb_dump_parameter(), and logpb_dump_runtime().

Referenced by log_dump_stat(), and slogpb_dump_stat().

Here is the caller graph for this function:

Variable Documentation

int log_default_input_for_archive_log_location = -1

Definition at line 268 of file log_page_buffer.c.

Referenced by logpb_fetch_from_archive(), and restoredb().

Definition at line 271 of file log_page_buffer.c.

ARV_LOG_PAGE_INFO_TABLE logpb_Arv_page_info_table
static

Definition at line 274 of file log_page_buffer.c.

bool logpb_Logging = false
static