Skip to content

File file_io.h

FileList > cubrid > src > storage > file_io.h

Go to the source code of this file

  • #include "config.h"
  • #include "dbtype_def.h"
  • #include "log_lsa.hpp"
  • #include "memory_hash.h"
  • #include "porting.h"
  • #include "porting_inline.hpp"
  • #include "release_string.h"
  • #include "storage_common.h"
  • #include "thread_compat.hpp"
  • #include <stdio.h>
  • #include <time.h>
  • #include <map>

Classes

Type Name
struct file_zip_info
struct file_zip_page
struct fileio_backup_buffer
struct fileio_backup_db_buffer
struct fileio_backup_header
struct fileio_backup_page
struct fileio_backup_record_info
struct fileio_node
struct fileio_page
struct fileio_page_reserved
struct fileio_page_watermark
struct fileio_queue
struct fileio_thread_info
struct flush_stats
struct io_backup_session
struct page_bitmap
struct page_bitmap_list
struct token_bucket

Public Types

Type Name
typedef struct fileio_backup_buffer FILEIO_BACKUP_BUFFER
typedef struct fileio_backup_db_buffer FILEIO_BACKUP_DB_BUFFER
typedef struct fileio_backup_header FILEIO_BACKUP_HEADER
enum FILEIO_BACKUP_LEVEL
typedef struct fileio_backup_page FILEIO_BACKUP_PAGE
typedef struct fileio_backup_record_info FILEIO_BACKUP_RECORD_INFO
typedef struct io_backup_session FILEIO_BACKUP_SESSION
enum FILEIO_BACKUP_TYPE
enum FILEIO_BACKUP_VOL_TYPE
enum FILEIO_LOCKF_TYPE
typedef struct fileio_node FILEIO_NODE
typedef struct fileio_page FILEIO_PAGE
typedef struct fileio_page_reserved FILEIO_PAGE_RESERVED
typedef struct fileio_page_watermark FILEIO_PAGE_WATERMARK
typedef struct fileio_queue FILEIO_QUEUE
enum FILEIO_REMOTE_PROMPT_TYPE
typedef struct page_bitmap FILEIO_RESTORE_PAGE_BITMAP
typedef struct page_bitmap_list FILEIO_RESTORE_PAGE_BITMAP_LIST
typedef struct fileio_thread_info FILEIO_THREAD_INFO
enum FILEIO_TYPE
typedef std::map< int, std::pair< std::string, std::string > > FILEIO_UNLINKED_VOLINFO_MAP
enum FILEIO_WRITE_MODE
typedef struct file_zip_info FILEIO_ZIP_INFO
enum FILEIO_ZIP_LEVEL
enum FILEIO_ZIP_METHOD
typedef struct file_zip_page FILEIO_ZIP_PAGE
typedef struct flush_stats FLUSH_STATS
typedef struct token_bucket TOKEN_BUCKET

Public Functions

