📄 srv0srv.h
字号:
/******************************************************The server main program(c) 1995 Innobase OyCreated 10/10/1995 Heikki Tuuri*******************************************************/#ifndef srv0srv_h#define srv0srv_h#include "univ.i"#include "sync0sync.h"#include "os0sync.h"#include "que0types.h"#include "trx0types.h"extern const char* srv_main_thread_op_info;/* When this event is set the lock timeout and InnoDB monitorthread starts running */extern os_event_t srv_lock_timeout_thread_event;/* If the last data file is auto-extended, we add this many pages to itat a time */#define SRV_AUTO_EXTEND_INCREMENT \ (srv_auto_extend_increment * ((1024 * 1024) / UNIV_PAGE_SIZE))/* This is set to TRUE if the MySQL user has set it in MySQL */extern ibool srv_lower_case_table_names;/* Mutex for locking srv_monitor_file */extern mutex_t srv_monitor_file_mutex;/* Temporary file for innodb monitor output */extern FILE* srv_monitor_file;/* Mutex for locking srv_dict_tmpfile.This mutex has a very high rank; threads reserving it should notbe holding any InnoDB latches. */extern mutex_t srv_dict_tmpfile_mutex;/* Temporary file for output from the data dictionary */extern FILE* srv_dict_tmpfile;/* Mutex for locking srv_misc_tmpfile.This mutex has a very low rank; threads reserving it should notacquire any further latches or sleep before releasing this one. */extern mutex_t srv_misc_tmpfile_mutex;/* Temporary file for miscellanous diagnostic output */extern FILE* srv_misc_tmpfile;/* Server parameters which are read from the initfile */extern char* srv_data_home;#ifdef UNIV_LOG_ARCHIVEextern char* srv_arch_dir;#endif /* UNIV_LOG_ARCHIVE */extern ibool srv_file_per_table;extern ibool srv_locks_unsafe_for_binlog;extern ulint srv_n_data_files;extern char** srv_data_file_names;extern ulint* srv_data_file_sizes;extern ulint* srv_data_file_is_raw_partition;extern ibool srv_auto_extend_last_data_file;extern ulint srv_last_file_size_max;extern ulong srv_auto_extend_increment;extern ibool srv_created_new_raw;#define SRV_NEW_RAW 1#define SRV_OLD_RAW 2extern char** srv_log_group_home_dirs;extern ulint srv_n_log_groups;extern ulint srv_n_log_files;extern ulint srv_log_file_size;extern ulint srv_log_buffer_size;extern ulong srv_flush_log_at_trx_commit;extern byte srv_latin1_ordering[256];/* The sort order table of the latin1 character set */extern ulint srv_pool_size;extern ulint srv_awe_window_size;extern ulint srv_mem_pool_size;extern ulint srv_lock_table_size;extern ulint srv_n_file_io_threads;#ifdef UNIV_LOG_ARCHIVEextern ibool srv_log_archive_on;extern ibool srv_archive_recovery;extern dulint srv_archive_recovery_limit_lsn;#endif /* UNIV_LOG_ARCHIVE */extern ulint srv_lock_wait_timeout;extern char* srv_file_flush_method_str;extern ulint srv_unix_file_flush_method;extern ulint srv_win_file_flush_method;extern ulint srv_max_n_open_files;extern ulint srv_max_dirty_pages_pct;extern ulint srv_force_recovery;extern ulong srv_thread_concurrency;extern ulong srv_commit_concurrency;extern ulint srv_max_n_threads;extern lint srv_conc_n_threads;extern ulint srv_fast_shutdown; /* If this is 1, do not do a purge and index buffer merge. If this 2, do not even flush the buffer pool to data files at the shutdown: we effectively 'crash' InnoDB (but lose no committed transactions). */extern ibool srv_innodb_status;extern ibool srv_use_doublewrite_buf;extern ibool srv_use_checksums;extern ibool srv_set_thread_priorities;extern int srv_query_thread_priority;extern ulong srv_max_buf_pool_modified_pct;extern ulong srv_max_purge_lag;extern ibool srv_use_awe;extern ibool srv_use_adaptive_hash_indexes;/*-------------------------------------------*/extern ulint srv_n_rows_inserted;extern ulint srv_n_rows_updated;extern ulint srv_n_rows_deleted;extern ulint srv_n_rows_read;extern ibool srv_print_innodb_monitor;extern ibool srv_print_innodb_lock_monitor;extern ibool srv_print_innodb_tablespace_monitor;extern ibool srv_print_verbose_log;extern ibool srv_print_innodb_table_monitor;extern ibool srv_lock_timeout_and_monitor_active;extern ibool srv_error_monitor_active; extern ulong srv_n_spin_wait_rounds;extern ulong srv_n_free_tickets_to_enter;extern ulong srv_thread_sleep_delay;extern ulint srv_spin_wait_delay;extern ibool srv_priority_boost; extern ulint srv_pool_size;extern ulint srv_mem_pool_size;extern ulint srv_lock_table_size;extern ulint srv_sim_disk_wait_pct;extern ulint srv_sim_disk_wait_len;extern ibool srv_sim_disk_wait_by_yield;extern ibool srv_sim_disk_wait_by_wait;extern ibool srv_measure_contention;extern ibool srv_measure_by_spin; extern ibool srv_print_thread_releases;extern ibool srv_print_lock_waits;extern ibool srv_print_buf_io;extern ibool srv_print_log_io;extern ibool srv_print_parsed_sql;extern ibool srv_print_latch_waits;extern ibool srv_test_nocache;extern ibool srv_test_cache_evict;extern ibool srv_test_extra_mutexes;extern ibool srv_test_sync;extern ulint srv_test_n_threads;extern ulint srv_test_n_loops;extern ulint srv_test_n_free_rnds;extern ulint srv_test_n_reserved_rnds;extern ulint srv_test_n_mutexes;extern ulint srv_test_array_size;extern ulint srv_activity_count;extern ulint srv_fatal_semaphore_wait_threshold;extern ulint srv_dml_needed_delay;extern mutex_t* kernel_mutex_temp;/* mutex protecting the server, trx structs, query threads, and lock table: we allocate it from dynamic memory to get it to the same DRAM page as other hotspot semaphores */#define kernel_mutex (*kernel_mutex_temp)#define SRV_MAX_N_IO_THREADS 100 /* Array of English strings describing the current state of ani/o handler thread */extern const char* srv_io_thread_op_info[];extern const char* srv_io_thread_function[];/* the number of the log write requests done */extern ulint srv_log_write_requests;/* the number of physical writes to the log performed */extern ulint srv_log_writes;/* amount of data written to the log files in bytes */extern ulint srv_os_log_written;/* amount of writes being done to the log files */extern ulint srv_os_log_pending_writes;/* we increase this counter, when there we don't have enough space in thelog buffer and have to flush it */extern ulint srv_log_waits;/* variable that counts amount of data read in total (in bytes) */extern ulint srv_data_read;/* here we count the amount of data written in total (in bytes) */extern ulint srv_data_written;/* this variable counts the amount of times, when the doublewrite bufferwas flushed */extern ulint srv_dblwr_writes;/* here we store the number of pages that have been flushed to thedoublewrite buffer */extern ulint srv_dblwr_pages_written;/* in this variable we store the number of write requests issued */extern ulint srv_buf_pool_write_requests;/* here we store the number of times when we had to wait for a free pagein the buffer pool. It happens when the buffer pool is full and we needto make a flush, in order to be able to read or create a page. */extern ulint srv_buf_pool_wait_free;/* variable to count the number of pages that were written from thebuffer pool to disk */extern ulint srv_buf_pool_flushed;/* variable to count the number of buffer pool reads that led to thereading of a disk page */extern ulint srv_buf_pool_reads;/* variable to count the number of sequential read-aheads were done */extern ulint srv_read_ahead_seq;/* variable to count the number of random read-aheads were done */extern ulint srv_read_ahead_rnd;/* In this structure we store status variables to be passed to MySQL */typedef struct export_var_struct export_struc;extern export_struc export_vars;typedef struct srv_sys_struct srv_sys_t;/* The server system */extern srv_sys_t* srv_sys;/* Alternatives for the file flush option in Unix; see the InnoDB manual aboutwhat these mean */#define SRV_UNIX_FDATASYNC 1 /* This is the default; it is currently mapped to a call of fsync() because fdatasync() seemed to corrupt files in Linux and Solaris */#define SRV_UNIX_O_DSYNC 2#define SRV_UNIX_LITTLESYNC 3#define SRV_UNIX_NOSYNC 4#define SRV_UNIX_O_DIRECT 5/* Alternatives for file i/o in Windows */#define SRV_WIN_IO_NORMAL 1#define SRV_WIN_IO_UNBUFFERED 2 /* This is the default *//* Alternatives for srv_force_recovery. Non-zero values are intendedto help the user get a damaged database up so that he can dump intacttables and rows with SELECT INTO OUTFILE. The database must not otherwisebe used with these options! A bigger number below means that all precautionsof lower numbers are included. */#define SRV_FORCE_IGNORE_CORRUPT 1 /* let the server run even if it detects a corrupt page */#define SRV_FORCE_NO_BACKGROUND 2 /* prevent the main thread from running: if a crash would occur in purge, this prevents it */#define SRV_FORCE_NO_TRX_UNDO 3 /* do not run trx rollback after recovery */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -