3246 Alfranio Correia 2010-12-14
WL#5599
Post-push fix.
modified:
mysql-test/r/mysqld--help-win.result
mysql-test/suite/rpl/t/disabled.def
mysql-test/suite/sys_vars/r/mts_checkpoint_period_basic.result
sql/rpl_info.cc
sql/rpl_info.h
sql/rpl_rli.cc
sql/rpl_slave.cc
3245 Alfranio Correia 2010-12-13
WL#5599
Improved performance as described in BUG#58897.
added:
mysql-test/suite/sys_vars/r/mts_checkpoint_period_basic.result
mysql-test/suite/sys_vars/t/mts_checkpoint_period_basic.test
modified:
mysql-test/extra/rpl_tests/rpl_crash_safe.inc
mysql-test/r/mysqld--help-notwin.result
mysql-test/suite/rpl/r/rpl_mixed_crash_safe.result
mysql-test/suite/rpl/r/rpl_row_crash_safe.result
mysql-test/suite/rpl/r/rpl_stm_crash_safe.result
mysql-test/suite/rpl/t/disabled.def
mysql-test/suite/rpl/t/rpl_mixed_crash_safe-slave.opt
mysql-test/suite/rpl/t/rpl_row_crash_safe-slave.opt
mysql-test/suite/rpl/t/rpl_stm_crash_safe-slave.opt
mysql-test/suite/sys_vars/r/all_vars.result
scripts/mysql_install_db.pl.in
scripts/mysql_install_db.sh
sql/lock.cc
sql/mysqld.cc
sql/mysqld.h
sql/rpl_info_factory.cc
sql/rpl_info_table.cc
sql/rpl_info_table.h
sql/rpl_info_table_access.cc
sql/rpl_slave.cc
sql/sql_parse.cc
=== modified file 'mysql-test/r/mysqld--help-win.result'
--- a/mysql-test/r/mysqld--help-win.result 2010-12-13 14:52:50 +0000
+++ b/mysql-test/r/mysqld--help-win.result 2010-12-14 12:51:30 +0000
@@ -270,6 +270,8 @@ The following options may be given as th
If set to 1 table names are stored in lowercase on disk
and table names will be case-insensitive. Should be set
to 2 if you are using a case insensitive file system
+ --master-info-engine=name
+ The storage engine for the master info repository
--master-info-file=name
The location and name of the file that remembers the
master and where the I/O replication thread is in the
@@ -529,6 +531,8 @@ The following options may be given as th
--relay-log=name The location and name to use for relay logs
--relay-log-index=name
File that holds the names for relay log files.
+ --relay-log-info-engine=name
+ The storage engine for the relay info repository
--relay-log-info-file=name
The location and name of the file that remembers where
the SQL replication thread is in the relay logs
@@ -776,6 +780,8 @@ The following options may be given as th
-V, --version Output version information and exit.
--wait-timeout=# The number of seconds the server waits for activity on a
connection before closing it
+ --worker-info-engine=name
+ The storage engine for the worker info repository
--worker-info-repository=name
Defines the type of the repository for the worker
information.
@@ -866,6 +872,7 @@ log-warnings 1
long-query-time 10
low-priority-updates FALSE
lower-case-table-names 1
+master-info-engine (No default value)
master-info-file master.info
master-info-repository FILE
master-retry-count 86400
@@ -957,6 +964,7 @@ read-only FALSE
read-rnd-buffer-size 262144
relay-log (No default value)
relay-log-index (No default value)
+relay-log-info-engine (No default value)
relay-log-info-file relay-log.info
relay-log-info-repository FILE
relay-log-purge TRUE
@@ -1017,6 +1025,7 @@ transaction-prealloc-size 4096
updatable-views-with-limit YES
verbose TRUE
wait-timeout 28800
+worker-info-engine (No default value)
worker-info-repository FILE
To see what values a running MySQL server is using, type
=== modified file 'mysql-test/suite/rpl/t/disabled.def'
--- a/mysql-test/suite/rpl/t/disabled.def 2010-12-13 21:16:31 +0000
+++ b/mysql-test/suite/rpl/t/disabled.def 2010-12-14 12:51:30 +0000
@@ -16,3 +16,4 @@ rpl_row_event_max_size : Bug#55675 20
rpl_delayed_slave : Bug#57514 2010-11-09 andrei rpl_delayed_slave fails sporadically in pb
rpl_log_pos : BUG#55675 2010-09-10 alfranio rpl.rpl_log_pos fails sporadically with error binlog truncated in the middle
rpl_trigger : BUG#58258 2010-11-17 VasilDimov Valgrind: possibly lost from ib_bh_create()
+rpl_parallel_conf_limits : wl#5599 9-12-2010 Andrei Waiting for the recovery wl
=== modified file 'mysql-test/suite/sys_vars/r/mts_checkpoint_period_basic.result'
--- a/mysql-test/suite/sys_vars/r/mts_checkpoint_period_basic.result 2010-12-13 21:16:31 +0000
+++ b/mysql-test/suite/sys_vars/r/mts_checkpoint_period_basic.result 2010-12-14 12:51:30 +0000
@@ -1,24 +1,24 @@
SET @start_global_value = @@global.mts_checkpoint_period;
SELECT @start_global_value;
@start_global_value
-0
+300
select @@global.mts_checkpoint_period;
@@global.mts_checkpoint_period
-0
+300
select @@session.mts_checkpoint_period;
ERROR HY000: Variable 'mts_checkpoint_period' is a GLOBAL variable
show global variables like 'mts_checkpoint_period';
Variable_name Value
-mts_checkpoint_period 0
+mts_checkpoint_period 300
show session variables like 'mts_checkpoint_period';
Variable_name Value
-mts_checkpoint_period 0
+mts_checkpoint_period 300
select * from information_schema.global_variables where variable_name='mts_checkpoint_period';
VARIABLE_NAME VARIABLE_VALUE
-MTS_CHECKPOINT_PERIOD 0
+MTS_CHECKPOINT_PERIOD 300
select * from information_schema.session_variables where variable_name='mts_checkpoint_period';
VARIABLE_NAME VARIABLE_VALUE
-MTS_CHECKPOINT_PERIOD 0
+MTS_CHECKPOINT_PERIOD 300
set global mts_checkpoint_period=1;
select @@global.mts_checkpoint_period;
@@global.mts_checkpoint_period
@@ -44,4 +44,4 @@ select @@global.mts_checkpoint_period;
SET @@global.mts_checkpoint_period = @start_global_value;
SELECT @@global.mts_checkpoint_period;
@@global.mts_checkpoint_period
-0
+300
=== modified file 'sql/rpl_info.cc'
--- a/sql/rpl_info.cc 2010-12-13 15:57:01 +0000
+++ b/sql/rpl_info.cc 2010-12-14 12:51:30 +0000
@@ -42,18 +42,14 @@ void Rpl_info::set_rpl_info_handler(Rpl_
}
Rpl_info_coordinator::Rpl_info_coordinator(const char* type, const char* psf)
- : Rpl_info(type)
+ : Rpl_info(type), mutex_info(0), cond_info(0), key_mutex_info(0),
+ key_cond_info(0)
{
register_mutexes(psf);
}
bool Rpl_info_coordinator::register_mutexes(const char* description)
{
- PSI_mutex_info *mutex_info= NULL;
- PSI_cond_info *cond_info= NULL;
- PSI_mutex_key *key_mutex_info= NULL;
- PSI_cond_key *key_cond_info= NULL;
-
const int NUMBER_MUTEX_INFO= 2;
const int RUN_LOCK_IDX= 0;
const int DATA_LOCK_IDX= 1;
@@ -118,8 +114,8 @@ err:
if (mutex_info)
delete []mutex_info;
- if (mutex_info)
- delete []mutex_info;
+ if (cond_info)
+ delete []cond_info;
return (TRUE);
}
@@ -135,6 +131,18 @@ Rpl_info_coordinator::~Rpl_info_coordina
mysql_cond_destroy(&data_cond);
mysql_cond_destroy(&start_cond);
mysql_cond_destroy(&stop_cond);
+
+ if (key_mutex_info)
+ delete []key_mutex_info;
+
+ if (key_cond_info)
+ delete []key_cond_info;
+
+ if (mutex_info)
+ delete []mutex_info;
+
+ if (cond_info)
+ delete []cond_info;
}
DBUG_VOID_RETURN;
=== modified file 'sql/rpl_info.h'
--- a/sql/rpl_info.h 2010-12-08 01:30:32 +0000
+++ b/sql/rpl_info.h 2010-12-14 12:51:30 +0000
@@ -133,6 +133,11 @@ protected:
bool register_mutexes(const char* description);
private:
+ PSI_mutex_info *mutex_info;
+ PSI_cond_info *cond_info;
+ PSI_mutex_key *key_mutex_info;
+ PSI_cond_key *key_cond_info;
+
Rpl_info_coordinator& operator=(const Rpl_info_coordinator& info);
Rpl_info_coordinator(const Rpl_info_coordinator& info);
};
=== modified file 'sql/rpl_rli.cc'
--- a/sql/rpl_rli.cc 2010-12-13 16:53:32 +0000
+++ b/sql/rpl_rli.cc 2010-12-14 12:51:30 +0000
@@ -64,7 +64,7 @@ Relay_log_info::Relay_log_info(bool is_s
cur_log_old_open_count(0), group_relay_log_pos(0), event_relay_log_pos(0),
group_master_log_pos(0), log_space_total(0), ignore_log_space_limit(0),
last_master_timestamp(0), slave_skip_counter(0),
- abort_pos_wait(0), until_condition(UNTIL_NONE),
+ abort_pos_wait(0), slave_exec_mode(0), until_condition(UNTIL_NONE),
until_log_pos(0), retried_trans(0),
tables_to_lock(0), tables_to_lock_count(0),
rows_query_ev(NULL), last_event_start_time(0),
=== modified file 'sql/rpl_slave.cc'
--- a/sql/rpl_slave.cc 2010-12-13 21:16:31 +0000
+++ b/sql/rpl_slave.cc 2010-12-14 12:51:30 +0000
@@ -2794,8 +2794,6 @@ int apply_event_and_update_pos(Log_event
if (!ev->when)
ev->when= my_time(0);
ev->thd = thd; // because up to this point, ev->thd == 0
- if (!rli->is_in_group() && rli->slave_exec_mode != slave_exec_mode_options)
- rli->slave_exec_mode= slave_exec_mode_options;
int reason= ev->shall_skip(rli);
if (reason == Log_event::EVENT_SKIP_COUNT)
@@ -3898,72 +3896,15 @@ bool mts_recovery_routine(Relay_log_info
"%s from pos %lu, maxsize %lu.", log_name,
(ulong) job.group_relay_log_pos, (ulong) s.st_size);
- bool found= FALSE;
- int res= 0;
while ((ev= Log_event::read_log_event(&log, 0, &fdle,
opt_master_verify_checksum)))
{
DBUG_ASSERT(ev->is_valid());
- String buffer;
- const char *db= ev->get_db();
-
- if (db != NULL)
- {
- buffer.set_int(strlen(db), FALSE, &my_charset_bin);
- buffer.append(db);
- found= job.db_ids->search_id(buffer.c_ptr_safe());
- }
-
- sql_print_information("Recovery relay log info. Event %s on db %s "
- "sets cursor to pos %lu and was handled by worker(%d).",
- ev->get_type_str(), db, (ulong) my_b_tell(&log),
- found);
- if (!found)
- {
- delete ev;
- ev= NULL;
- break;
- }
-
- res= ev->apply_event(rli);
delete ev;
ev= NULL;
-
- if (res)
- goto end;
- }
- if (!found)
- {
- sql_print_information("Before updating RLI "
- "group_relay_log_name %s, "
- "group_relay_log_pos %lu, "
- "group_master_log_name %s, "
- "group_master_lo_pos %lu.",
- rli->get_group_relay_log_name(),
- (ulong) rli->get_group_relay_log_pos(),
- rli->get_group_master_log_name(),
- (ulong) rli->get_group_master_log_pos());
-
- rli->set_event_relay_log_pos(job.group_relay_log_pos);
- rli->set_event_relay_log_name(job.group_relay_log_name);
- rli->set_group_relay_log_pos(job.group_relay_log_pos);
- rli->set_group_relay_log_name(job.group_relay_log_name);
- rli->set_group_master_log_pos(job.group_master_log_pos);
- rli->set_group_master_log_name(job.group_master_log_name);
-
- sql_print_information("After updating RLI "
- "group_relay_log_name %s, "
- "group_relay_log_pos %lu, "
- "group_master_log_name %s, "
- "group_master_lo_pos %lu.",
- rli->get_group_relay_log_name(),
- (ulong) rli->get_group_relay_log_pos(),
- rli->get_group_master_log_name(),
- (ulong) rli->get_group_master_log_pos());
}
}
- error= init_recovery(rli->mi, &errmsg);
end:
if (desc)
@@ -4397,8 +4338,8 @@ pthread_handler_t handle_slave_sql(void
TODO: Alfranio, to settle invocation point. It's moved to possibly
please an assert in the following block
*/
- if (rli->is_parallel_exec() && mts_recovery_routine(rli))
- goto err;
+ //if (rli->is_parallel_exec() && mts_recovery_routine(rli))
+ // goto err;
#ifndef DBUG_OFF
{
Attachment: [text/bzr-bundle] bzr/alfranio.correia@oracle.com-20101214125130-lw14vs6tcnzj9gdi.bundle
| Thread |
|---|
| • bzr push into mysql-next-mr-wl5569 branch (alfranio.correia:3245 to 3246)WL#5599 | Alfranio Correia | 14 Dec |