From: Andrei Elkin Date: December 18 2010 7:00pm Subject: bzr commit into mysql-next-mr-wl5569 branch (andrei.elkin:3250) WL#5569 List-Archive: http://lists.mysql.com/commits/127253 Message-Id: <201012181900.oBIJ0VdI031456@mysql1000.dsl.inet.fi> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1865638433==" --===============1865638433== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/andrei/MySQL/BZR/2a-23May/WL/mysql-next-mr-wl5569/ based on revid:andrei.elkin@stripped 3250 Andrei Elkin 2010-12-18 wl#5569 MTS fixing --mts-exp-slave-run-query-in-parallel=1 case when Query-log-event can be run in parallel incl DML and DDL. The feature is `exp'erimental still can be tried while there are no temp tables involved neither a db different than the session's default is modified by the query. Tested: Changes sustain mtr rpl_parallel --mysqld=--mts-exp-slave-run-query-in-parallel=1 --mysqld=--binlog-format=statement @ sql/log_event.cc making a single-query group such as DDL to be distributed to Workers. modified: sql/log_event.cc === modified file 'sql/log_event.cc' --- a/sql/log_event.cc 2010-12-16 21:41:45 +0000 +++ b/sql/log_event.cc 2010-12-18 19:00:23 +0000 @@ -2432,6 +2432,8 @@ Slave_worker *Log_event::get_slave_worke // the last occupied GAQ's array index gaq_idx= rli->gaq->assigned_group_index= rli->gaq->en_queue((void *) &g); + // serves as a mark for Coord to delete events otherwise + const_cast(rli)->curr_group_is_parallel= TRUE; DBUG_ASSERT(gaq_idx != (ulong) -1 && gaq_idx < rli->gaq->s); DBUG_ASSERT(((Slave_job_group *) @@ -2450,14 +2452,14 @@ Slave_worker *Log_event::get_slave_worke // mark the current grup as started with B-event const_cast(rli)->curr_group_seen_begin= TRUE; + return NULL; } else { DBUG_ASSERT(!rli->curr_group_seen_begin); + + // Parallel single event proceeds to partiting etc ... } - // serves as a mark for Coord to delete events otherwise - const_cast(rli)->curr_group_is_parallel= TRUE; - return NULL; } //else // g @@ -2765,32 +2767,6 @@ int Log_event::apply_event(Relay_log_inf // This `only-sequential' case relates to a DDL Query case DBUG_ASSERT(rli->curr_group_da.elements == 0); -#if 0 - if (rli->curr_group_da.elements > 0) - { - int res; - Log_event *ev_begin= * (Log_event**) pop_dynamic(&c_rli->curr_group_da); - - DBUG_ASSERT(rli->curr_group_da.elements == 0); - DBUG_ASSERT(rli->curr_group_seen_begin); - - // While Query-log-event is not supported GAQ needs rollback - if (rli->curr_group_seen_begin) - { - Slave_job_group g; - ulong ind= rli->gaq->de_tail((uchar *) &g); - const_cast(rli)->mts_total_groups--; - - DBUG_ASSERT(rli->last_assigned_worker == NULL); - DBUG_ASSERT(c_rli->gaq->assigned_group_index == ind); - } - res= ev_begin->do_apply_event(rli); - delete ev_begin; - c_rli->curr_group_is_parallel= FALSE; // Coord will destruct events - if (res) - DBUG_RETURN(res); - } -#endif DBUG_ASSERT(!rli->curr_group_seen_begin); c_rli->curr_group_is_parallel= FALSE; // Coord will destruct events --===============1865638433== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/andrei.elkin@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: andrei.elkin@stripped # target_branch: file:///home/andrei/MySQL/BZR/2a-23May/WL/mysql-next-\ # mr-wl5569/ # testament_sha1: c246440bf1f85a434f57b9df78e5e930f05fef45 # timestamp: 2010-12-18 21:00:31 +0200 # base_revision_id: andrei.elkin@stripped\ # 567d7w5ioypqdvjc # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWVqQ2zEAAfzfgFAQWPP//34H foD////wUAUMeAFUGqAGqDRENEaPSGjQyNAGgAAAAA5piZMmjCYJiaYBMAhgjAjANNCCYkmp+JNI xADAmAgfqnqD9UAOaYmTJowmCYmmATAIYIwIwCSQhoAAjUyngptNAUyjMpp6TTE/VPU9RI0mHpk+ KqEo56aYxKpOS5sBU6MNZlfZBBVZBBs1S0Ojotp8mKAOQGAu+J3Y+M1JISeaR0gtXDC87CHK6lX0 yVvVTHTPXfGPsPJxzGXVx7nhIW2X+LOUvpSVlA+w/orW6EqNwxg2WqF84sILgaUOlDdMXWrdbA3M F8nENvAz7UUoW208OvKjCJIql/Qijguv5O3YjWaaGfMTv5UOaoCrnOTsMR0NvB/hvbO3fhcilI1S OJ6ek91c2HHqSgOY6t4raKS5MIkSThYOXaXtkh6mkTQKIwdPQjm9w7rKheX5uVpu2M54i5Suhxxt PFX0mHCrDBS8WWOjheHLsJ/RYal2GN02xyvFYd8l7aY7bRHlpNcI2+MS+gWXwxuAnTb98Y4ElGDq RraMtrguvUlxtWdUBqknU2LfEpJAwjqWX1mWyymxh1QZUxeXWyq6DgcyJDK+Q3UGkxD/mosHqJOe 7vlvRW/JRMEyNazH7romIS6TSyKczZF1BlXpHIWNKqjI+yqD6L6VVRWby38VCfxrwT51y5vJrg3p sbbbq3piZSvCSkBnEYktUrnPkhPicTimNiRRFglslJwTbFIpS9VadkN003qoI3CtIGTOR5MOUHSs 4mkiEYtL9vTzw+Za+vu8b3MEhJ19Ppz+c6RwUFiCN46kzB0gu5xhBXA0zKxmNPu+PwQdl+t1ftUH rt+p+cxRWw8OBwPXnNVakPK+PnWSBNvb1eLF/oWwu4BzOgzt8vngfyyiyLGcUj1VB2H6ar1z8vUY 2m49vP2wpvXm/TdCvHkA7MPap9ZMvf6IsPufT+9L39Lb2c5IwnSMP1/aXeHe0cc+r9a1qeOA8pXG dfpxXAksUymJO7eL6rkPLviO3tSCpphFPxz8rOng6A6DPdI4/8MCz2a5e0DL6cci3rgN0NAPMPyl tpqBDgXApJxGfBVIAqgWULch5cnSL5z96RcZY6NYMhnOByfLslfpu/jHk+Tsim3dutFHqhanSJwk DSB9YEVAnIyfuxwg7IYDpxzygPNiwGpDoLJeF6kWE2zVd72FKsQO8TlfPr7QXgatUDv+/BxX+zk3 qs0b4ZuSHDcVVMs7Qa+SbwDoKHxYISMZ599tA5IewPph+ITZnr78dKKZUdE4qx4BlpX1yo24iioC z3nQUXzAqw2VTQcPs/JPDoJ9gSwXzZdYDtInlamqSHKcXdNKrbP9QSJtYC46cvq5fXTapbe3RMkZ cLwruukGN1Me080Yk+1XBixBi2tSxiPakcSDhyQ1EHswfdyRCEZBQYpT3Q1omoSUjAwWcQ0cXzM3 dkBxcCij5O8pSP3SKQr/EA5QXcsJYlS2XSpswohHczaGr2TNMU8arJ/spYx81t/UVinVqIp1in7r d+U0FdIkpBfF0L4dgT3I98OdRJVozpqPRgyq9sIzu6FMaitHxDhiASX4S3gWquCjJ13xBpY1G1bH W4nID51TMbF8V27NTJ8HMWrBXbMoe7YRC9zmwUYljLkyHcFWEGYiYejRjgRNlSht2uu/O8SaQDgX pirMPIOUkbK8p+a/DdhaxpVpNgdndPhMZ2pXpqPknBcofZWCzKlHTdt2ZK5VpfKJgwr1hmtV3PpJ 2FzX/xdyRThQkFqQ2zE= --===============1865638433==--