summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <guilhem@mysql.com>2003-08-25 16:33:20 +0200
committerunknown <guilhem@mysql.com>2003-08-25 16:33:20 +0200
commit2dacea35269cbc8a00d2d4ffa9db132b9e7ff8ed (patch)
tree77b44b66324a5fb82e94baa9ef4b2798ce48a989
parente5b3d521f57d020139af268d157d941a7e5ec310 (diff)
parent3fdc38d4bba14827ef13f70235622450e6e10418 (diff)
downloadmariadb-git-2dacea35269cbc8a00d2d4ffa9db132b9e7ff8ed.tar.gz
Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0
-rw-r--r--sql/slave.cc13
-rw-r--r--sql/slave.h24
2 files changed, 30 insertions, 7 deletions
diff --git a/sql/slave.cc b/sql/slave.cc
index 07c9bb7bd8a..1bc8dfc5b78 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -1991,13 +1991,12 @@ static int init_slave_thread(THD* thd, SLAVE_THD_TYPE thd_type)
thd->priv_user = 0;
thd->slave_thread = 1;
thd->options = ((opt_log_slave_updates) ? OPTION_BIN_LOG:0) |
- OPTION_AUTO_IS_NULL |
- /*
- It's nonsense to constraint the slave threads with max_join_size; if a
- query succeeded on master, we HAVE to execute it.
- */
- OPTION_BIG_SELECTS ;
-
+ OPTION_AUTO_IS_NULL;
+ /*
+ It's nonsense to constraint the slave threads with max_join_size; if a
+ query succeeded on master, we HAVE to execute it.
+ */
+ thd->variables.max_join_size= HA_POS_ERROR;
thd->client_capabilities = CLIENT_LOCAL_FILES;
thd->real_id=pthread_self();
pthread_mutex_lock(&LOCK_thread_count);
diff --git a/sql/slave.h b/sql/slave.h
index 19411aba497..67bf009763b 100644
--- a/sql/slave.h
+++ b/sql/slave.h
@@ -24,6 +24,30 @@
having to re-read the master updates.
*/
+/*
+ MUTEXES in replication:
+
+ LOCK_active_mi: this is meant for multimaster, when we can switch from a
+ master to another. It protects active_mi. We don't care of it for the moment,
+ as active_mi never moves (it's created at startup and deleted at shutdown, and
+ not changed: it always points to the same MASTER_INFO struct), because we
+ don't have multimaster. So for the moment, mi does not move, and mi->rli does
+ not either.
+
+ In MASTER_INFO: run_lock, data_lock
+ run_lock protects all information about the run state: slave_running, and the
+ existence of the I/O thread (to stop/start it, you need this mutex).
+ data_lock protects some moving members of the struct: counters (log name,
+ position) and relay log (MYSQL_LOG object).
+
+ In RELAY_LOG_INFO: run_lock, data_lock
+ see MASTER_INFO
+
+ In MYSQL_LOG: LOCK_log, LOCK_index of the binlog and the relay log
+ LOCK_log: when you write to it. LOCK_index: when you create/delete a binlog
+ (so that you have to update the .index file).
+*/
+
extern ulong slave_net_timeout, master_retry_count;
extern MY_BITMAP slave_error_mask;
extern bool use_slave_mask;