44 #define NULL_VOLDES (-1) 46 #define FILEIO_INITIAL_BACKUP_UNITS 0 47 #define FILEIO_NO_BACKUP_UNITS -1 50 #define FILEIO_MAX_USER_RESPONSE_SIZE 2000 53 #define S_ISDIR(mode) ((mode) & _S_IFDIR) 54 #define S_ISREG(mode) ((mode) & _S_IFREG) 57 #define FILEIO_FIRST_BACKUP_VOL_INFO 0 58 #define FILEIO_SECOND_BACKUP_VOL_INFO 1 59 #define FILEIO_BACKUP_NUM_THREADS_AUTO 0 60 #define FILEIO_BACKUP_SLEEP_MSECS_AUTO 0 63 #define FILEIO_PAGE_FLAG_ENCRYPTED_AES 0x1 64 #define FILEIO_PAGE_FLAG_ENCRYPTED_ARIA 0x2 66 #define FILEIO_PAGE_FLAG_ENCRYPTED_MASK 0x3 69 #define STR_PATH_SEPARATOR "\\" 71 #define STR_PATH_SEPARATOR "/" 75 #define ALLOC_COPY false 78 #define FILEIO_PATH_SEPARATOR(path) \ 79 (path[strlen(path) - 1] == PATH_SEPARATOR ? "" : STR_PATH_SEPARATOR) 82 #define FILEIO_SUFFIX_LOGACTIVE "_lgat" 83 #define FILEIO_SUFFIX_LOGARCHIVE "_lgar" 84 #define FILEIO_SUFFIX_TMP_LOGARCHIVE "_lgar_t" 85 #define FILEIO_SUFFIX_LOGINFO "_lginf" 86 #define FILEIO_SUFFIX_BACKUP "_bk" 87 #define FILEIO_SUFFIX_BACKUP_VOLINFO "_bkvinf" 88 #define FILEIO_VOLEXT_PREFIX "_x" 89 #define FILEIO_VOLTMP_PREFIX "_t" 90 #define FILEIO_VOLINFO_SUFFIX "_vinf" 91 #define FILEIO_VOLLOCK_SUFFIX "__lock" 92 #define FILEIO_SUFFIX_DWB "_dwb" 93 #define FILEIO_SUFFIX_KEYS "_keys" 94 #define FILEIO_MAX_SUFFIX_LENGTH 7 296 char db_fullname[PATH_MAX];
310 char db_prec_bkvolname[PATH_MAX];
313 char db_next_bkvolname[PATH_MAX];
325 char loc_db_fullname[PATH_MAX];
326 char log_path[PATH_MAX];
333 char current_path[PATH_MAX];
357 #if (__WORDSIZE == 32) 401 #if defined(SERVER_MODE) 461 int kbytes_to_be_written_per_sec,
bool reuse_file);
462 #if !defined (CS_MODE) 468 #if defined (ENABLE_UNUSED_FUNCTION) 474 VOLID to_volid,
bool reset_recvinfo);
478 int lockwait,
bool dosync);
496 #if defined (ENABLE_UNUSED_FUNCTION) 497 extern void *fileio_read_user_area (
THREAD_ENTRY * thread_p,
int vdes,
PAGEID pageid, off_t start_offset,
size_t nbytes,
499 extern void *fileio_write_user_area (
THREAD_ENTRY * thread_p,
int vdes,
PAGEID pageid, off_t start_offset,
int nbytes,
521 extern int fileio_get_max_name (
const char *path,
long int *filename_max,
long int *pathname_max);
533 const char *base_log_name);
537 const char *db_name_p);
543 extern void fileio_make_dwb_name (
char *dwb_name_p,
const char *dwb_path_p,
const char *db_name_p);
546 #ifdef UNSTABLE_TDE_FOR_REPLICATION_LOG 547 extern void fileio_make_ha_sock_name (
char *sock_path_p,
const char *base_path_p,
const char *sock_name_p);
552 const char *verbose_file_path,
int num_threads,
563 VOLID from_volid,
PAGEID last_page,
bool only_updated_pages);
565 char *backup_source, INT64 match_dbcreation,
566 PGLENGTH * db_iopagesize,
float *db_compatibility,
568 bool authenticate, INT64 match_bkupcreation,
569 const char *restore_verbose_file_path,
bool newvolpath);
575 const char *user_backuppath,
int try_level,
char *from_volbackup);
580 bool remember_pages);
595 const char *prompt,
char *response,
const char *failure_prompt,
int range_low,
596 int range_high,
const char *secondary_prompt,
int reprompt_value);
598 #if !defined(WINDOWS) 600 int *last_deleted_arv_num);
603 extern int fileio_symlink (
const char *src,
const char *dest,
int overwrite);
607 #if defined(SERVER_MODE) 608 int fileio_os_sysconf (
void);
617 int *token_consumed);
STATIC_INLINE FILEIO_PAGE_WATERMARK * fileio_get_page_watermark_pos(FILEIO_PAGE *io_page, PGLENGTH page_size)
FILEIO_ZIP_INFO * zip_info
void fileio_make_volume_temp_name(char *voltmp_fullname, const char *tmp_path, const char *tmp_name, VOLID volid)
FILEIO_BACKUP_SESSION * fileio_initialize_backup(const char *db_fullname, const char *backup_destination, FILEIO_BACKUP_SESSION *session, FILEIO_BACKUP_LEVEL level, const char *verbose_file_path, int num_threads, int sleep_msecs)
pthread_mutex_t token_mutex
int fileio_request_user_response(THREAD_ENTRY *thread_p, FILEIO_REMOTE_PROMPT_TYPE prompt_id, const char *prompt, char *response, const char *failure_prompt, int range_low, int range_high, const char *secondary_prompt, int reprompt_value)
int fileio_flush_control_initialize(void)
int fileio_list_restore(THREAD_ENTRY *thread_p, const char *db_fullname, char *backup_source, FILEIO_BACKUP_LEVEL level, bool newvolpath)
void * fileio_initialize_pages(THREAD_ENTRY *thread_p, int vdes, FILEIO_PAGE *io_pgptr, DKNPAGES start_pageid, DKNPAGES npages, size_t page_size, int kbytes_to_be_written_per_sec)
void * fileio_read(THREAD_ENTRY *thread_p, int vol_fd, void *io_page_p, PAGEID page_id, size_t page_size)
FILEIO_PAGE_WATERMARK prv2
bool LSA_EQ(const log_lsa *plsa1, const log_lsa *plsa2)
void * fileio_read_pages(THREAD_ENTRY *thread_p, int vol_fd, char *io_pages_p, PAGEID page_id, int num_pages, size_t page_size)
int fileio_read_backup_info_entries(FILE *fp, int which_bkvinf)
void fileio_page_bitmap_list_init(FILEIO_RESTORE_PAGE_BITMAP_LIST *page_bitmap_list)
bool fileio_map_mounted(THREAD_ENTRY *thread_p, bool(*fun)(THREAD_ENTRY *thread_p, VOLID volid, void *args), void *args)
void LSA_COPY(log_lsa *plsa1, const log_lsa *plsa2)
VOLID fileio_find_previous_temp_volume(THREAD_ENTRY *thread_p, VOLID volid)
void fileio_unformat(THREAD_ENTRY *thread_p, const char *vlabel)
bool fileio_is_temp_volume(THREAD_ENTRY *thread_p, VOLID volid)
FILEIO_REMOTE_PROMPT_TYPE
int fileio_skip_restore_volume(THREAD_ENTRY *thread_p, FILEIO_BACKUP_SESSION *session)
void fileio_make_log_archive_name(char *logarchive_name, const char *log_path, const char *dbname, int arvnum)
void fileio_page_bitmap_list_add(FILEIO_RESTORE_PAGE_BITMAP_LIST *page_bitmap_list, FILEIO_RESTORE_PAGE_BITMAP *page_bitmap)
const char * fileio_get_zip_method_string(FILEIO_ZIP_METHOD zip_method)
char * fileio_get_volume_label_by_fd(int vol_fd, bool is_peek)
STATIC_INLINE void fileio_init_lsa_of_page(FILEIO_PAGE *io_page, PGLENGTH page_size)
int fileio_mount(THREAD_ENTRY *thread_p, const char *db_fullname, const char *vlabel, VOLID volid, int lockwait, bool dosync)
#define REL_MAX_RELEASE_LENGTH
int fileio_flush_control_add_tokens(THREAD_ENTRY *thread_p, INT64 diff_usec, int *token_gen, int *token_consumed)
const char * fileio_get_zip_level_string(FILEIO_ZIP_LEVEL zip_level)
bool fileio_is_volume_exist(const char *vlabel)
int fileio_find_volume_descriptor_with_label(const char *vol_label_p)
void fileio_make_volume_info_name(char *volinfo_name, const char *db_fullname)
int fileio_get_number_of_partition_free_pages(const char *path, size_t page_size)
STATIC_INLINE void fileio_reset_page_lsa(FILEIO_PAGE *io_page, PGLENGTH page_size)
FILEIO_RESTORE_PAGE_BITMAP * head
void fileio_make_keys_name_given_path(char *keys_name_p, const char *keys_path_p, const char *db_name_p)
void * fileio_write_or_add_to_dwb(THREAD_ENTRY *thread_p, int vol_fd, FILEIO_PAGE *io_page_p, PAGEID page_id, size_t page_size)
int fileio_restore_volume(THREAD_ENTRY *thread_p, FILEIO_BACKUP_SESSION *session, char *to_vlabel, char *verbose_to_vlabel, char *prev_vlabel, FILEIO_RESTORE_PAGE_BITMAP *page_bitmap, bool remember_pages)
FILEIO_BACKUP_HEADER * bkuphdr
void fileio_make_backup_volume_info_name(char *backup_volinfo_name, const char *backinfo_path, const char *dbname)
int fileio_set_permission(const char *vlabel)
DKNSECTS fileio_get_number_of_partition_free_sectors(const char *path_p)
int fileio_expand_to(THREAD_ENTRY *threda_p, VOLID volid, DKNPAGES npages_toadd, DB_VOLTYPE voltype)
int fileio_finish_restore(THREAD_ENTRY *thread_p, FILEIO_BACKUP_SESSION *session)
struct fileio_node * next
FILEIO_BACKUP_PAGE * area
void fileio_make_volume_ext_name(char *volext_fullname, const char *ext_path, const char *ext_name, VOLID volid)
FILEIO_RESTORE_PAGE_BITMAP * fileio_page_bitmap_list_find(FILEIO_RESTORE_PAGE_BITMAP_LIST *page_bitmap_list, int vol_id)
void fileio_finalize_backup_info(int which_bkvinf)
char * fileio_get_directory_path(char *path, const char *fullname)
VOLID fileio_find_next_perm_volume(THREAD_ENTRY *thread_p, VOLID volid)
int fileio_synchronize_all(THREAD_ENTRY *thread_p, bool include_log)
int fileio_get_next_restore_file(THREAD_ENTRY *thread_p, FILEIO_BACKUP_SESSION *session, char *filename, VOLID *volid)
void fileio_make_keys_name(char *keys_name_p, const char *db_name_p)
void fileio_make_log_active_name(char *logactive_name, const char *log_path, const char *dbname)
void fileio_page_bitmap_list_destroy(FILEIO_RESTORE_PAGE_BITMAP_LIST *page_bitmap_list)
const char * fileio_rename(VOLID volid, const char *old_vlabel, const char *new_vlabel)
void fileio_close(int vdes)
#define CUBRID_MAGIC_MAX_LENGTH
FILEIO_RESTORE_PAGE_BITMAP * fileio_page_bitmap_create(int vol_id, int total_pages)
void fileio_make_temp_log_files_from_backup(char *temp_log_name, VOLID volid, FILEIO_BACKUP_LEVEL level, const char *base_log_name)
void fileio_abort_restore(THREAD_ENTRY *thread_p, FILEIO_BACKUP_SESSION *session)
int fileio_synchronize(THREAD_ENTRY *thread_p, int vdes, const char *vlabel, FILEIO_SYNC_OPTION check_sync_dwb)
const char * fileio_get_backup_info_volume_name(FILEIO_BACKUP_LEVEL level, int unit_num, int which_bkvinf)
void fileio_page_hexa_dump(const char *data, int length)
static enum scanner_mode mode
unsigned int num_log_pages
int fileio_set_page_checksum(THREAD_ENTRY *thread_p, FILEIO_PAGE *io_page)
void fileio_make_dwb_name(char *dwb_name_p, const char *dwb_path_p, const char *db_name_p)
int fileio_page_check_corruption(THREAD_ENTRY *thread_p, FILEIO_PAGE *io_page, bool *is_page_corrupted)
bool fileio_is_formatted_page(THREAD_ENTRY *thread_p, const char *io_page)
FILEIO_LOCKF_TYPE fileio_lock_la_dbname(int *lockf_vdes, char *db_name, char *log_path)
FILEIO_RESTORE_PAGE_BITMAP * tail
void fileio_abort_backup(THREAD_ENTRY *thread_p, FILEIO_BACKUP_SESSION *session, bool does_unformat_bk)
DKNPAGES fileio_get_number_of_volume_pages(int vdes, size_t page_size)
STATIC_INLINE void fileio_set_page_lsa(FILEIO_PAGE *io_page, const LOG_LSA *lsa, PGLENGTH page_size)
FILEIO_BACKUP_SESSION * fileio_start_backup(THREAD_ENTRY *thread_p, const char *db_fullname, INT64 *db_creation, FILEIO_BACKUP_LEVEL backup_level, LOG_LSA *backup_start_lsa, LOG_LSA *backup_ckpt_lsa, FILEIO_BACKUP_RECORD_INFO *all_levels_info, FILEIO_BACKUP_SESSION *session, FILEIO_ZIP_METHOD zip_method, FILEIO_ZIP_LEVEL zip_level)
struct fileio_page_watermark FILEIO_PAGE_WATERMARK
FILEIO_BACKUP_LEVEL level
pthread_cond_t waiter_cond
VOLID fileio_find_previous_perm_volume(THREAD_ENTRY *thread_p, VOLID volid)
void fileio_flush_control_finalize(void)
char * fileio_get_volume_label(VOLID volid, bool is_peek)
int fileio_open(const char *vlabel, int flags, int mode)
void fileio_make_log_archive_temp_name(char *log_archive_temp_name_p, const char *log_path_p, const char *db_name_p)
const char * fileio_get_base_file_name(const char *fullname)
int fileio_reset_volume(THREAD_ENTRY *thread_p, int vdes, const char *vlabel, DKNPAGES npages, const LOG_LSA *reset_lsa)
void fileio_dismount_all(THREAD_ENTRY *thread_p)
void fileio_remove_all_backup(THREAD_ENTRY *thread_p, int level)
FILEIO_BACKUP_DB_BUFFER dbfile
int fileio_clear_backup_info_level(int level, bool dealloc, int which_bkvinf)
void * fileio_write_pages(THREAD_ENTRY *thread_p, int vol_fd, char *io_pages_p, PAGEID page_id, int num_pages, size_t page_size, FILEIO_WRITE_MODE write_mode)
void * fileio_writev(THREAD_ENTRY *thread_p, int vdes, void **arrayof_io_pgptr, PAGEID start_pageid, DKNPAGES npages, size_t page_size)
int fileio_symlink(const char *src, const char *dest, int overwrite)
int fileio_get_volume_descriptor(VOLID volid)
bool fileio_is_permanent_volume_descriptor(THREAD_ENTRY *thread_p, int vol_fd)
int fileio_backup_volume(THREAD_ENTRY *thread_p, FILEIO_BACKUP_SESSION *session, const char *from_vlabel, VOLID from_volid, PAGEID last_page, bool only_updated_pages)
void LSA_SET_NULL(log_lsa *lsa_ptr)
void fileio_make_log_info_name(char *loginfo_name, const char *log_path, const char *dbname)
FILEIO_BACKUP_SESSION * fileio_finish_backup(THREAD_ENTRY *thread_p, FILEIO_BACKUP_SESSION *session)
FILEIO_THREAD_INFO read_thread_info
int fileio_copy_volume(THREAD_ENTRY *thread_p, int from_vdes, DKNPAGES npages, const char *to_vlabel, VOLID to_volid, bool reset_recvinfo)
int fileio_write_backup_info_entries(FILE *fp, int which_bkvinf)
int fileio_get_volume_max_suffix(void)
void fileio_make_removed_log_archive_name(char *logarchive_name, const char *log_path, const char *dbname)
void fileio_make_backup_name(char *backup_name, const char *nopath_volname, const char *backup_path, FILEIO_BACKUP_LEVEL level, int unit_num)
struct fileio_node * prev
FILEIO_BACKUP_PAGE * area
bool fileio_is_volume_exist_and_file(const char *vlabel)
STATIC_INLINE int fileio_is_page_sane(FILEIO_PAGE *io_page, PGLENGTH page_size)
void fileio_dismount_without_fsync(THREAD_ENTRY *thread_p, int vdes)
FILEIO_BACKUP_BUFFER bkup
int fileio_format(THREAD_ENTRY *thread_p, const char *db_fullname, const char *vlabel, VOLID volid, DKNPAGES npages, bool sweep_clean, bool dolock, bool dosync, size_t page_size, int kbytes_to_be_written_per_sec, bool reuse_file)
int fileio_get_backup_volume(THREAD_ENTRY *thread_p, const char *db_fullname, const char *logpath, const char *user_backuppath, int try_level, char *from_volbackup)
int fileio_get_max_name(const char *path, long int *filename_max, long int *pathname_max)
void fileio_unformat_and_rename(THREAD_ENTRY *thread_p, const char *vlabel, const char *new_vlabel)
void * fileio_write(THREAD_ENTRY *thread_p, int vol_fd, void *io_page_p, PAGEID page_id, size_t page_size, FILEIO_WRITE_MODE write_mode)
FILEIO_LOCKF_TYPE fileio_lock_la_log_path(const char *db_fullname, const char *lock_path, int vdes, int *last_deleted_arv_num)
FILEIO_LOCKF_TYPE fileio_unlock_la_dbname(int *lockf_vdes, char *db_name, bool clear_owner)
void fileio_dismount(THREAD_ENTRY *thread_p, int vdes)
FILEIO_BACKUP_SESSION * fileio_start_restore(THREAD_ENTRY *thread_p, const char *db_fullname, char *backup_source, INT64 match_dbcreation, PGLENGTH *db_iopagesize, float *db_compatibility, FILEIO_BACKUP_SESSION *session, FILEIO_BACKUP_LEVEL level, bool authenticate, INT64 match_bkupcreation, const char *restore_verbose_file_path, bool newvolpath)
VOLID fileio_find_volume_id_with_label(THREAD_ENTRY *thread_p, const char *vlabel)
FILEIO_RESTORE_PAGE_BITMAP * next
int fileio_add_volume_to_backup_info(const char *name, FILEIO_BACKUP_LEVEL level, int unit_num, int which_bkvinf)
void fileio_initialize_res(THREAD_ENTRY *thread_p, FILEIO_PAGE *io_page, PGLENGTH page_size)
void fileio_make_volume_ext_given_name(char *volext_fullname, const char *ext_path, const char *ext_name)