4776 Libing Song 2012-12-13
Bug#15980626 POSSIBLE REPLICATION PERFORMANCE DEGRADATION
THROUGH RLI->FLUSH_INFO(TRUE)
Problem:sync_relay_log_info was being ignored when transactional
tables were updated. No matter what number was set, relay log info
file was synced upon committing. This was causing the performance
degradation.
Fix: Sync(or update relay log info table) after each transaction
should happen only when both data and relay log info are stored
in transactional tables. Only this scenario will guarantee crash
safety.
modified:
sql/log_event.cc
4775 Dmitry Lenev 2012-12-13
Follow-up for the fix for bug #15954872 "MAKE MDL SUBSYSTEM AND
TABLE DEFINITION CACHE ROBUST AGAINST BUGS IN CALLERS".
Make mdl-t unit test pass on Solaris and Windows by adjusting
patterns used in EXPECT_DEATH macros to take into account
different messages about assertion failures on these platforms.
modified:
unittest/gunit/mdl-t.cc
=== modified file 'sql/log_event.cc'
--- a/sql/log_event.cc revid:dmitry.lenev@stripped
+++ b/sql/log_event.cc revid:libing.song@stripped
@@ -7209,7 +7209,8 @@ int Xid_log_event::do_apply_event_worker
ulong gaq_idx= mts_group_idx;
Slave_job_group *ptr_group= coordinator_gaq->get_job_group(gaq_idx);
- if ((error= w->commit_positions(this, ptr_group, true)))
+ if ((error= w->commit_positions(this, ptr_group,
+ w->c_rli->is_transactional())))
goto err;
DBUG_PRINT("mts", ("do_apply group master %s %llu group relay %s %llu event %s %llu.",
@@ -7266,7 +7267,7 @@ int Xid_log_event::do_apply_event(Relay_
if (log_pos) // 3.23 binlogs don't have log_posx
rli_ptr->set_group_master_log_pos(log_pos);
- if ((error= rli_ptr->flush_info(TRUE)))
+ if ((error= rli_ptr->flush_info(rli_ptr->is_transactional())))
goto err;
DBUG_PRINT("info", ("do_apply group master %s %llu group relay %s %llu event %s %llu\n",
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-5.6 branch (libing.song:4775 to 4776) Bug#15980626 | Libing Song | 17 Dec |