Type Name
void fileio_abort_backup (THREAD_ENTRY * thread_p, FILEIO_BACKUP_SESSION * session, bool does_unformat_bk)
void fileio_abort_restore (THREAD_ENTRY * thread_p, FILEIO_BACKUP_SESSION * session)
int fileio_add_volume_to_backup_info (const char * name, FILEIO_BACKUP_LEVEL level, int unit_num, int which_bkvinf)
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)
int fileio_clear_backup_info_level (int level, bool dealloc, int which_bkvinf)
void fileio_close (int vdes)
int fileio_copy_volume (THREAD_ENTRY * thread_p, int from_vdes, DKNPAGES npages, const char * to_vlabel, VOLID to_volid, bool reset_recvinfo)
void fileio_dismount (THREAD_ENTRY * thread_p, int vdes)
void fileio_dismount_all (THREAD_ENTRY * thread_p)
void fileio_dismount_without_fsync (THREAD_ENTRY * thread_p, int vdes)
void fileio_finalize_backup_info (int which_bkvinf)
VOLID fileio_find_next_perm_volume (THREAD_ENTRY * thread_p, VOLID volid)
VOLID fileio_find_previous_perm_volume (THREAD_ENTRY * thread_p, VOLID volid)
VOLID fileio_find_previous_temp_volume (THREAD_ENTRY * thread_p, VOLID volid)
int fileio_find_volume_descriptor_with_label (const char * vol_label_p)
VOLID fileio_find_volume_id_with_label (THREAD_ENTRY * thread_p, const char * vlabel)
FILEIO_BACKUP_SESSION * fileio_finish_backup (THREAD_ENTRY * thread_p, FILEIO_BACKUP_SESSION * session)
int fileio_finish_restore (THREAD_ENTRY * thread_p, FILEIO_BACKUP_SESSION * session)
int fileio_flush_control_add_tokens (THREAD_ENTRY * thread_p, INT64 diff_usec, int * token_gen, int * token_consumed)
void fileio_flush_control_finalize (void)
int fileio_flush_control_initialize (void)
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)
bool fileio_fsync_pending (void)
const char * fileio_get_backup_info_volume_name (FILEIO_BACKUP_LEVEL level, int unit_num, int which_bkvinf)
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)
const char * fileio_get_base_file_name (const char * fullname)
char * fileio_get_directory_path (char * path, const char * fullname)
int fileio_get_max_name (const char * path, long int * filename_max, long int * pathname_max)
int fileio_get_next_restore_file (THREAD_ENTRY * thread_p, FILEIO_BACKUP_SESSION * session, char * filename, VOLID * volid)
int fileio_get_number_of_partition_free_pages (const char * path, size_t page_size)
DKNSECTS fileio_get_number_of_partition_free_sectors (const char * path_p)
DKNPAGES fileio_get_number_of_volume_pages (int vdes, size_t page_size)
int fileio_get_volume_descriptor (VOLID volid)
char * fileio_get_volume_label (VOLID volid, bool is_peek)
char * fileio_get_volume_label_by_fd (int vol_fd, bool is_peek)
int fileio_get_volume_max_suffix (void)
const char * fileio_get_zip_level_string (FILEIO_ZIP_LEVEL zip_level)
const char * fileio_get_zip_method_string (FILEIO_ZIP_METHOD zip_method)
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)
void * fileio_initialize_pages (THREAD_ENTRY * thread_p, int vdes, FILEIO_PAGE * io_pgptr, DKNPAGES start_pageid, DKNPAGES npages, size_t page_size, bool ensure_metadata, int kbytes_to_be_written_per_sec)
void fileio_initialize_res (THREAD_ENTRY * thread_p, FILEIO_PAGE * io_page, PGLENGTH page_size)
bool fileio_is_formatted_page (THREAD_ENTRY * thread_p, const char * io_page)
bool fileio_is_permanent_volume_descriptor (THREAD_ENTRY * thread_p, int vol_fd)
bool fileio_is_temp_volume (THREAD_ENTRY * thread_p, VOLID volid)
bool fileio_is_volume_exist (const char * vlabel)
bool fileio_is_volume_exist_and_file (const char * vlabel)
int fileio_list_restore (THREAD_ENTRY * thread_p, const char * db_fullname, char * backup_source, FILEIO_BACKUP_LEVEL level, bool newvolpath)
int fileio_lob_remove_dir (char * lob_path)
int fileio_lob_remove_matching_dir (const char * keyword)
FILEIO_LOCKF_TYPE fileio_lock_la_dbname (int * lockf_vdes, char * db_name, char * log_path)
FILEIO_LOCKF_TYPE fileio_lock_la_log_path (const char * db_fullname, const char * lock_path, int vdes, int * last_deleted_arv_num)
void fileio_make_backup_name (char * backup_name, const char * nopath_volname, const char * backup_path, FILEIO_BACKUP_LEVEL level, int unit_num)
void fileio_make_backup_volume_info_name (char * backup_volinfo_name, const char * backinfo_path, const char * dbname)
void fileio_make_dwb_name (char * dwb_name_p, const char * dwb_path_p, const char * db_name_p)
void fileio_make_keys_name (char * keys_name_p, const char * db_name_p)
void fileio_make_keys_name_given_path (char * keys_name_p, const char * keys_path_p, const char * db_name_p)
void fileio_make_log_active_name (char * logactive_name, const char * log_path, const char * dbname)
void fileio_make_log_archive_name (char * logarchive_name, const char * log_path, const char * dbname, int arvnum)
void fileio_make_log_archive_temp_name (char * log_archive_temp_name_p, const char * log_path_p, const char * db_name_p)
void fileio_make_log_info_name (char * loginfo_name, const char * log_path, const char * dbname)
void fileio_make_removed_log_archive_name (char * logarchive_name, const char * log_path, const char * dbname)
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_make_volume_ext_given_name (char * volext_fullname, const char * ext_path, const char * ext_name)
void fileio_make_volume_ext_name (char * volext_fullname, const char * ext_path, const char * ext_name, VOLID volid)
void fileio_make_volume_info_name (char * volinfo_name, const char * db_fullname)
void fileio_make_volume_temp_name (char * voltmp_fullname, const char * tmp_path, const char * tmp_name, VOLID volid)
bool fileio_map_mounted (THREAD_ENTRY * thread_p, bool(*)(THREAD_ENTRY *thread_p, VOLID volid, void *args) fun, void * args)
int fileio_mount (THREAD_ENTRY * thread_p, const char * db_fullname, const char * vlabel, VOLID volid, int lockwait, bool dosync)
int fileio_open (const char * vlabel, int flags, int mode)
int fileio_os_sysconf (void)
FILEIO_RESTORE_PAGE_BITMAP * fileio_page_bitmap_create (int vol_id, int total_pages)
void fileio_page_bitmap_list_add (FILEIO_RESTORE_PAGE_BITMAP_LIST * page_bitmap_list, FILEIO_RESTORE_PAGE_BITMAP * page_bitmap)
void fileio_page_bitmap_list_destroy (FILEIO_RESTORE_PAGE_BITMAP_LIST * page_bitmap_list)
FILEIO_RESTORE_PAGE_BITMAP * fileio_page_bitmap_list_find (FILEIO_RESTORE_PAGE_BITMAP_LIST * page_bitmap_list, int vol_id)
void fileio_page_bitmap_list_init (FILEIO_RESTORE_PAGE_BITMAP_LIST * page_bitmap_list)
int fileio_page_check_corruption (THREAD_ENTRY * thread_p, FILEIO_PAGE * io_page, bool * is_page_corrupted)
void fileio_page_hexa_dump (const char * data, int length)
void * fileio_read (THREAD_ENTRY * thread_p, int vol_fd, void * io_page_p, PAGEID page_id, size_t page_size)
int fileio_read_backup_info_entries (FILE * fp, int which_bkvinf)
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)
void * fileio_read_user_area (THREAD_ENTRY * thread_p, int vdes, PAGEID pageid, off_t start_offset, size_t nbytes, void * area)
void fileio_remove_all_backup (THREAD_ENTRY * thread_p, int level)
const char * fileio_rename (VOLID volid, const char * old_vlabel, const char * new_vlabel)
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_reset_volume (THREAD_ENTRY * thread_p, int vdes, const char * vlabel, DKNPAGES npages, const LOG_LSA * reset_lsa)
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, bool & is_prev_vheader_restored, FILEIO_UNLINKED_VOLINFO_MAP & unlinked_vol_info)
int fileio_set_page_checksum (THREAD_ENTRY * thread_p, FILEIO_PAGE * io_page)
int fileio_set_permission (const char * vlabel)
int fileio_skip_restore_volume (THREAD_ENTRY * thread_p, FILEIO_BACKUP_SESSION * session)
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)
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)
int fileio_symlink (const char * src, const char * dest, int overwrite)
int fileio_synchronize (THREAD_ENTRY * thread_p, int vdes, const char * vlabel, bool ensure_metadata)
int fileio_synchronize_all (THREAD_ENTRY * thread_p)
int fileio_synchronize_directory (THREAD_ENTRY * thread_p, const char * label)
DKNPAGES fileio_truncate (VOLID volid, DKNPAGES npages_to_resize)
void fileio_unformat (THREAD_ENTRY * thread_p, const char * vlabel)
void fileio_unformat_and_rename (THREAD_ENTRY * thread_p, const char * vlabel, const char * new_vlabel)
FILEIO_LOCKF_TYPE fileio_unlock_la_dbname (int * lockf_vdes, char * db_name, bool clear_owner)
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)
int fileio_write_backup_info_entries (FILE * fp, int which_bkvinf)
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, bool ensure_metadata)
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_write_user_area (THREAD_ENTRY * thread_p, int vdes, PAGEID pageid, off_t start_offset, int nbytes, void * area)
void * fileio_writev (THREAD_ENTRY * thread_p, int vdes, void ** arrayof_io_pgptr, PAGEID start_pageid, DKNPAGES npages, size_t page_size)

