23 #ifndef _LOG_WRITER_HEADER_ 24 #define _LOG_WRITER_HEADER_ 34 #if defined (SERVER_MODE) 55 #define LOGWR_COPY_FROM_FIRST_PHY_PAGE_MASK (0x80000000) 60 LOGWR_ACTION_NONE = 0x00,
61 LOGWR_ACTION_DELAYED_WRITE = 0x01,
62 LOGWR_ACTION_ASYNC_WRITE = 0x02,
63 LOGWR_ACTION_HDR_WRITE = 0x04,
64 LOGWR_ACTION_ARCHIVING = 0x08
66 typedef enum logwr_action LOGWR_ACTION;
68 typedef struct logwr_global LOGWR_GLOBAL;
76 char log_path[PATH_MAX];
77 char loginf_path[PATH_MAX];
78 char active_name[PATH_MAX];
99 struct timeval last_flush_time;
102 char bg_archive_name[PATH_MAX];
113 #define LOGWR_AT_NEXT_ARCHIVE_PAGE_ID(pageid) \ 114 (logwr_to_physical_pageid(pageid) == logwr_Gl.hdr.nxarv_phy_pageid) 116 #define LOGWR_IS_ARCHIVE_PAGE(pageid) \ 117 ((pageid) != LOGPB_HEADER_PAGE_ID && (pageid) < logwr_Gl.hdr.nxarv_pageid) 119 #define LOGWR_AT_SERVER_ARCHIVING() \ 120 (LOGWR_AT_NEXT_ARCHIVE_PAGE_ID(logwr_Gl.hdr.append_lsa.pageid) \ 121 && (logwr_Gl.hdr.eof_lsa.pageid < logwr_Gl.hdr.append_lsa.pageid)) 123 extern LOGWR_GLOBAL logwr_Gl;
124 extern void logwr_flush_header_page (
void);
125 extern int logwr_write_log_pages (
void);
126 extern int logwr_set_hdr_and_flush_info (
void);
127 #if !defined(WINDOWS) 128 extern int logwr_copy_log_header_check (
const char *
db_name,
bool verbose,
LOG_LSA * master_eof_lsa);
179 , wr_list_mutex PTHREAD_MUTEX_INITIALIZER
180 , flush_start_cond PTHREAD_COND_INITIALIZER
181 , flush_start_mutex PTHREAD_MUTEX_INITIALIZER
182 , flush_wait_cond PTHREAD_COND_INITIALIZER
183 , flush_wait_mutex PTHREAD_MUTEX_INITIALIZER
184 , flush_end_cond PTHREAD_COND_INITIALIZER
185 , flush_end_mutex PTHREAD_MUTEX_INITIALIZER
187 , flush_completed (false)
189 , trace_last_writer (false)
190 , last_writer_client_info ()
191 , last_writer_elapsed_time (0)
207 #if defined(SERVER_MODE) 209 extern LOG_PAGEID logwr_get_min_copied_fpageid (
void);
pthread_mutex_t flush_end_mutex
LOG_LSA tmp_last_sent_eof_lsa
pthread_mutex_t flush_start_mutex
INT64 last_writer_elapsed_time
CLIENTIDS last_writer_client_info
pthread_mutex_t wr_list_mutex
LOG_PHY_PAGEID logwr_to_physical_pageid(LOG_PAGEID logical_pageid)
pthread_cond_t flush_start_cond
pthread_cond_t flush_wait_cond
const char * logwr_log_ha_filestat_to_string(enum LOG_HA_FILESTAT val)
enum logwr_status LOGWR_STATUS
static enum scanner_mode mode
pthread_mutex_t flush_wait_mutex
LOGWR_ENTRY * writer_list
bool copy_from_first_phy_page
pthread_cond_t flush_end_cond
int logwr_copy_log_file(const char *db_name, const char *log_path, int mode, INT64 start_page_id)
enum logwr_mode LOGWR_MODE
LOG_LSA last_sent_eof_lsa
bool logwr_force_shutdown(void)