mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
srv0srv.h One can now specify innodb_unix_file_flush_method in my.cnf
srv0srv.c One can now specify innodb_unix_file_flush_method in my.cnf srv0start.c One can now specify innodb_unix_file_flush_method in my.cnf ha_innobase.cc One can now specify innodb_unix_file_flush_method in my.cnf ha_innobase.h One can now specify innodb_unix_file_flush_method in my.cnf mysqld.cc One can now specify innodb_unix_file_flush_method in my.cnf sql/ha_innobase.cc: One can now specify innodb_unix_file_flush_method in my.cnf sql/ha_innobase.h: One can now specify innodb_unix_file_flush_method in my.cnf sql/mysqld.cc: One can now specify innodb_unix_file_flush_method in my.cnf innobase/srv/srv0srv.c: One can now specify innodb_unix_file_flush_method in my.cnf innobase/srv/srv0start.c: One can now specify innodb_unix_file_flush_method in my.cnf innobase/include/srv0srv.h: One can now specify innodb_unix_file_flush_method in my.cnf BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
This commit is contained in:
@ -1,3 +1,4 @@
|
|||||||
jani@janikt.pp.saunalahti.fi
|
jani@janikt.pp.saunalahti.fi
|
||||||
monty@tik.mysql.fi
|
monty@tik.mysql.fi
|
||||||
monty@donna.mysql.fi
|
monty@donna.mysql.fi
|
||||||
|
heikki@donna.mysql.fi
|
||||||
|
@ -48,6 +48,9 @@ extern dulint srv_archive_recovery_limit_lsn;
|
|||||||
|
|
||||||
extern ulint srv_lock_wait_timeout;
|
extern ulint srv_lock_wait_timeout;
|
||||||
|
|
||||||
|
extern char* srv_unix_file_flush_method_str;
|
||||||
|
extern ulint srv_unix_file_flush_method;
|
||||||
|
|
||||||
extern ibool srv_set_thread_priorities;
|
extern ibool srv_set_thread_priorities;
|
||||||
extern int srv_query_thread_priority;
|
extern int srv_query_thread_priority;
|
||||||
|
|
||||||
@ -100,6 +103,13 @@ typedef struct srv_sys_struct srv_sys_t;
|
|||||||
/* The server system */
|
/* The server system */
|
||||||
extern srv_sys_t* srv_sys;
|
extern srv_sys_t* srv_sys;
|
||||||
|
|
||||||
|
/* Alternatives for fiel flush option in Unix; see the InnoDB manual about
|
||||||
|
what these mean */
|
||||||
|
#define SRV_UNIX_FDATASYNC 1
|
||||||
|
#define SRV_UNIX_O_DSYNC 2
|
||||||
|
#define SRV_UNIX_LITTLESYNC 3
|
||||||
|
#define SRV_UNIX_NOSYNC 4
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Boots Innobase server. */
|
Boots Innobase server. */
|
||||||
|
|
||||||
|
@ -88,6 +88,9 @@ dulint srv_archive_recovery_limit_lsn;
|
|||||||
|
|
||||||
ulint srv_lock_wait_timeout = 1024 * 1024 * 1024;
|
ulint srv_lock_wait_timeout = 1024 * 1024 * 1024;
|
||||||
|
|
||||||
|
char* srv_unix_file_flush_method_str = NULL;
|
||||||
|
ulint srv_unix_file_flush_method = 0;
|
||||||
|
|
||||||
ibool srv_set_thread_priorities = TRUE;
|
ibool srv_set_thread_priorities = TRUE;
|
||||||
int srv_query_thread_priority = 0;
|
int srv_query_thread_priority = 0;
|
||||||
/*-------------------------------------------*/
|
/*-------------------------------------------*/
|
||||||
|
@ -532,6 +532,24 @@ innobase_start_or_create_for_mysql(void)
|
|||||||
|
|
||||||
srv_is_being_started = TRUE;
|
srv_is_being_started = TRUE;
|
||||||
|
|
||||||
|
if (0 == ut_strcmp(srv_unix_file_flush_method_str, "fdatasync")) {
|
||||||
|
srv_unix_file_flush_method = SRV_UNIX_FDATASYNC;
|
||||||
|
} else if (0 == ut_strcmp(srv_unix_file_flush_method_str, "O_DSYNC")) {
|
||||||
|
srv_unix_file_flush_method = SRV_UNIX_O_DSYNC;
|
||||||
|
} else if (0 == ut_strcmp(srv_unix_file_flush_method_str,
|
||||||
|
"littlesync")) {
|
||||||
|
srv_unix_file_flush_method = SRV_UNIX_LITTLESYNC;
|
||||||
|
} else if (0 == ut_strcmp(srv_unix_file_flush_method_str, "nosync")) {
|
||||||
|
srv_unix_file_flush_method = SRV_UNIX_NOSYNC;
|
||||||
|
} else {
|
||||||
|
fprintf(stderr,
|
||||||
|
"InnoDB: Unrecognized value for innodb_unix_file_flush_method\n");
|
||||||
|
|
||||||
|
return(DB_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("InnoDB file flush method %lu\n", srv_unix_file_flush_method);
|
||||||
|
|
||||||
os_aio_use_native_aio = srv_use_native_aio;
|
os_aio_use_native_aio = srv_use_native_aio;
|
||||||
|
|
||||||
err = srv_boot();
|
err = srv_boot();
|
||||||
|
@ -83,6 +83,7 @@ long innobase_mirrored_log_groups, innobase_log_files_in_group,
|
|||||||
|
|
||||||
char *innobase_data_home_dir, *innobase_data_file_path;
|
char *innobase_data_home_dir, *innobase_data_file_path;
|
||||||
char *innobase_log_group_home_dir, *innobase_log_arch_dir;
|
char *innobase_log_group_home_dir, *innobase_log_arch_dir;
|
||||||
|
char *innobase_unix_file_flush_method;
|
||||||
bool innobase_flush_log_at_trx_commit, innobase_log_archive,
|
bool innobase_flush_log_at_trx_commit, innobase_log_archive,
|
||||||
innobase_use_native_aio;
|
innobase_use_native_aio;
|
||||||
|
|
||||||
@ -474,6 +475,10 @@ innobase_init(void)
|
|||||||
DBUG_RETURN(TRUE);
|
DBUG_RETURN(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
srv_unix_file_flush_method_str = (innobase_unix_file_flush_method ?
|
||||||
|
innobase_unix_file_flush_method :
|
||||||
|
(char*)"fdatasync");
|
||||||
|
|
||||||
srv_n_log_groups = (ulint) innobase_mirrored_log_groups;
|
srv_n_log_groups = (ulint) innobase_mirrored_log_groups;
|
||||||
srv_n_log_files = (ulint) innobase_log_files_in_group;
|
srv_n_log_files = (ulint) innobase_log_files_in_group;
|
||||||
srv_log_file_size = (ulint) innobase_log_file_size;
|
srv_log_file_size = (ulint) innobase_log_file_size;
|
||||||
|
@ -161,6 +161,7 @@ extern long innobase_buffer_pool_size, innobase_additional_mem_pool_size;
|
|||||||
extern long innobase_file_io_threads, innobase_lock_wait_timeout;
|
extern long innobase_file_io_threads, innobase_lock_wait_timeout;
|
||||||
extern char *innobase_data_home_dir, *innobase_data_file_path;
|
extern char *innobase_data_home_dir, *innobase_data_file_path;
|
||||||
extern char *innobase_log_group_home_dir, *innobase_log_arch_dir;
|
extern char *innobase_log_group_home_dir, *innobase_log_arch_dir;
|
||||||
|
extern char *innobase_unix_file_flush_method;
|
||||||
extern bool innobase_flush_log_at_trx_commit, innobase_log_archive,
|
extern bool innobase_flush_log_at_trx_commit, innobase_log_archive,
|
||||||
innobase_use_native_aio;
|
innobase_use_native_aio;
|
||||||
|
|
||||||
|
@ -2456,6 +2456,7 @@ enum options {
|
|||||||
OPT_INNODB_LOG_ARCH_DIR,
|
OPT_INNODB_LOG_ARCH_DIR,
|
||||||
OPT_INNODB_LOG_ARCHIVE,
|
OPT_INNODB_LOG_ARCHIVE,
|
||||||
OPT_INNODB_FLUSH_LOG_AT_TRX_COMMIT,
|
OPT_INNODB_FLUSH_LOG_AT_TRX_COMMIT,
|
||||||
|
OPT_INNODB_UNIX_FILE_FLUSH_METHOD,
|
||||||
OPT_SAFE_SHOW_DB,
|
OPT_SAFE_SHOW_DB,
|
||||||
OPT_GEMINI_SKIP, OPT_INNODB_SKIP,
|
OPT_GEMINI_SKIP, OPT_INNODB_SKIP,
|
||||||
OPT_TEMP_POOL, OPT_TX_ISOLATION,
|
OPT_TEMP_POOL, OPT_TX_ISOLATION,
|
||||||
@ -2516,6 +2517,8 @@ static struct option long_options[] = {
|
|||||||
OPT_INNODB_LOG_ARCHIVE},
|
OPT_INNODB_LOG_ARCHIVE},
|
||||||
{"innodb_flush_log_at_trx_commit", optional_argument, 0,
|
{"innodb_flush_log_at_trx_commit", optional_argument, 0,
|
||||||
OPT_INNODB_FLUSH_LOG_AT_TRX_COMMIT},
|
OPT_INNODB_FLUSH_LOG_AT_TRX_COMMIT},
|
||||||
|
{"innodb_unix_file_flush_method", required_argument, 0,
|
||||||
|
OPT_INNODB_UNIX_FILE_FLUSH_METHOD},
|
||||||
#endif
|
#endif
|
||||||
{"help", no_argument, 0, '?'},
|
{"help", no_argument, 0, '?'},
|
||||||
{"init-file", required_argument, 0, (int) OPT_INIT_FILE},
|
{"init-file", required_argument, 0, (int) OPT_INIT_FILE},
|
||||||
@ -2793,6 +2796,7 @@ struct show_var_st init_vars[]= {
|
|||||||
{"innodb_log_arch_dir", (char*) &innobase_log_arch_dir, SHOW_CHAR_PTR},
|
{"innodb_log_arch_dir", (char*) &innobase_log_arch_dir, SHOW_CHAR_PTR},
|
||||||
{"innodb_log_archive", (char*) &innobase_log_archive, SHOW_MY_BOOL},
|
{"innodb_log_archive", (char*) &innobase_log_archive, SHOW_MY_BOOL},
|
||||||
{"innodb_log_group_home_dir", (char*) &innobase_log_group_home_dir, SHOW_CHAR_PTR},
|
{"innodb_log_group_home_dir", (char*) &innobase_log_group_home_dir, SHOW_CHAR_PTR},
|
||||||
|
{"innodb_unix_file_flush_method", (char*) &innobase_unix_file_flush_method, SHOW_CHAR_PTR},
|
||||||
#endif
|
#endif
|
||||||
{"interactive_timeout", (char*) &net_interactive_timeout, SHOW_LONG},
|
{"interactive_timeout", (char*) &net_interactive_timeout, SHOW_LONG},
|
||||||
{"join_buffer_size", (char*) &join_buff_size, SHOW_LONG},
|
{"join_buffer_size", (char*) &join_buff_size, SHOW_LONG},
|
||||||
@ -3653,6 +3657,9 @@ static void get_options(int argc,char **argv)
|
|||||||
case OPT_INNODB_FLUSH_LOG_AT_TRX_COMMIT:
|
case OPT_INNODB_FLUSH_LOG_AT_TRX_COMMIT:
|
||||||
innobase_flush_log_at_trx_commit= optarg ? test(atoi(optarg)) : 1;
|
innobase_flush_log_at_trx_commit= optarg ? test(atoi(optarg)) : 1;
|
||||||
break;
|
break;
|
||||||
|
case OPT_INNODB_UNIX_FILE_FLUSH_METHOD:
|
||||||
|
innobase_unix_file_flush_method=optarg;
|
||||||
|
break;
|
||||||
#endif /* HAVE_INNOBASE_DB */
|
#endif /* HAVE_INNOBASE_DB */
|
||||||
case OPT_MYISAM_RECOVER:
|
case OPT_MYISAM_RECOVER:
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user