Public Static Functions

Type Name
FILEIO_PAGE_WATERMARK * fileio_get_page_watermark_pos (FILEIO_PAGE * io_page, PGLENGTH page_size)
void fileio_init_lsa_of_page (FILEIO_PAGE * io_page, PGLENGTH page_size)
int fileio_is_page_sane (FILEIO_PAGE * io_page, PGLENGTH page_size)
void fileio_reset_page_lsa (FILEIO_PAGE * io_page, PGLENGTH page_size)
void fileio_set_page_lsa (FILEIO_PAGE * io_page, const LOG_LSA * lsa, PGLENGTH page_size)

Macros

Type Name
define ALLOC_COPY [**false**](broker__monitor_8c.md#function-timeout) /\* alloc [**and**](broker__monitor_8c.md#function-timeout) copy volume label \*/
define FILEIO_BACKUP_NUM_THREADS_AUTO 0
define FILEIO_BACKUP_SLEEP_MSECS_AUTO 0
define FILEIO_FIRST_BACKUP_VOL_INFO 0
define FILEIO_INITIAL_BACKUP_UNITS 0
define FILEIO_MAX_SUFFIX_LENGTH 7
define FILEIO_MAX_USER_RESPONSE_SIZE 2000
define FILEIO_NO_BACKUP_UNITS -1
define FILEIO_PAGE_FLAG_ENCRYPTED_AES 0x1
define FILEIO_PAGE_FLAG_ENCRYPTED_ARIA 0x2
define FILEIO_PAGE_FLAG_ENCRYPTED_MASK 0x3
define FILEIO_PATH_SEPARATOR (path) (path[[**strlen**](intl__support_8c.md#define-strlen)(path) - 1] == [**PATH\_SEPARATOR**](porting_8h.md#define-path_separator) ? "" : [**STR\_PATH\_SEPARATOR**](file__io_8h.md#define-str_path_separator))
define FILEIO_SECOND_BACKUP_VOL_INFO 1
define FILEIO_SUFFIX_BACKUP "\_bk"
define FILEIO_SUFFIX_BACKUP_VOLINFO "\_bkvinf"
define FILEIO_SUFFIX_DWB "\_dwb"
define FILEIO_SUFFIX_KEYS "\_keys"
define FILEIO_SUFFIX_LOGACTIVE "\_lgat"
define FILEIO_SUFFIX_LOGARCHIVE "\_lgar"
define FILEIO_SUFFIX_LOGINFO "\_lginf"
define FILEIO_SUFFIX_TMP_LOGARCHIVE "\_lgar\_t"
define FILEIO_VOLEXT_PREFIX "\_x"
define FILEIO_VOLINFO_SUFFIX "\_vinf"
define FILEIO_VOLLOCK_SUFFIX "\_\_lock"
define FILEIO_VOLTMP_PREFIX "\_t"
define NULL_VOLDES (-1) /\* [**Value**](broker__monitor_8c.md#function-timeout) [**of**](broker__monitor_8c.md#function-timeout) [**a**](broker__monitor_8c.md#function-timeout) [**null**](broker__monitor_8c.md#function-timeout) ([**invalid**](broker__monitor_8c.md#function-timeout)) [**vol**](broker__monitor_8c.md#function-timeout) descriptor \*/
define PEEK [**true**](broker__monitor_8c.md#function-timeout) /\* [**Peek**](broker__monitor_8c.md#function-timeout) volume label pointer \*/
define STR_PATH_SEPARATOR "/"

Public Types Documentation

typedef FILEIO_BACKUP_BUFFER

typedef struct fileio_backup_buffer FILEIO_BACKUP_BUFFER;

typedef FILEIO_BACKUP_DB_BUFFER

typedef struct fileio_backup_db_buffer FILEIO_BACKUP_DB_BUFFER;

typedef FILEIO_BACKUP_HEADER

typedef struct fileio_backup_header FILEIO_BACKUP_HEADER;

enum FILEIO_BACKUP_LEVEL

enum FILEIO_BACKUP_LEVEL {
    FILEIO_BACKUP_FULL_LEVEL = 0,
    FILEIO_BACKUP_BIG_INCREMENT_LEVEL,
    FILEIO_BACKUP_SMALL_INCREMENT_LEVEL,
    FILEIO_BACKUP_UNDEFINED_LEVEL
};

typedef FILEIO_BACKUP_PAGE

typedef struct fileio_backup_page FILEIO_BACKUP_PAGE;

typedef FILEIO_BACKUP_RECORD_INFO

typedef struct fileio_backup_record_info FILEIO_BACKUP_RECORD_INFO;

typedef FILEIO_BACKUP_SESSION

typedef struct io_backup_session FILEIO_BACKUP_SESSION;

enum FILEIO_BACKUP_TYPE

enum FILEIO_BACKUP_TYPE {
    FILEIO_BACKUP_WRITE,
    FILEIO_BACKUP_READ
};

enum FILEIO_BACKUP_VOL_TYPE

enum FILEIO_BACKUP_VOL_TYPE {
    FILEIO_BACKUP_VOL_UNKNOWN,
    FILEIO_BACKUP_VOL_DIRECTORY,
    FILEIO_BACKUP_VOL_DEVICE
};

enum FILEIO_LOCKF_TYPE

enum FILEIO_LOCKF_TYPE {
    FILEIO_LOCKF,
    FILEIO_RUN_AWAY_LOCKF,
    FILEIO_NOT_LOCKF
};

typedef FILEIO_NODE

typedef struct fileio_node FILEIO_NODE;

typedef FILEIO_PAGE

typedef struct fileio_page FILEIO_PAGE;

typedef FILEIO_PAGE_RESERVED

typedef struct fileio_page_reserved FILEIO_PAGE_RESERVED;

typedef FILEIO_PAGE_WATERMARK

typedef struct fileio_page_watermark FILEIO_PAGE_WATERMARK;

typedef FILEIO_QUEUE

typedef struct fileio_queue FILEIO_QUEUE;

enum FILEIO_REMOTE_PROMPT_TYPE

enum FILEIO_REMOTE_PROMPT_TYPE {
    FILEIO_PROMPT_UNKNOWN,
    FILEIO_PROMPT_RANGE_TYPE,
    FILEIO_PROMPT_BOOLEAN_TYPE,
    FILEIO_PROMPT_STRING_TYPE,
    FILEIO_PROMPT_RANGE_WITH_SECONDARY_STRING_TYPE,
    FILEIO_PROMPT_DISPLAY_ONLY
};

typedef FILEIO_RESTORE_PAGE_BITMAP

typedef struct page_bitmap FILEIO_RESTORE_PAGE_BITMAP;

typedef FILEIO_RESTORE_PAGE_BITMAP_LIST

typedef struct page_bitmap_list FILEIO_RESTORE_PAGE_BITMAP_LIST;

typedef FILEIO_THREAD_INFO

typedef struct fileio_thread_info FILEIO_THREAD_INFO;

enum FILEIO_TYPE

enum FILEIO_TYPE {
    FILEIO_ERROR_INTERRUPT,
    FILEIO_READ,
    FILEIO_WRITE
};

typedef FILEIO_UNLINKED_VOLINFO_MAP

using FILEIO_UNLINKED_VOLINFO_MAP =  std::map <int, std::pair<std::string, std::string> >;

enum FILEIO_WRITE_MODE

enum FILEIO_WRITE_MODE {
    FILEIO_WRITE_DEFAULT_WRITE,
    FILEIO_WRITE_NO_COMPENSATE_WRITE
};

typedef FILEIO_ZIP_INFO

typedef struct file_zip_info FILEIO_ZIP_INFO;

enum FILEIO_ZIP_LEVEL

enum FILEIO_ZIP_LEVEL {
    FILEIO_ZIP_NONE_LEVEL,
    FILEIO_ZIP_1_LEVEL,
    FILEIO_ZIP_UNDEFINED_LEVEL,
    FILEIO_ZIP_LZ4_DEFAULT_LEVEL = FILEIO_ZIP_1_LEVEL
};

enum FILEIO_ZIP_METHOD

enum FILEIO_ZIP_METHOD {
    FILEIO_ZIP_NONE_METHOD,
    FILEIO_ZIP_LZO1X_METHOD,
    FILEIO_ZIP_ZLIB_METHOD,
    FILEIO_ZIP_LZ4_METHOD,
    FILEIO_ZIP_UNDEFINED_METHOD
};

typedef FILEIO_ZIP_PAGE

typedef struct file_zip_page FILEIO_ZIP_PAGE;

typedef FLUSH_STATS

typedef struct flush_stats FLUSH_STATS;

typedef TOKEN_BUCKET

typedef struct token_bucket TOKEN_BUCKET;

Public Functions Documentation

function fileio_abort_backup

void fileio_abort_backup (
    THREAD_ENTRY * thread_p,
    FILEIO_BACKUP_SESSION * session,
    bool does_unformat_bk
) 

function fileio_abort_restore

void fileio_abort_restore (
    THREAD_ENTRY * thread_p,
    FILEIO_BACKUP_SESSION * session
) 

function fileio_add_volume_to_backup_info

int fileio_add_volume_to_backup_info (
    const  char * name,
    FILEIO_BACKUP_LEVEL level,
    int unit_num,
    int which_bkvinf
) 

function fileio_backup_volume

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
) 

function fileio_clear_backup_info_level

int fileio_clear_backup_info_level (
    int level,
    bool dealloc,
    int which_bkvinf
) 

function fileio_close

void fileio_close (
    int vdes
) 

function fileio_copy_volume

int fileio_copy_volume (
    THREAD_ENTRY * thread_p,
    int from_vdes,
    DKNPAGES npages,
    const  char * to_vlabel,
    VOLID to_volid,
    bool reset_recvinfo
) 

function fileio_dismount

void fileio_dismount (
    THREAD_ENTRY * thread_p,
    int vdes
) 

function fileio_dismount_all

void fileio_dismount_all (
    THREAD_ENTRY * thread_p
) 

function fileio_dismount_without_fsync

void fileio_dismount_without_fsync (
    THREAD_ENTRY * thread_p,
    int vdes
) 

function fileio_finalize_backup_info

void fileio_finalize_backup_info (
    int which_bkvinf
) 

function fileio_find_next_perm_volume

VOLID fileio_find_next_perm_volume (
    THREAD_ENTRY * thread_p,
    VOLID volid
) 

function fileio_find_previous_perm_volume

VOLID fileio_find_previous_perm_volume (
    THREAD_ENTRY * thread_p,
    VOLID volid
) 

function fileio_find_previous_temp_volume

VOLID fileio_find_previous_temp_volume (
    THREAD_ENTRY * thread_p,
    VOLID volid
) 

function fileio_find_volume_descriptor_with_label

int fileio_find_volume_descriptor_with_label (
    const  char * vol_label_p
) 

function fileio_find_volume_id_with_label

VOLID fileio_find_volume_id_with_label (
    THREAD_ENTRY * thread_p,
    const  char * vlabel
) 

function fileio_finish_backup

FILEIO_BACKUP_SESSION * fileio_finish_backup (
    THREAD_ENTRY * thread_p,
    FILEIO_BACKUP_SESSION * session
) 

function fileio_finish_restore

int fileio_finish_restore (
    THREAD_ENTRY * thread_p,
    FILEIO_BACKUP_SESSION * session
) 

function fileio_flush_control_add_tokens

int fileio_flush_control_add_tokens (
    THREAD_ENTRY * thread_p,
    INT64 diff_usec,
    int * token_gen,
    int * token_consumed
) 

function fileio_flush_control_finalize

void fileio_flush_control_finalize (
    void
) 

function fileio_flush_control_initialize

int fileio_flush_control_initialize (
    void
) 

function fileio_format

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
) 

function fileio_fsync_pending

bool fileio_fsync_pending (
    void
) 

function fileio_get_backup_info_volume_name

const  char * fileio_get_backup_info_volume_name (
    FILEIO_BACKUP_LEVEL level,
    int unit_num,
    int which_bkvinf
) 

function fileio_get_backup_volume

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
) 

function fileio_get_base_file_name

const  char * fileio_get_base_file_name (
    const  char * fullname
) 

function fileio_get_directory_path

char * fileio_get_directory_path (
    char * path,
    const  char * fullname
) 

function fileio_get_max_name

int fileio_get_max_name (
    const  char * path,
    long  int * filename_max,
    long  int * pathname_max
) 

function fileio_get_next_restore_file

int fileio_get_next_restore_file (
    THREAD_ENTRY * thread_p,
    FILEIO_BACKUP_SESSION * session,
    char * filename,
    VOLID * volid
) 

function fileio_get_number_of_partition_free_pages

int fileio_get_number_of_partition_free_pages (
    const  char * path,
    size_t page_size
) 

function fileio_get_number_of_partition_free_sectors

DKNSECTS fileio_get_number_of_partition_free_sectors (
    const  char * path_p
) 

function fileio_get_number_of_volume_pages

DKNPAGES fileio_get_number_of_volume_pages (
    int vdes,
    size_t page_size
) 

function fileio_get_volume_descriptor

int fileio_get_volume_descriptor (
    VOLID volid
) 

function fileio_get_volume_label

char * fileio_get_volume_label (
    VOLID volid,
    bool is_peek
) 

function fileio_get_volume_label_by_fd

char * fileio_get_volume_label_by_fd (
    int vol_fd,
    bool is_peek
) 

function fileio_get_volume_max_suffix

int fileio_get_volume_max_suffix (
    void
) 

function fileio_get_zip_level_string

const  char * fileio_get_zip_level_string (
    FILEIO_ZIP_LEVEL zip_level
) 

function fileio_get_zip_method_string

const  char * fileio_get_zip_method_string (
    FILEIO_ZIP_METHOD zip_method
) 

function fileio_initialize_backup

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
) 

function fileio_initialize_pages

void * fileio_initialize_pages (
    THREAD_ENTRY * thread_p,
    int vdes,
    FILEIO_PAGE * io_pgptr,
    DKNPAGES start_pageid,
    DKNPAGES npages,
    size_t page_size,
    bool ensure_metadata,
    int kbytes_to_be_written_per_sec
) 

function fileio_initialize_res

void fileio_initialize_res (
    THREAD_ENTRY * thread_p,
    FILEIO_PAGE * io_page,
    PGLENGTH page_size
) 

function fileio_is_formatted_page

bool fileio_is_formatted_page (
    THREAD_ENTRY * thread_p,
    const  char * io_page
) 

function fileio_is_permanent_volume_descriptor

bool fileio_is_permanent_volume_descriptor (
    THREAD_ENTRY * thread_p,
    int vol_fd
) 

function fileio_is_temp_volume

bool fileio_is_temp_volume (
    THREAD_ENTRY * thread_p,
    VOLID volid
) 

function fileio_is_volume_exist

bool fileio_is_volume_exist (
    const  char * vlabel
) 

function fileio_is_volume_exist_and_file

bool fileio_is_volume_exist_and_file (
    const  char * vlabel
) 

function fileio_list_restore

int fileio_list_restore (
    THREAD_ENTRY * thread_p,
    const  char * db_fullname,
    char * backup_source,
    FILEIO_BACKUP_LEVEL level,
    bool newvolpath
) 

function fileio_lob_remove_dir

int fileio_lob_remove_dir (
    char * lob_path
) 

function fileio_lob_remove_matching_dir

int fileio_lob_remove_matching_dir (
    const  char * keyword
) 

function fileio_lock_la_dbname

FILEIO_LOCKF_TYPE fileio_lock_la_dbname (
    int * lockf_vdes,
    char * db_name,
    char * log_path
) 

function fileio_lock_la_log_path

FILEIO_LOCKF_TYPE fileio_lock_la_log_path (
    const  char * db_fullname,
    const  char * lock_path,
    int vdes,
    int * last_deleted_arv_num
) 

function fileio_make_backup_name

void fileio_make_backup_name (
    char * backup_name,
    const  char * nopath_volname,
    const  char * backup_path,
    FILEIO_BACKUP_LEVEL level,
    int unit_num
) 

function fileio_make_backup_volume_info_name

void fileio_make_backup_volume_info_name (
    char * backup_volinfo_name,
    const  char * backinfo_path,
    const  char * dbname
) 

function fileio_make_dwb_name

void fileio_make_dwb_name (
    char * dwb_name_p,
    const  char * dwb_path_p,
    const  char * db_name_p
) 

function fileio_make_keys_name

void fileio_make_keys_name (
    char * keys_name_p,
    const  char * db_name_p
) 

function fileio_make_keys_name_given_path

void fileio_make_keys_name_given_path (
    char * keys_name_p,
    const  char * keys_path_p,
    const  char * db_name_p
) 

function fileio_make_log_active_name

void fileio_make_log_active_name (
    char * logactive_name,
    const  char * log_path,
    const  char * dbname
) 

function fileio_make_log_archive_name

void fileio_make_log_archive_name (
    char * logarchive_name,
    const  char * log_path,
    const  char * dbname,
    int arvnum
) 

function fileio_make_log_archive_temp_name

void fileio_make_log_archive_temp_name (
    char * log_archive_temp_name_p,
    const  char * log_path_p,
    const  char * db_name_p
) 

function fileio_make_log_info_name

void fileio_make_log_info_name (
    char * loginfo_name,
    const  char * log_path,
    const  char * dbname
) 

function fileio_make_removed_log_archive_name

void fileio_make_removed_log_archive_name (
    char * logarchive_name,
    const  char * log_path,
    const  char * dbname
) 

function fileio_make_temp_log_files_from_backup

void fileio_make_temp_log_files_from_backup (
    char * temp_log_name,
    VOLID volid,
    FILEIO_BACKUP_LEVEL level,
    const  char * base_log_name
) 

function fileio_make_volume_ext_given_name

void fileio_make_volume_ext_given_name (
    char * volext_fullname,
    const  char * ext_path,
    const  char * ext_name
) 

function fileio_make_volume_ext_name

void fileio_make_volume_ext_name (
    char * volext_fullname,
    const  char * ext_path,
    const  char * ext_name,
    VOLID volid
) 

function fileio_make_volume_info_name

void fileio_make_volume_info_name (
    char * volinfo_name,
    const  char * db_fullname
) 

function fileio_make_volume_temp_name

void fileio_make_volume_temp_name (
    char * voltmp_fullname,
    const  char * tmp_path,
    const  char * tmp_name,
    VOLID volid
) 

function fileio_map_mounted

bool fileio_map_mounted (
    THREAD_ENTRY * thread_p,
    bool (*)( THREAD_ENTRY *thread_p, VOLID volid, void *args) fun,
    void * args
) 

function fileio_mount

int fileio_mount (
    THREAD_ENTRY * thread_p,
    const  char * db_fullname,
    const  char * vlabel,
    VOLID volid,
    int lockwait,
    bool dosync
) 

function fileio_open

int fileio_open (
    const  char * vlabel,
    int flags,
    int mode
) 

function fileio_os_sysconf

int fileio_os_sysconf (
    void
) 

function fileio_page_bitmap_create

FILEIO_RESTORE_PAGE_BITMAP * fileio_page_bitmap_create (
    int vol_id,
    int total_pages
) 

function fileio_page_bitmap_list_add

void fileio_page_bitmap_list_add (
    FILEIO_RESTORE_PAGE_BITMAP_LIST * page_bitmap_list,
    FILEIO_RESTORE_PAGE_BITMAP * page_bitmap
) 

function fileio_page_bitmap_list_destroy

void fileio_page_bitmap_list_destroy (
    FILEIO_RESTORE_PAGE_BITMAP_LIST * page_bitmap_list
) 

function fileio_page_bitmap_list_find

FILEIO_RESTORE_PAGE_BITMAP * fileio_page_bitmap_list_find (
    FILEIO_RESTORE_PAGE_BITMAP_LIST * page_bitmap_list,
    int vol_id
) 

function fileio_page_bitmap_list_init

void fileio_page_bitmap_list_init (
    FILEIO_RESTORE_PAGE_BITMAP_LIST * page_bitmap_list
) 

function fileio_page_check_corruption

int fileio_page_check_corruption (
    THREAD_ENTRY * thread_p,
    FILEIO_PAGE * io_page,
    bool * is_page_corrupted
) 

function fileio_page_hexa_dump

void fileio_page_hexa_dump (
    const  char * data,
    int length
) 

function fileio_read

void * fileio_read (
    THREAD_ENTRY * thread_p,
    int vol_fd,
    void * io_page_p,
    PAGEID page_id,
    size_t page_size
) 

function fileio_read_backup_info_entries

int fileio_read_backup_info_entries (
    FILE * fp,
    int which_bkvinf
) 

function fileio_read_pages

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
) 

function fileio_read_user_area

void * fileio_read_user_area (
    THREAD_ENTRY * thread_p,
    int vdes,
    PAGEID pageid,
    off_t start_offset,
    size_t nbytes,
    void * area
) 

function fileio_remove_all_backup

void fileio_remove_all_backup (
    THREAD_ENTRY * thread_p,
    int level
) 

function fileio_rename

const  char * fileio_rename (
    VOLID volid,
    const  char * old_vlabel,
    const  char * new_vlabel
) 

function fileio_request_user_response

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
) 

