46 #ifndef UNIV_HOTBACKUP
54 extern const char* srv_main_thread_op_info;
64 extern os_event_t srv_lock_timeout_thread_event;
77 #define SRV_AUTO_EXTEND_INCREMENT \
78 (srv_auto_extend_increment * ((1024 * 1024) / UNIV_PAGE_SIZE))
81 extern uint srv_lower_case_table_names;
84 extern mutex_t srv_monitor_file_mutex;
86 extern FILE* srv_monitor_file;
90 extern mutex_t srv_dict_tmpfile_mutex;
92 extern FILE* srv_dict_tmpfile;
96 extern mutex_t srv_misc_tmpfile_mutex;
98 extern FILE* srv_misc_tmpfile;
102 extern char* srv_data_home;
103 #ifdef UNIV_LOG_ARCHIVE
104 extern char* srv_arch_dir;
109 #ifndef UNIV_HOTBACKUP
129 extern my_bool srv_use_native_aio;
131 extern ibool srv_use_native_conditions;
133 extern ulint srv_n_data_files;
134 extern char** srv_data_file_names;
135 extern ulint* srv_data_file_sizes;
136 extern ulint* srv_data_file_is_raw_partition;
138 extern ibool srv_auto_extend_last_data_file;
139 extern ulint srv_last_file_size_max;
140 extern char** srv_log_group_home_dirs;
141 #ifndef UNIV_HOTBACKUP
142 extern unsigned int srv_auto_extend_increment;
144 extern ibool srv_created_new_raw;
146 extern ulint srv_n_log_groups;
147 extern ulint srv_n_log_files;
148 extern ulint srv_log_file_size;
149 extern ulint srv_log_buffer_size;
150 extern ulong srv_flush_log_at_trx_commit;
151 extern bool srv_adaptive_flushing;
156 #if defined(BUILD_DRIZZLE)
158 extern bool srv_use_sys_malloc;
161 # ifndef UNIV_HOTBACKUP
162 extern my_bool srv_use_sys_malloc;
164 extern ibool srv_use_sys_malloc;
171 extern ulint srv_mem_pool_size;
172 extern ulint srv_lock_table_size;
174 extern ulint srv_n_file_io_threads;
175 extern ulong srv_read_ahead_threshold;
176 extern ulint srv_n_read_io_threads;
177 extern ulint srv_n_write_io_threads;
180 extern ulong srv_io_capacity;
184 #define PCT_IO(p) ((ulong) (srv_io_capacity * ((double) p / 100.0)))
189 extern ulong srv_innodb_stats_method;
191 #ifdef UNIV_LOG_ARCHIVE
192 extern ibool srv_log_archive_on;
193 extern ibool srv_archive_recovery;
194 extern ib_uint64_t srv_archive_recovery_limit_lsn;
197 extern char* srv_file_flush_method_str;
198 extern ulint srv_unix_file_flush_method;
199 extern ulint srv_win_file_flush_method;
201 extern ulint srv_max_n_open_files;
203 extern ulint srv_max_dirty_pages_pct;
205 extern ulint srv_force_recovery;
206 extern ulong srv_thread_concurrency;
208 extern ulint srv_max_n_threads;
210 extern lint srv_conc_n_threads;
212 extern ulint srv_fast_shutdown;
219 extern ibool srv_innodb_status;
221 extern ib_uint64_t srv_stats_sample_pages;
223 extern ibool srv_use_doublewrite_buf;
224 extern ibool srv_use_checksums;
226 extern ulong srv_max_buf_pool_modified_pct;
227 extern ulong srv_max_purge_lag;
229 extern ulong srv_replication_delay;
231 extern uint64_t srv_ibuf_max_size;
232 extern uint32_t srv_ibuf_active_contract;
233 extern uint32_t srv_ibuf_accel_rate;
234 extern uint32_t srv_checkpoint_age_target;
235 extern uint32_t srv_flush_neighbor_pages;
236 extern uint32_t srv_read_ahead;
237 extern uint32_t srv_adaptive_flushing_method;
239 extern ibool srv_read_only;
240 extern ibool srv_fake_write;
241 extern ibool srv_apply_log_only;
245 extern ulint srv_n_rows_inserted;
246 extern ulint srv_n_rows_updated;
247 extern ulint srv_n_rows_deleted;
248 extern ulint srv_n_rows_read;
250 extern ibool srv_print_innodb_monitor;
251 extern ibool srv_print_innodb_lock_monitor;
252 extern ibool srv_print_innodb_tablespace_monitor;
253 extern ibool srv_print_verbose_log;
254 extern ibool srv_print_innodb_table_monitor;
256 extern ibool srv_lock_timeout_active;
257 extern ibool srv_monitor_active;
258 extern ibool srv_error_monitor_active;
260 extern ulong srv_n_spin_wait_rounds;
261 extern ulong srv_n_free_tickets_to_enter;
262 extern ulong srv_thread_sleep_delay;
263 extern ulong srv_spin_wait_delay;
264 extern ibool srv_priority_boost;
266 extern ulint srv_truncated_status_writes;
269 extern ibool srv_print_thread_releases;
270 extern ibool srv_print_lock_waits;
271 extern ibool srv_print_buf_io;
272 extern ibool srv_print_log_io;
273 extern ibool srv_print_latch_waits;
275 # define srv_print_thread_releases FALSE
276 # define srv_print_lock_waits FALSE
277 # define srv_print_buf_io FALSE
278 # define srv_print_log_io FALSE
279 # define srv_print_latch_waits FALSE
282 extern ulint srv_activity_count;
283 extern ulint srv_fatal_semaphore_wait_threshold;
284 extern ulint srv_dml_needed_delay;
286 extern mutex_t* kernel_mutex_temp;
290 extern mutex_t* commit_id_mutex_temp;
292 #define kernel_mutex (*kernel_mutex_temp)
293 #define commit_id_mutex (*commit_id_mutex_temp)
295 #define SRV_MAX_N_IO_THREADS 130
299 extern const char* srv_io_thread_op_info[];
300 extern const char* srv_io_thread_function[];
303 extern ulint srv_log_write_requests;
306 extern ulint srv_log_writes;
309 extern ulint srv_os_log_written;
312 extern ulint srv_os_log_pending_writes;
316 extern ulint srv_log_waits;
319 extern ulong srv_n_purge_threads;
322 extern ulong srv_purge_batch_size;
325 extern ulong srv_rollback_segments;
328 extern ulint srv_data_read;
331 extern ulint srv_data_written;
335 extern ulint srv_dblwr_writes;
339 extern ulint srv_dblwr_pages_written;
342 extern ulint srv_buf_pool_write_requests;
347 extern ulint srv_buf_pool_wait_free;
351 extern ulint srv_buf_pool_flushed;
372 # ifdef UNIV_PFS_THREAD
374 extern mysql_pfs_key_t trx_rollback_clean_thread_key;
375 extern mysql_pfs_key_t io_handler_thread_key;
376 extern mysql_pfs_key_t srv_lock_timeout_thread_key;
377 extern mysql_pfs_key_t srv_error_monitor_thread_key;
378 extern mysql_pfs_key_t srv_monitor_thread_key;
379 extern mysql_pfs_key_t srv_master_thread_key;
383 # define pfs_register_thread(key) \
386 struct PSI_thread* psi = PSI_server->new_thread(key, NULL, 0);\
388 PSI_server->set_thread(psi); \
394 # define pfs_delete_thread() \
397 PSI_server->delete_current_thread(); \
458 enum srv_stats_method_name_enum {
459 SRV_STATS_NULLS_EQUAL,
462 SRV_STATS_NULLS_UNEQUAL,
464 SRV_STATS_NULLS_IGNORED
467 typedef enum srv_stats_method_name_enum srv_stats_method_name_t;
469 #ifndef UNIV_HOTBACKUP
746 ulint innodb_buffer_pool_pages_latched;
798 extern ulint srv_n_threads_active[];
800 # define srv_use_adaptive_hash_indexes FALSE
801 # define srv_use_checksums TRUE
802 # define srv_use_native_aio FALSE
803 # define srv_force_recovery 0UL
804 # define srv_set_io_thread_op_info(t,info) ((void) 0)
805 # define srv_is_being_started 0
806 # define srv_win_file_flush_method SRV_WIN_IO_UNBUFFERED
807 # define srv_unix_file_flush_method SRV_UNIX_O_DSYNC
808 # define srv_start_raw_disk_in_use 0
809 # define srv_file_per_table 1