diff options
-rw-r--r-- | sql/log_event.cc | 29 | ||||
-rw-r--r-- | sql/slave.cc | 17 |
2 files changed, 29 insertions, 17 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc index 21c6a64df90..cc18e1925cf 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -4042,6 +4042,21 @@ Query_log_event::do_shall_skip(Relay_log_info *rli) DBUG_RETURN(Log_event::EVENT_SKIP_COUNT); } } +#ifdef WITH_WSREP + else if (wsrep_mysql_replication_bundle && WSREP_ON && thd->wsrep_mysql_replicated > 0 && + (!strncasecmp(query , "BEGIN", 5) || !strncasecmp(query , "COMMIT", 6))) + { + if (++thd->wsrep_mysql_replicated < (int)wsrep_mysql_replication_bundle) + { + WSREP_DEBUG("skipping wsrep commit %d", thd->wsrep_mysql_replicated); + DBUG_RETURN(Log_event::EVENT_SKIP_IGNORE); + } + else + { + thd->wsrep_mysql_replicated = 0; + } + } +#endif DBUG_RETURN(Log_event::do_shall_skip(rli)); } @@ -6200,6 +6215,20 @@ Xid_log_event::do_shall_skip(Relay_log_info *rli) thd->variables.option_bits&= ~OPTION_BEGIN; DBUG_RETURN(Log_event::EVENT_SKIP_COUNT); } +#ifdef WITH_WSREP + else if (wsrep_mysql_replication_bundle && WSREP_ON) + { + if (++thd->wsrep_mysql_replicated < (int)wsrep_mysql_replication_bundle) + { + WSREP_DEBUG("skipping wsrep commit %d", thd->wsrep_mysql_replicated); + DBUG_RETURN(Log_event::EVENT_SKIP_IGNORE); + } + else + { + thd->wsrep_mysql_replicated = 0; + } + } +#endif DBUG_RETURN(Log_event::do_shall_skip(rli)); } #endif /* !MYSQL_CLIENT */ diff --git a/sql/slave.cc b/sql/slave.cc index caef5acd5f1..c89ae69698f 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -2602,23 +2602,6 @@ int apply_event_and_update_pos(Log_event* ev, THD* thd, Relay_log_info* rli) ev->thd = thd; // because up to this point, ev->thd == 0 int reason= ev->shall_skip(rli); -#ifdef WITH_WSREP - if (WSREP_ON && (ev->get_type_code() == XID_EVENT || - (ev->get_type_code() == QUERY_EVENT && thd->wsrep_mysql_replicated > 0 && - (!strncasecmp(((Query_log_event*)ev)->query , "BEGIN", 5) || - !strncasecmp(((Query_log_event*)ev)->query , "COMMIT", 6) )))) - { - if (++thd->wsrep_mysql_replicated < (int)wsrep_mysql_replication_bundle) - { - WSREP_DEBUG("skipping wsrep commit %d", thd->wsrep_mysql_replicated); - reason = Log_event::EVENT_SKIP_IGNORE; - } - else - { - thd->wsrep_mysql_replicated = 0; - } - } -#endif if (reason == Log_event::EVENT_SKIP_COUNT) sql_slave_skip_counter= --rli->slave_skip_counter; mysql_mutex_unlock(&rli->data_lock); |