function fileio_reset_volume

int fileio_reset_volume (
    THREAD_ENTRY * thread_p,
    int vdes,
    const  char * vlabel,
    DKNPAGES npages,
    const  LOG_LSA * reset_lsa
) 

function fileio_restore_volume

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,
    bool & is_prev_vheader_restored,
    FILEIO_UNLINKED_VOLINFO_MAP & unlinked_vol_info
) 

function fileio_set_page_checksum

int fileio_set_page_checksum (
    THREAD_ENTRY * thread_p,
    FILEIO_PAGE * io_page
) 

function fileio_set_permission

int fileio_set_permission (
    const  char * vlabel
) 

function fileio_skip_restore_volume

int fileio_skip_restore_volume (
    THREAD_ENTRY * thread_p,
    FILEIO_BACKUP_SESSION * session
) 

function fileio_start_backup

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
) 

function fileio_start_restore

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
) 

int fileio_symlink (
    const  char * src,
    const  char * dest,
    int overwrite
) 

function fileio_synchronize

int fileio_synchronize (
    THREAD_ENTRY * thread_p,
    int vdes,
    const  char * vlabel,
    bool ensure_metadata
) 

function fileio_synchronize_all

int fileio_synchronize_all (
    THREAD_ENTRY * thread_p
) 

