Drizzled Public API Documentation

srv0srv.h
Go to the documentation of this file.
00001 /*****************************************************************************
00002 
00003 Copyright (C) 1995, 2010, Innobase Oy. All Rights Reserved.
00004 Copyright (C) 2008, 2009, Google Inc.
00005 Copyright (C) 2009, Percona Inc.
00006 
00007 Portions of this file contain modifications contributed and copyrighted by
00008 Google, Inc. Those modifications are gratefully acknowledged and are described
00009 briefly in the InnoDB documentation. The contributions by Google are
00010 incorporated with their permission, and subject to the conditions contained in
00011 the file COPYING.Google.
00012 
00013 Portions of this file contain modifications contributed and copyrighted
00014 by Percona Inc.. Those modifications are
00015 gratefully acknowledged and are described briefly in the InnoDB
00016 documentation. The contributions by Percona Inc. are incorporated with
00017 their permission, and subject to the conditions contained in the file
00018 COPYING.Percona.
00019 
00020 This program is free software; you can redistribute it and/or modify it under
00021 the terms of the GNU General Public License as published by the Free Software
00022 Foundation; version 2 of the License.
00023 
00024 This program is distributed in the hope that it will be useful, but WITHOUT
00025 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00026 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
00027 
00028 You should have received a copy of the GNU General Public License along with
00029 this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
00030 St, Fifth Floor, Boston, MA 02110-1301 USA
00031 
00032 *****************************************************************************/
00033 
00034 /**************************************************/
00041 #pragma once
00042 #ifndef srv0srv_h
00043 #define srv0srv_h
00044 
00045 #include "univ.i"
00046 #ifndef UNIV_HOTBACKUP
00047 #include "sync0sync.h"
00048 #include "os0sync.h"
00049 #include "que0types.h"
00050 #include "trx0types.h"
00051 
00052 #include <string>
00053 
00054 extern const char*  srv_main_thread_op_info;
00055 
00060 static const std::string srv_mysql50_table_name_prefix("#mysql50#");
00061 
00062 /* When this event is set the lock timeout and InnoDB monitor
00063 thread starts running */
00064 extern os_event_t srv_lock_timeout_thread_event;
00065 
00066 /* The monitor thread waits on this event. */
00067 extern os_event_t srv_monitor_event;
00068 
00069 /* The lock timeout thread waits on this event. */
00070 extern os_event_t srv_timeout_event;
00071 
00072 /* The error monitor thread waits on this event. */
00073 extern os_event_t srv_error_event;
00074 
00075 /* If the last data file is auto-extended, we add this many pages to it
00076 at a time */
00077 #define SRV_AUTO_EXTEND_INCREMENT \
00078   (srv_auto_extend_increment * ((1024 * 1024) / UNIV_PAGE_SIZE))
00079 
00080 /* This is set to TRUE if the MySQL user has set it in MySQL */
00081 extern ibool  srv_lower_case_table_names;
00082 
00083 /* Mutex for locking srv_monitor_file */
00084 extern mutex_t  srv_monitor_file_mutex;
00085 /* Temporary file for innodb monitor output */
00086 extern FILE*  srv_monitor_file;
00087 /* Mutex for locking srv_dict_tmpfile.
00088 This mutex has a very high rank; threads reserving it should not
00089 be holding any InnoDB latches. */
00090 extern mutex_t  srv_dict_tmpfile_mutex;
00091 /* Temporary file for output from the data dictionary */
00092 extern FILE*  srv_dict_tmpfile;
00093 /* Mutex for locking srv_misc_tmpfile.
00094 This mutex has a very low rank; threads reserving it should not
00095 acquire any further latches or sleep before releasing this one. */
00096 extern mutex_t  srv_misc_tmpfile_mutex;
00097 /* Temporary file for miscellanous diagnostic output */
00098 extern FILE*  srv_misc_tmpfile;
00099 
00100 /* Server parameters which are read from the initfile */
00101 
00102 extern char*  srv_data_home;
00103 #ifdef UNIV_LOG_ARCHIVE
00104 extern char*  srv_arch_dir;
00105 #endif /* UNIV_LOG_ARCHIVE */
00106 
00109 #ifndef UNIV_HOTBACKUP
00110 extern my_bool  srv_file_per_table;
00111 #else
00112 extern ibool  srv_file_per_table;
00113 #endif /* UNIV_HOTBACKUP */
00114 
00115 extern ulint  srv_file_format;
00119 extern ulint  srv_max_file_format_at_startup;
00122 extern ibool  srv_locks_unsafe_for_binlog;
00123 #endif /* !UNIV_HOTBACKUP */
00124 
00125 /* If this flag is TRUE, then we will use the native aio of the
00126 OS (provided we compiled Innobase with it in), otherwise we will
00127 use simulated aio we build below with threads.
00128 Currently we support native aio on windows and linux */
00129 extern my_bool  srv_use_native_aio;
00130 #ifdef __WIN__
00131 extern ibool  srv_use_native_conditions;
00132 #endif
00133 extern ulint  srv_n_data_files;
00134 extern char** srv_data_file_names;
00135 extern ulint* srv_data_file_sizes;
00136 extern ulint* srv_data_file_is_raw_partition;
00137 
00138 extern ibool  srv_auto_extend_last_data_file;
00139 extern ulint  srv_last_file_size_max;
00140 extern char** srv_log_group_home_dirs;
00141 #ifndef UNIV_HOTBACKUP
00142 extern unsigned int srv_auto_extend_increment;
00143 
00144 extern ibool  srv_created_new_raw;
00145 
00146 extern ulint  srv_n_log_groups;
00147 extern ulint  srv_n_log_files;
00148 extern ulint  srv_log_file_size;
00149 extern ulint  srv_log_buffer_size;
00150 extern ulong  srv_flush_log_at_trx_commit;
00151 extern bool srv_adaptive_flushing;
00152 
00153 
00154 /* The sort order table of the MySQL latin1_swedish_ci character set
00155 collation */
00156 #if defined(BUILD_DRIZZLE)
00157 extern const byte  srv_latin1_ordering[256];
00158 extern bool srv_use_sys_malloc;
00159 #else
00160 extern const byte*     srv_latin1_ordering;
00161 # ifndef UNIV_HOTBACKUP
00162 extern my_bool srv_use_sys_malloc;
00163 # else
00164 extern ibool   srv_use_sys_malloc;
00165 # endif /* UNIV_HOTBACKUP */
00166 #endif /* BUILD_DRIZZLE */
00167 extern ulint  srv_buf_pool_size;  
00168 extern ulint    srv_buf_pool_instances; 
00169 extern ulint  srv_buf_pool_old_size;  
00170 extern ulint  srv_buf_pool_curr_size; 
00171 extern ulint  srv_mem_pool_size;
00172 extern ulint  srv_lock_table_size;
00173 
00174 extern ulint  srv_n_file_io_threads;
00175 extern ulong  srv_read_ahead_threshold;
00176 extern ulint  srv_n_read_io_threads;
00177 extern ulint  srv_n_write_io_threads;
00178 
00179 /* Number of IO operations per second the server can do */
00180 extern ulong    srv_io_capacity;
00181 /* Returns the number of IO operations that is X percent of the
00182 capacity. PCT_IO(5) -> returns the number of IO operations that
00183 is 5% of the max where max is srv_io_capacity.  */
00184 #define PCT_IO(p) ((ulong) (srv_io_capacity * ((double) p / 100.0)))
00185 
00186 #ifdef UNIV_LOG_ARCHIVE
00187 extern ibool    srv_log_archive_on;
00188 extern ibool    srv_archive_recovery;
00189 extern ib_uint64_t  srv_archive_recovery_limit_lsn;
00190 #endif /* UNIV_LOG_ARCHIVE */
00191 
00192 extern char*  srv_file_flush_method_str;
00193 extern ulint  srv_unix_file_flush_method;
00194 extern ulint  srv_win_file_flush_method;
00195 
00196 extern ulint  srv_max_n_open_files;
00197 
00198 extern ulint  srv_max_dirty_pages_pct;
00199 
00200 extern ulint  srv_force_recovery;
00201 extern ulong  srv_thread_concurrency;
00202 
00203 extern ulint  srv_max_n_threads;
00204 
00205 extern lint srv_conc_n_threads;
00206 
00207 extern ulint  srv_fast_shutdown;   /* If this is 1, do not do a
00208            purge and index buffer merge.
00209            If this 2, do not even flush the
00210            buffer pool to data files at the
00211            shutdown: we effectively 'crash'
00212            InnoDB (but lose no committed
00213            transactions). */
00214 extern ibool  srv_innodb_status;
00215 
00216 extern ib_uint64_t  srv_stats_sample_pages;
00217 
00218 extern ibool  srv_use_doublewrite_buf;
00219 extern ibool  srv_use_checksums;
00220 
00221 extern ulong  srv_max_buf_pool_modified_pct;
00222 extern ulong  srv_max_purge_lag;
00223 
00224 extern ulong  srv_replication_delay;
00225 /*-------------------------------------------*/
00226 
00227 extern ulint  srv_n_rows_inserted;
00228 extern ulint  srv_n_rows_updated;
00229 extern ulint  srv_n_rows_deleted;
00230 extern ulint  srv_n_rows_read;
00231 
00232 extern ibool  srv_print_innodb_monitor;
00233 extern ibool  srv_print_innodb_lock_monitor;
00234 extern ibool  srv_print_innodb_tablespace_monitor;
00235 extern ibool  srv_print_verbose_log;
00236 extern ibool  srv_print_innodb_table_monitor;
00237 
00238 extern ibool  srv_lock_timeout_active;
00239 extern ibool  srv_monitor_active;
00240 extern ibool  srv_error_monitor_active;
00241 
00242 extern ulong  srv_n_spin_wait_rounds;
00243 extern ulong  srv_n_free_tickets_to_enter;
00244 extern ulong  srv_thread_sleep_delay;
00245 extern ulong  srv_spin_wait_delay;
00246 extern ibool  srv_priority_boost;
00247 
00248 extern ulint  srv_truncated_status_writes;
00249 
00250 #ifdef UNIV_DEBUG
00251 extern  ibool srv_print_thread_releases;
00252 extern  ibool srv_print_lock_waits;
00253 extern  ibool srv_print_buf_io;
00254 extern  ibool srv_print_log_io;
00255 extern  ibool srv_print_latch_waits;
00256 #else /* UNIV_DEBUG */
00257 # define srv_print_thread_releases  FALSE
00258 # define srv_print_lock_waits   FALSE
00259 # define srv_print_buf_io   FALSE
00260 # define srv_print_log_io   FALSE
00261 # define srv_print_latch_waits    FALSE
00262 #endif /* UNIV_DEBUG */
00263 
00264 extern ulint  srv_activity_count;
00265 extern ulint  srv_fatal_semaphore_wait_threshold;
00266 extern ulint  srv_dml_needed_delay;
00267 
00268 extern mutex_t* kernel_mutex_temp;/* mutex protecting the server, trx structs,
00269         query threads, and lock table: we allocate
00270         it from dynamic memory to get it to the
00271         same DRAM page as other hotspot semaphores */
00272 extern mutex_t* commit_id_mutex_temp;
00273 
00274 #define kernel_mutex (*kernel_mutex_temp)
00275 #define commit_id_mutex (*commit_id_mutex_temp)
00276 
00277 #define SRV_MAX_N_IO_THREADS  130
00278 
00279 /* Array of English strings describing the current state of an
00280 i/o handler thread */
00281 extern const char* srv_io_thread_op_info[];
00282 extern const char* srv_io_thread_function[];
00283 
00284 /* the number of the log write requests done */
00285 extern ulint srv_log_write_requests;
00286 
00287 /* the number of physical writes to the log performed */
00288 extern ulint srv_log_writes;
00289 
00290 /* amount of data written to the log files in bytes */
00291 extern ulint srv_os_log_written;
00292 
00293 /* amount of writes being done to the log files */
00294 extern ulint srv_os_log_pending_writes;
00295 
00296 /* we increase this counter, when there we don't have enough space in the
00297 log buffer and have to flush it */
00298 extern ulint srv_log_waits;
00299 
00300 /* the number of purge threads to use from the worker pool (currently 0 or 1) */
00301 extern ulong srv_n_purge_threads;
00302 
00303 /* the number of records to purge in one batch */
00304 extern ulong srv_purge_batch_size;
00305 
00306 /* variable that counts amount of data read in total (in bytes) */
00307 extern ulint srv_data_read;
00308 
00309 /* here we count the amount of data written in total (in bytes) */
00310 extern ulint srv_data_written;
00311 
00312 /* this variable counts the amount of times, when the doublewrite buffer
00313 was flushed */
00314 extern ulint srv_dblwr_writes;
00315 
00316 /* here we store the number of pages that have been flushed to the
00317 doublewrite buffer */
00318 extern ulint srv_dblwr_pages_written;
00319 
00320 /* in this variable we store the number of write requests issued */
00321 extern ulint srv_buf_pool_write_requests;
00322 
00323 /* here we store the number of times when we had to wait for a free page
00324 in the buffer pool. It happens when the buffer pool is full and we need
00325 to make a flush, in order to be able to read or create a page. */
00326 extern ulint srv_buf_pool_wait_free;
00327 
00328 /* variable to count the number of pages that were written from the
00329 buffer pool to disk */
00330 extern ulint srv_buf_pool_flushed;
00331 
00334 extern ulint srv_buf_pool_reads;
00335 
00337 typedef struct export_var_struct export_struc;
00338 
00340 extern export_struc export_vars;
00341 
00343 typedef struct srv_sys_struct srv_sys_t;
00344 
00346 extern srv_sys_t* srv_sys;
00347 
00348 # ifdef UNIV_PFS_THREAD
00349 /* Keys to register InnoDB threads with performance schema */
00350 extern mysql_pfs_key_t  trx_rollback_clean_thread_key;
00351 extern mysql_pfs_key_t  io_handler_thread_key;
00352 extern mysql_pfs_key_t  srv_lock_timeout_thread_key;
00353 extern mysql_pfs_key_t  srv_error_monitor_thread_key;
00354 extern mysql_pfs_key_t  srv_monitor_thread_key;
00355 extern mysql_pfs_key_t  srv_master_thread_key;
00356 
00357 /* This macro register the current thread and its key with performance
00358 schema */
00359 #  define pfs_register_thread(key)      \
00360 do {                \
00361   if (PSI_server) {         \
00362     struct PSI_thread* psi = PSI_server->new_thread(key, NULL, 0);\
00363     if (psi) {          \
00364       PSI_server->set_thread(psi);    \
00365     }           \
00366   }             \
00367 } while (0)
00368 
00369 /* This macro delist the current thread from performance schema */
00370 #  define pfs_delete_thread()       \
00371 do {                \
00372   if (PSI_server) {         \
00373     PSI_server->delete_current_thread();    \
00374   }             \
00375 } while (0)
00376 # endif /* UNIV_PFS_THREAD */
00377 
00378 #endif /* !UNIV_HOTBACKUP */
00379 
00381 enum {
00382   SRV_NOT_RAW = 0,  
00383   SRV_NEW_RAW,    
00385   SRV_OLD_RAW   
00386 };
00387 
00390 enum {
00391   SRV_UNIX_FSYNC = 1, 
00392   SRV_UNIX_O_DSYNC, 
00393   SRV_UNIX_LITTLESYNC,  
00396   SRV_UNIX_NOSYNC,  
00397   SRV_UNIX_O_DIRECT 
00399 };
00400 
00402 enum {
00403   SRV_WIN_IO_NORMAL = 1,  
00404   SRV_WIN_IO_UNBUFFERED 
00405 };
00406 
00412 enum {
00413   SRV_FORCE_IGNORE_CORRUPT = 1, 
00415   SRV_FORCE_NO_BACKGROUND = 2,  
00418   SRV_FORCE_NO_TRX_UNDO = 3,  
00420   SRV_FORCE_NO_IBUF_MERGE = 4,  
00423   SRV_FORCE_NO_UNDO_LOG_SCAN = 5, 
00427   SRV_FORCE_NO_LOG_REDO = 6 
00429 };
00430 
00431 #ifndef UNIV_HOTBACKUP
00432 
00433 enum srv_thread_type {
00434   SRV_COM = 1,  
00435   SRV_CONSOLE,  
00436   SRV_WORKER, 
00438 #if 0
00439   /* Utility threads */
00440   SRV_BUFFER, 
00441   SRV_RECOVERY, 
00442   SRV_INSERT, 
00443 #endif
00444   SRV_MASTER  
00446 };
00447 
00448 /*********************************************************************/
00451 UNIV_INTERN
00452 ulint
00453 srv_boot(void);
00454 /*==========*/
00455 /*********************************************************************/
00457 UNIV_INTERN
00458 void
00459 srv_init(void);
00460 /*==========*/
00461 /*********************************************************************/
00463 UNIV_INTERN
00464 void
00465 srv_free(void);
00466 /*==========*/
00467 /*********************************************************************/
00470 UNIV_INTERN
00471 void
00472 srv_general_init(void);
00473 /*==================*/
00474 /*********************************************************************/
00477 UNIV_INTERN
00478 ulint
00479 srv_get_n_threads(void);
00480 /*===================*/
00481 /*********************************************************************/
00485 enum srv_thread_type
00486 srv_get_thread_type(void);
00487 /*=====================*/
00488 /*********************************************************************/
00490 UNIV_INTERN
00491 void
00492 srv_set_io_thread_op_info(
00493 /*======================*/
00494   ulint   i,  
00495   const char* str); 
00497 /*********************************************************************/
00502 UNIV_INTERN
00503 ulint
00504 srv_release_threads(
00505 /*================*/
00506   enum srv_thread_type  type, 
00507   ulint     n); 
00508 /*********************************************************************/
00511 UNIV_INTERN
00512 os_thread_ret_t
00513 srv_master_thread(
00514 /*==============*/
00515   void* arg); 
00517 /*******************************************************************/
00519 UNIV_INTERN
00520 void
00521 srv_wake_purge_thread(void);
00522 /*=======================*/
00523 /*******************************************************************/
00529 UNIV_INTERN
00530 void
00531 srv_active_wake_master_thread(void);
00532 /*===============================*/
00533 /*******************************************************************/
00535 UNIV_INTERN
00536 void
00537 srv_wake_master_thread(void);
00538 /*========================*/
00539 /*******************************************************************/
00545 UNIV_INTERN
00546 void
00547 srv_wake_purge_thread_if_not_active(void);
00548 /*=====================================*/
00549 /*********************************************************************/
00552 UNIV_INTERN
00553 void
00554 srv_conc_enter_innodb(
00555 /*==================*/
00556   trx_t*  trx); 
00558 /*********************************************************************/
00561 UNIV_INTERN
00562 void
00563 srv_conc_force_enter_innodb(
00564 /*========================*/
00565   trx_t*  trx); 
00567 /*********************************************************************/
00570 UNIV_INTERN
00571 void
00572 srv_conc_force_exit_innodb(
00573 /*=======================*/
00574   trx_t*  trx); 
00576 /*********************************************************************/
00578 UNIV_INTERN
00579 void
00580 srv_conc_exit_innodb(
00581 /*=================*/
00582   trx_t*  trx); 
00584 /***************************************************************/
00590 UNIV_INTERN
00591 void
00592 srv_suspend_mysql_thread(
00593 /*=====================*/
00594   que_thr_t*  thr); 
00596 /********************************************************************/
00599 UNIV_INTERN
00600 void
00601 srv_release_mysql_thread_if_suspended(
00602 /*==================================*/
00603   que_thr_t*  thr); 
00605 /*********************************************************************/
00608 UNIV_INTERN
00609 os_thread_ret_t
00610 srv_lock_timeout_thread(
00611 /*====================*/
00612   void* arg); 
00614 /*********************************************************************/
00617 UNIV_INTERN
00618 os_thread_ret_t
00619 srv_monitor_thread(
00620 /*===============*/
00621   void* arg); 
00623 /*************************************************************************
00624 A thread which prints warnings about semaphore waits which have lasted
00625 too long. These can be used to track bugs which cause hangs.
00626 @return a dummy parameter */
00627 UNIV_INTERN
00628 os_thread_ret_t
00629 srv_error_monitor_thread(
00630 /*=====================*/
00631   void* arg); 
00633 /******************************************************************/
00637 UNIV_INTERN
00638 ibool
00639 srv_printf_innodb_monitor(
00640 /*======================*/
00641   FILE* file,   
00642   ibool nowait,   
00643   ulint*  trx_start,  
00645   ulint*  trx_end); 
00648 /******************************************************************/
00650 UNIV_INTERN
00651 void
00652 srv_export_innodb_status(void);
00653 /*==========================*/
00654 
00655 /******************************************************************/
00657 UNIV_INTERN
00658 void
00659 srv_inc_activity_count(void);
00660 /*=========================*/
00661 
00662 /*********************************************************************/
00665 UNIV_INTERN
00666 os_thread_ret_t
00667 srv_purge_thread(
00668 /*=============*/
00669   void* /*arg __attribute__((unused))*/); 
00672 /**********************************************************************/
00675 UNIV_INTERN
00676 void
00677 srv_que_task_enqueue_low(
00678 /*=====================*/
00679   que_thr_t*  thr); 
00681 /**********************************************************************/
00684 UNIV_INTERN
00685 ibool
00686 srv_is_any_background_thread_active(void);
00687 /*======================================*/
00688 
00690 struct export_var_struct{
00691   ulint innodb_data_pending_reads;  
00692   ulint innodb_data_pending_writes; 
00693   ulint innodb_data_pending_fsyncs; 
00694   ulint innodb_data_fsyncs;   
00695   ulint innodb_data_read;     
00696   ulint innodb_data_writes;   
00697   ulint innodb_data_written;    
00698   ulint innodb_data_reads;    
00699   ulint innodb_buffer_pool_pages_total; 
00700   ulint innodb_buffer_pool_pages_data;  
00701   ulint innodb_buffer_pool_pages_dirty; 
00702   ulint innodb_buffer_pool_pages_misc;  
00703   ulint innodb_buffer_pool_pages_free;  
00704 #ifdef UNIV_DEBUG
00705   ulint innodb_buffer_pool_pages_latched; 
00706 #endif /* UNIV_DEBUG */
00707   ulint innodb_buffer_pool_read_requests; 
00708   ulint innodb_buffer_pool_reads;   
00709   ulint innodb_buffer_pool_wait_free; 
00710   ulint innodb_buffer_pool_pages_flushed; 
00711   ulint innodb_buffer_pool_write_requests;
00712   ulint innodb_buffer_pool_read_ahead;  
00713   ulint innodb_buffer_pool_read_ahead_evicted;
00714   ulint innodb_dblwr_pages_written; 
00715   ulint innodb_dblwr_writes;    
00716   ibool innodb_have_atomic_builtins;  
00717   ulint innodb_log_waits;     
00718   ulint innodb_log_write_requests;  
00719   ulint innodb_log_writes;    
00720   ulint innodb_os_log_written;    
00721   ulint innodb_os_log_fsyncs;   
00722   ulint innodb_os_log_pending_writes; 
00723   ulint innodb_os_log_pending_fsyncs; 
00724   ulint innodb_page_size;     
00725   ulint innodb_pages_created;   
00726   ulint innodb_pages_read;    
00727   ulint innodb_pages_written;   
00728   ulint innodb_row_lock_waits;    
00729   ulint innodb_row_lock_current_waits;  
00730   ib_int64_t innodb_row_lock_time;  
00732   ulint innodb_row_lock_time_avg;   
00735   ulint innodb_row_lock_time_max;   
00737   ulint innodb_rows_read;     
00738   ulint innodb_rows_inserted;   
00739   ulint innodb_rows_updated;    
00740   ulint innodb_rows_deleted;    
00741   ulint innodb_truncated_status_writes; 
00742 };
00743 
00745 typedef struct srv_slot_struct  srv_slot_t;
00746 
00748 typedef srv_slot_t  srv_table_t;
00749 
00751 struct srv_sys_struct{
00752   srv_table_t*  threads;  
00753   UT_LIST_BASE_NODE_T(que_thr_t)
00754       tasks;    
00755 };
00756 
00757 extern ulint  srv_n_threads_active[];
00758 #else /* !UNIV_HOTBACKUP */
00759 # define srv_use_adaptive_hash_indexes    FALSE
00760 # define srv_use_checksums      TRUE
00761 # define srv_use_native_aio     FALSE
00762 # define srv_force_recovery     0UL
00763 # define srv_set_io_thread_op_info(t,info)  ((void) 0)
00764 # define srv_is_being_started     0
00765 # define srv_win_file_flush_method    SRV_WIN_IO_UNBUFFERED
00766 # define srv_unix_file_flush_method   SRV_UNIX_O_DSYNC
00767 # define srv_start_raw_disk_in_use    0
00768 # define srv_file_per_table     1
00769 #endif /* !UNIV_HOTBACKUP */
00770 
00771 
00772 #endif