mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
XtraDB 1.1.8-27.0 from Percona-Server-5.5.25a-rel27.1
This commit is contained in:
parent
6de579241e
commit
651ac12e88
11 changed files with 74 additions and 20 deletions
|
@ -3604,6 +3604,8 @@ btr_estimate_n_rows_in_range(
|
|||
n_rows = n_rows * 2;
|
||||
}
|
||||
|
||||
DBUG_EXECUTE_IF("bug14007649", return(n_rows););
|
||||
|
||||
/* Do not estimate the number of rows in the range
|
||||
to over 1 / 2 of the estimated rows in the whole
|
||||
table */
|
||||
|
|
|
@ -1846,8 +1846,6 @@ buf_flush_batch(
|
|||
}
|
||||
#endif /* UNIV_DEBUG */
|
||||
|
||||
srv_buf_pool_flushed += count;
|
||||
|
||||
return(count);
|
||||
}
|
||||
|
||||
|
@ -1874,13 +1872,6 @@ buf_flush_common(
|
|||
#endif /* UNIV_DEBUG */
|
||||
|
||||
srv_buf_pool_flushed += page_count;
|
||||
|
||||
if (flush_type == BUF_FLUSH_LRU) {
|
||||
/* We keep track of all flushes happening as part of LRU
|
||||
flush. When estimating the desired rate at which flush_list
|
||||
should be flushed we factor in this value. */
|
||||
buf_lru_flush_page_count += page_count;
|
||||
}
|
||||
}
|
||||
|
||||
/******************************************************************//**
|
||||
|
|
|
@ -179,7 +179,7 @@ dict_print(void)
|
|||
monitor printout */
|
||||
|
||||
mutex_enter(&kernel_mutex);
|
||||
srv_fatal_semaphore_wait_threshold += 7200; /* 2 hours */
|
||||
srv_fatal_semaphore_wait_threshold += SRV_SEMAPHORE_WAIT_EXTENSION;
|
||||
mutex_exit(&kernel_mutex);
|
||||
|
||||
heap = mem_heap_create(1000);
|
||||
|
@ -216,7 +216,7 @@ dict_print(void)
|
|||
|
||||
/* Restore the fatal semaphore wait timeout */
|
||||
mutex_enter(&kernel_mutex);
|
||||
srv_fatal_semaphore_wait_threshold -= 7200; /* 2 hours */
|
||||
srv_fatal_semaphore_wait_threshold -= SRV_SEMAPHORE_WAIT_EXTENSION;
|
||||
mutex_exit(&kernel_mutex);
|
||||
}
|
||||
|
||||
|
|
|
@ -1932,7 +1932,7 @@ fil_inc_pending_ops(
|
|||
|
||||
if (space == NULL) {
|
||||
fprintf(stderr,
|
||||
"InnoDB: Error: trying to do ibuf merge to a"
|
||||
"InnoDB: Error: trying to do an operation on a"
|
||||
" dropped tablespace %lu\n",
|
||||
(ulong) id);
|
||||
}
|
||||
|
@ -3440,6 +3440,7 @@ skip_info:
|
|||
for (offset = 0; offset < free_limit_bytes;
|
||||
offset += zip_size ? zip_size : UNIV_PAGE_SIZE) {
|
||||
ibool page_is_corrupt;
|
||||
ibool is_descr_page = FALSE;
|
||||
|
||||
success = os_file_read(file, page,
|
||||
(ulint)(offset & 0xFFFFFFFFUL),
|
||||
|
@ -3478,6 +3479,7 @@ skip_info:
|
|||
|
||||
/* store as descr page */
|
||||
memcpy(descr_page, page, (zip_size ? zip_size : UNIV_PAGE_SIZE));
|
||||
is_descr_page = TRUE;
|
||||
|
||||
} else if (descr_is_corrupt) {
|
||||
/* unknown state of the page */
|
||||
|
@ -3554,7 +3556,8 @@ skip_info:
|
|||
}
|
||||
}
|
||||
|
||||
if (fil_page_get_type(page) == FIL_PAGE_INDEX) {
|
||||
if (fil_page_get_type(page) ==
|
||||
FIL_PAGE_INDEX && !is_descr_page) {
|
||||
index_id_t tmp = mach_read_from_8(page + (PAGE_HEADER + PAGE_INDEX_ID));
|
||||
|
||||
for (i = 0; i < n_index; i++) {
|
||||
|
|
|
@ -4807,6 +4807,27 @@ table_opened:
|
|||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
UNIV_INTERN
|
||||
handler*
|
||||
ha_innobase::clone(
|
||||
/*===============*/
|
||||
const char* name, /*!< in: table name */
|
||||
MEM_ROOT* mem_root) /*!< in: memory context */
|
||||
{
|
||||
ha_innobase* new_handler;
|
||||
|
||||
DBUG_ENTER("ha_innobase::clone");
|
||||
|
||||
new_handler = static_cast<ha_innobase*>(handler::clone(name,
|
||||
mem_root));
|
||||
if (new_handler) {
|
||||
new_handler->prebuilt->select_lock_type
|
||||
= prebuilt->select_lock_type;
|
||||
}
|
||||
|
||||
DBUG_RETURN(new_handler);
|
||||
}
|
||||
|
||||
UNIV_INTERN
|
||||
uint
|
||||
ha_innobase::max_supported_key_part_length() const
|
||||
|
@ -9284,7 +9305,7 @@ ha_innobase::check(
|
|||
|
||||
/* Enlarge the fatal lock wait timeout during CHECK TABLE. */
|
||||
mutex_enter(&kernel_mutex);
|
||||
srv_fatal_semaphore_wait_threshold += 7200; /* 2 hours */
|
||||
srv_fatal_semaphore_wait_threshold += SRV_SEMAPHORE_WAIT_EXTENSION;
|
||||
mutex_exit(&kernel_mutex);
|
||||
|
||||
for (index = dict_table_get_first_index(prebuilt->table);
|
||||
|
@ -9425,7 +9446,7 @@ ha_innobase::check(
|
|||
|
||||
/* Restore the fatal lock wait timeout after CHECK TABLE. */
|
||||
mutex_enter(&kernel_mutex);
|
||||
srv_fatal_semaphore_wait_threshold -= 7200; /* 2 hours */
|
||||
srv_fatal_semaphore_wait_threshold -= SRV_SEMAPHORE_WAIT_EXTENSION;
|
||||
mutex_exit(&kernel_mutex);
|
||||
|
||||
prebuilt->trx->op_info = "";
|
||||
|
|
|
@ -134,6 +134,7 @@ class ha_innobase: public handler
|
|||
const key_map* keys_to_use_for_scanning();
|
||||
|
||||
int open(const char *name, int mode, uint test_if_locked);
|
||||
handler* clone(const char *name, MEM_ROOT *mem_root);
|
||||
int close(void);
|
||||
double scan_time();
|
||||
double read_time(uint index, uint ranges, ha_rows rows);
|
||||
|
|
|
@ -1941,6 +1941,8 @@ i_s_sys_tables_fill_table(
|
|||
|
||||
DBUG_ENTER("i_s_sys_tables_fill_table");
|
||||
|
||||
RETURN_IF_INNODB_NOT_STARTED(tables->schema_table_name);
|
||||
|
||||
/* deny access to non-superusers */
|
||||
if (check_global_access(thd, PROCESS_ACL)) {
|
||||
|
||||
|
@ -2248,6 +2250,8 @@ i_s_sys_tables_fill_table_stats(
|
|||
|
||||
DBUG_ENTER("i_s_sys_tables_fill_table_stats");
|
||||
|
||||
RETURN_IF_INNODB_NOT_STARTED(tables->schema_table_name);
|
||||
|
||||
/* deny access to non-superusers */
|
||||
if (check_global_access(thd, PROCESS_ACL)) {
|
||||
|
||||
|
@ -2496,6 +2500,8 @@ i_s_sys_indexes_fill_table(
|
|||
|
||||
DBUG_ENTER("i_s_sys_indexes_fill_table");
|
||||
|
||||
RETURN_IF_INNODB_NOT_STARTED(tables->schema_table_name);
|
||||
|
||||
/* deny access to non-superusers */
|
||||
if (check_global_access(thd, PROCESS_ACL)) {
|
||||
|
||||
|
@ -2737,6 +2743,8 @@ i_s_sys_columns_fill_table(
|
|||
|
||||
DBUG_ENTER("i_s_sys_columns_fill_table");
|
||||
|
||||
RETURN_IF_INNODB_NOT_STARTED(tables->schema_table_name);
|
||||
|
||||
/* deny access to non-superusers */
|
||||
if (check_global_access(thd, PROCESS_ACL)) {
|
||||
|
||||
|
@ -2943,6 +2951,8 @@ i_s_sys_fields_fill_table(
|
|||
|
||||
DBUG_ENTER("i_s_sys_fields_fill_table");
|
||||
|
||||
RETURN_IF_INNODB_NOT_STARTED(tables->schema_table_name);
|
||||
|
||||
/* deny access to non-superusers */
|
||||
if (check_global_access(thd, PROCESS_ACL)) {
|
||||
|
||||
|
@ -3176,6 +3186,8 @@ i_s_sys_foreign_fill_table(
|
|||
|
||||
DBUG_ENTER("i_s_sys_foreign_fill_table");
|
||||
|
||||
RETURN_IF_INNODB_NOT_STARTED(tables->schema_table_name);
|
||||
|
||||
/* deny access to non-superusers */
|
||||
if (check_global_access(thd, PROCESS_ACL)) {
|
||||
|
||||
|
@ -3391,6 +3403,8 @@ i_s_sys_foreign_cols_fill_table(
|
|||
|
||||
DBUG_ENTER("i_s_sys_foreign_cols_fill_table");
|
||||
|
||||
RETURN_IF_INNODB_NOT_STARTED(tables->schema_table_name);
|
||||
|
||||
/* deny access to non-superusers */
|
||||
if (check_global_access(thd, PROCESS_ACL)) {
|
||||
DBUG_RETURN(0);
|
||||
|
@ -3610,6 +3624,8 @@ i_s_sys_stats_fill_table(
|
|||
|
||||
DBUG_ENTER("i_s_sys_stats_fill_table");
|
||||
|
||||
RETURN_IF_INNODB_NOT_STARTED(tables->schema_table_name);
|
||||
|
||||
/* deny access to non-superusers */
|
||||
if (check_global_access(thd, PROCESS_ACL)) {
|
||||
DBUG_RETURN(0);
|
||||
|
@ -4030,6 +4046,8 @@ i_s_innodb_table_stats_fill(
|
|||
|
||||
DBUG_ENTER("i_s_innodb_table_stats_fill");
|
||||
|
||||
RETURN_IF_INNODB_NOT_STARTED(tables->schema_table_name);
|
||||
|
||||
/* deny access to non-superusers */
|
||||
if (check_global_access(thd, PROCESS_ACL)) {
|
||||
DBUG_RETURN(0);
|
||||
|
@ -4093,6 +4111,8 @@ i_s_innodb_index_stats_fill(
|
|||
|
||||
DBUG_ENTER("i_s_innodb_index_stats_fill");
|
||||
|
||||
RETURN_IF_INNODB_NOT_STARTED(tables->schema_table_name);
|
||||
|
||||
/* deny access to non-superusers */
|
||||
if (check_global_access(thd, PROCESS_ACL)) {
|
||||
DBUG_RETURN(0);
|
||||
|
@ -4285,6 +4305,8 @@ i_s_innodb_admin_command_fill(
|
|||
|
||||
DBUG_ENTER("i_s_innodb_admin_command_fill");
|
||||
|
||||
RETURN_IF_INNODB_NOT_STARTED(tables->schema_table_name);
|
||||
|
||||
/* deny access to non-superusers */
|
||||
if (check_global_access(thd, PROCESS_ACL)) {
|
||||
DBUG_RETURN(0);
|
||||
|
|
|
@ -298,6 +298,7 @@ extern ibool srv_print_latch_waits;
|
|||
|
||||
extern ulint srv_activity_count;
|
||||
extern ulint srv_fatal_semaphore_wait_threshold;
|
||||
#define SRV_SEMAPHORE_WAIT_EXTENSION 7200
|
||||
extern ulint srv_dml_needed_delay;
|
||||
extern lint srv_kill_idle_transaction;
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ Created 1/20/1994 Heikki Tuuri
|
|||
#define INNODB_VERSION_BUGFIX 8
|
||||
|
||||
#ifndef PERCONA_INNODB_VERSION
|
||||
#define PERCONA_INNODB_VERSION 20.1
|
||||
#define PERCONA_INNODB_VERSION 27.0
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -1507,10 +1507,18 @@ innobase_start_or_create_for_mysql(void)
|
|||
}
|
||||
# endif /* __WIN__ */
|
||||
|
||||
os_aio_init(io_limit,
|
||||
srv_n_read_io_threads,
|
||||
srv_n_write_io_threads,
|
||||
SRV_MAX_N_PENDING_SYNC_IOS);
|
||||
if (!os_aio_init(io_limit,
|
||||
srv_n_read_io_threads,
|
||||
srv_n_write_io_threads,
|
||||
SRV_MAX_N_PENDING_SYNC_IOS)) {
|
||||
|
||||
ut_print_timestamp(stderr);
|
||||
fprintf(stderr,
|
||||
" InnoDB: Fatal error: cannot initialize AIO"
|
||||
" sub-system\n");
|
||||
|
||||
return(DB_ERROR);
|
||||
}
|
||||
|
||||
fil_init(srv_file_per_table ? 50000 : 5000,
|
||||
srv_max_n_open_files);
|
||||
|
|
|
@ -926,6 +926,11 @@ sync_array_print_long_waits(
|
|||
ibool fatal = FALSE;
|
||||
double longest_diff = 0;
|
||||
|
||||
/* For huge tables, skip the check during CHECK TABLE etc... */
|
||||
if (fatal_timeout > SRV_SEMAPHORE_WAIT_EXTENSION) {
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
#ifdef UNIV_DEBUG_VALGRIND
|
||||
/* Increase the timeouts if running under valgrind because it executes
|
||||
extremely slowly. UNIV_DEBUG_VALGRIND does not necessary mean that
|
||||
|
|
Loading…
Reference in a new issue