function fileio_synchronize_directory

int fileio_synchronize_directory (
    THREAD_ENTRY * thread_p,
    const  char * label
) 

function fileio_truncate

DKNPAGES fileio_truncate (
    VOLID volid,
    DKNPAGES npages_to_resize
) 

function fileio_unformat

void fileio_unformat (
    THREAD_ENTRY * thread_p,
    const  char * vlabel
) 

function fileio_unformat_and_rename

void fileio_unformat_and_rename (
    THREAD_ENTRY * thread_p,
    const  char * vlabel,
    const  char * new_vlabel
) 

function fileio_unlock_la_dbname

FILEIO_LOCKF_TYPE fileio_unlock_la_dbname (
    int * lockf_vdes,
    char * db_name,
    bool clear_owner
) 

function fileio_write

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
) 

function fileio_write_backup_info_entries

int fileio_write_backup_info_entries (
    FILE * fp,
    int which_bkvinf
) 

function fileio_write_or_add_to_dwb

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,
    bool ensure_metadata
) 

function fileio_write_pages

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
) 

function fileio_write_user_area

void * fileio_write_user_area (
    THREAD_ENTRY * thread_p,
    int vdes,
    PAGEID pageid,
    off_t start_offset,
    int nbytes,
    void * area
) 

function fileio_writev

void * fileio_writev (
    THREAD_ENTRY * thread_p,
    int vdes,
    void ** arrayof_io_pgptr,
    PAGEID start_pageid,
    DKNPAGES npages,
    size_t page_size
) 

Public Static Functions Documentation

function fileio_get_page_watermark_pos

static FILEIO_PAGE_WATERMARK * fileio_get_page_watermark_pos (
    FILEIO_PAGE * io_page,
    PGLENGTH page_size
) 

function fileio_init_lsa_of_page

static void fileio_init_lsa_of_page (
    FILEIO_PAGE * io_page,
    PGLENGTH page_size
) 

function fileio_is_page_sane

static int fileio_is_page_sane (
    FILEIO_PAGE * io_page,
    PGLENGTH page_size
) 

function fileio_reset_page_lsa

static void fileio_reset_page_lsa (
    FILEIO_PAGE * io_page,
    PGLENGTH page_size
) 

function fileio_set_page_lsa

static void fileio_set_page_lsa (
    FILEIO_PAGE * io_page,
    const  LOG_LSA * lsa,
    PGLENGTH page_size
) 

Macro Definition Documentation

define ALLOC_COPY

#define ALLOC_COPY `false /* alloc and copy volume label */`

define FILEIO_BACKUP_NUM_THREADS_AUTO

