List:Commits« Previous MessageNext Message »
From:Libing Song Date:December 13 2012 3:06pm
Subject:bzr push into mysql-5.6 branch (libing.song:4775 to 4776) Bug#15980626
View as plain text  
 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#15980626Libing Song17 Dec