#define FILEIO_BACKUP_NUM_THREADS_AUTO `0`

define FILEIO_BACKUP_SLEEP_MSECS_AUTO

#define FILEIO_BACKUP_SLEEP_MSECS_AUTO `0`

define FILEIO_FIRST_BACKUP_VOL_INFO

#define FILEIO_FIRST_BACKUP_VOL_INFO `0`

define FILEIO_INITIAL_BACKUP_UNITS

#define FILEIO_INITIAL_BACKUP_UNITS `0`

define FILEIO_MAX_SUFFIX_LENGTH

#define FILEIO_MAX_SUFFIX_LENGTH `7`

define FILEIO_MAX_USER_RESPONSE_SIZE

#define FILEIO_MAX_USER_RESPONSE_SIZE `2000`

define FILEIO_NO_BACKUP_UNITS

#define FILEIO_NO_BACKUP_UNITS `-1`

define FILEIO_PAGE_FLAG_ENCRYPTED_AES

#define FILEIO_PAGE_FLAG_ENCRYPTED_AES `0x1`

define FILEIO_PAGE_FLAG_ENCRYPTED_ARIA

#define FILEIO_PAGE_FLAG_ENCRYPTED_ARIA `0x2`

define FILEIO_PAGE_FLAG_ENCRYPTED_MASK

#define FILEIO_PAGE_FLAG_ENCRYPTED_MASK `0x3`

define FILEIO_PATH_SEPARATOR

#define FILEIO_PATH_SEPARATOR (
    path
) `(path[ strlen (path) - 1] == PATH_SEPARATOR ? "" : STR_PATH_SEPARATOR )`

define FILEIO_SECOND_BACKUP_VOL_INFO

#define FILEIO_SECOND_BACKUP_VOL_INFO `1`

define FILEIO_SUFFIX_BACKUP

#define FILEIO_SUFFIX_BACKUP `"_bk"`

define FILEIO_SUFFIX_BACKUP_VOLINFO

#define FILEIO_SUFFIX_BACKUP_VOLINFO `"_bkvinf"`

define FILEIO_SUFFIX_DWB

#define FILEIO_SUFFIX_DWB `"_dwb"`

define FILEIO_SUFFIX_KEYS

#define FILEIO_SUFFIX_KEYS `"_keys"`

define FILEIO_SUFFIX_LOGACTIVE

#define FILEIO_SUFFIX_LOGACTIVE `"_lgat"`

define FILEIO_SUFFIX_LOGARCHIVE

#define FILEIO_SUFFIX_LOGARCHIVE `"_lgar"`

define FILEIO_SUFFIX_LOGINFO

#define FILEIO_SUFFIX_LOGINFO `"_lginf"`

define FILEIO_SUFFIX_TMP_LOGARCHIVE

#define FILEIO_SUFFIX_TMP_LOGARCHIVE `"_lgar_t"`

define FILEIO_VOLEXT_PREFIX

#define FILEIO_VOLEXT_PREFIX `"_x"`

define FILEIO_VOLINFO_SUFFIX

#define FILEIO_VOLINFO_SUFFIX `"_vinf"`

define FILEIO_VOLLOCK_SUFFIX

#define FILEIO_VOLLOCK_SUFFIX `"__lock"`

define FILEIO_VOLTMP_PREFIX

#define FILEIO_VOLTMP_PREFIX `"_t"`

define NULL_VOLDES

#define NULL_VOLDES `(-1)   /* Value  of  a  null ( invalid ) vol descriptor */`

define PEEK

#define PEEK `true /* Peek volume label pointer */`

define STR_PATH_SEPARATOR

#define STR_PATH_SEPARATOR `"/"`


The documentation for this class was generated from the following file cubrid/src/storage/file_io.h